磁盘管理与文件系统

185 阅读9分钟

磁盘

image.png

组成:

盘片:磁盘有多个盘片,每个盘片正反两面

磁头:读取磁盘表面磁方向和改变其方向

image.png

数据结构:

扇区:盘片被分为多个扇形,每个扇区存放512字节数据

磁道:磁道是单个盘面上的同心圆

柱面:由不同盘片的面,但处于同一半径圆的多个磁道组成的一个圆柱面。

磁盘结构:

硬盘存储容量=磁头数x磁道数x每道扇区数x每扇区字节数(512字节)

磁盘接口类型:

IDE,SATA,SCSI,SAS,光纤通道

MBR与磁盘分区结构

MBR(主引导记录)

  • MBR位于硬盘第一个物理扇区处 , MBR中包含硬盘的主引导程序和硬盘分区表
  • MBR第一个扇区总共512字节,前446字节是主引导记录,分区表保存在扇区中的第447-512字节中。

磁盘分区结构:

硬盘中主分区数目只有四个 主分区和扩展分区的序号限制在1~4 扩展分区再分为逻辑分区 逻辑分区序号从5开始

主分区 ---安装系统,存储数据

扩展分区-逻辑分区----只能存储数据

MBR用于硬盘2T以内 1-4

GPT用于硬盘2T以上 1-128

便捷命令

partprobe ///强制刷新内存缓存表

scan//自动刷新接口获取硬件设备

[root@localhost httpd]# vim /etc/profile

将alias scan='echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- - -" > /sys/class/scsi_host/host1/scan;echo "- - -" > /sys/class/scsi_host/host2/scan'添加到内容
[root@localhost httpd]# source /etc/profile
[root@localhost httpd]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    5G  0 part /boot
└─sda2            8:2    0   55G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  └─centos-swap 253:1    0    5G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
sdc               8:32   0   20G  0 disk 
sr0              11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64

Linux中使用的文件系统类型

XFS文件系统

  • CenOS 7系统中默认使用的文件系统,高性能的日志型文件系统

Swap交换文件系统

  • 当系统物理内存不足时,将其他物理内存释放一部分,用于当前运行程序

free -h//查看交换分区大小

[root@localhost httpd]# free -h
              total        used        free      shared  buff/cache   available
Mem:           2.2G        610M        891M        9.5M        789M        1.4G
Swap:          5.0G          0B        5.0G

EXT4第四代扩展文件系统

  • CenOS 6系统中默认使用的文件系统

其他文件系统类型

FAT16、FAT32、NTFS、JFS

创建文件系统

mkfs命令

mkfs命令格式:

mkfs.文件系统类型 分区设备

[root@localhost httpd]# mkfs.xfs /dev/sdb
meta-data=/dev/sdb               isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242880, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

创建交换文件系统——mkswap命令

mkswap命令格式:

mkswap 分区设备       //创建交换文件系统,分区设备位置要使用绝对路径

swapon 分区设备       //启用交换分区   swapoff 分区设备     //停用交换分区   swapon -s           //显示所有启用状态的交换分区

[root@localhost httpd]# mkswap /dev/sdb
mkswap: /dev/sdb: warning: wiping old xfs signature.
正在设置交换空间版本 1,大小 = 20971516 KiB
无标签,UUID=54bc3f45-3b9b-4626-aea5-ee4bb5a0c8e8
[root@localhost httpd]# swapon /dev/sdb
[root@localhost httpd]# swapon -s
文件名				类型		大小	已用	权限
/dev/dm-1                              	partition	5238780	0	-1
/dev/sdb                               	partition	20971516	0	-2
[root@localhost httpd]# swapoff /dev/sdb
[root@localhost httpd]# swapon -s
文件名				类型		大小	已用	权限
/dev/dm-1                              	partition	5238780	0	-1

挂载和卸载文件系统

设置文件系统的自动挂载(永久挂载)

系统中的/etc/fstab 文件可以视为mount命令的配置文件

blkid查看UUID

iostat//查看磁盘读写性能

Vim /etc/fstab

# /etc/fstab
# Created by anaconda on Wed Apr 26 16:44:02 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=e755190b-57d2-4a3c-8dda-eae00e2c3e1e /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

##用已设备名称进行挂载

/dev/adb /data xfs defaults 0 0

每个空格代表一段

第一段;设备名称 第二段:挂载的目录 第三段:文件系统 第四段:定义默认值 第五段:表示不备份 第六段:表示系统启动不检查系统

用UUID进行挂载

UUID=e755190b-57d2-4a3c-8dda-eae00e2c3e1e /data xfs defaults 0 0

/dev/cdrom /mnt iso9660 defaults 0 0//挂载光盘镜像

mount -a //刷新挂载

卸载文件系统——umount命令

umount命令格式:

umount 存储设备位置  

umount 挂载点目录

如果位于挂载目录下,不能解挂载。需要切换目录后再解挂载。

设置磁盘分区

查看硬盘

[root@localhost httpd]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    5G  0 part /boot
└─sda2            8:2    0   55G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  └─centos-swap 253:1    0    5G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
sdc               8:32   0   20G  0 disk 
sr0              11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64

使用fdisk命令设置磁盘分区

[root@localhost httpd]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x63f1770e 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G     
分区 1 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分区号 (2-4,默认 2):2
起始 扇区 (20973568-41943039,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039):+8G
分区 2 已设置为 Extended 类型,大小设为 8 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (20975616-37750783,默认为 20975616):    
将使用默认值 20975616
Last 扇区, +扇区 or +size{K,M,G} (20975616-37750783,默认为 37750783):+2G
分区 5 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 6
起始 扇区 (25171968-37750783,默认为 25171968):
将使用默认值 25171968
Last 扇区, +扇区 or +size{K,M,G} (25171968-37750783,默认为 37750783):
将使用默认值 37750783
分区 6 已设置为 Linux 类型,大小设为 6 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost httpd]# 

为分区指定文件系统

[root@localhost httpd]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost httpd]# mkfs.xfs /dev/sdb5
meta-data=/dev/sdb5              isize=512    agcount=4, agsize=131072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost httpd]# mkswap /dev/sdb6
正在设置交换空间版本 1,大小 = 6289404 KiB
无标签,UUID=01b11972-5faa-4f26-8a20-b2a061f94b4a

修改/etc/fstab 文件,设置为自动挂载。

[root@localhost data]# vim /etc/fstab
# /etc/fstab
# Created by anaconda on Wed Apr 26 16:44:02 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=e755190b-57d2-4a3c-8dda-eae00e2c3e1e /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb1 /data/aa xfs defaults 0 0
/dev/sdb5 /data/bb xfs defaults 0 0

刷新挂载

[root@localhost aa]# mount -a
[root@localhost aa]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    5G  0 part /boot
└─sda2            8:2    0   55G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  └─centos-swap 253:1    0    5G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
├─sdb1            8:17   0   10G  0 part /data/aa
├─sdb2            8:18   0    1K  0 part 
├─sdb5            8:21   0    2G  0 part /data/bb
└─sdb6            8:22   0    6G  0 part 
sdc               8:32   0   20G  0 disk 
sr0              11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64