每当要对系统硬盘进行修改的时候,总免不了需要查找相关命令,索性借着这次重建内网 YUM 源的机会捋一捋。

查看

在对磁盘进行操作之前,需查看当前的分区表类型和磁盘路径,在 CentOS 7 中,常用的分区工具主要是fdiskparted,前者仅支持 MBR 分区表,后者同时支持 MBR 和 GPT 分区表,因此下面均以 parted 为例:

# parted -l 和 fdisk -l 的命令类似
$ parted -l

Model: Virtio Block Device (virtblk)
Disk /dev/vda: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start  End    Size   Type    File system 标志
 1     1049kB 42.9GB 42.9GB primary ext4        启动

Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 215GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

上面显示当前两块硬盘的分区表(Partition Table)类型均为 msdos,即 MBR(如果用 fdisk -l 则会显示 dos,其实指的都是 MBR),磁盘的大小和路径为:

  • /dev/vda: 42.9GB
  • /dev/vdb: 215GB(未挂载)

此外 lsblk 命令可以以树状列出当前系统磁盘的信息:

$ lsblk

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0   40G  0 disk
└─vda1 253:1    0   40G  0 part /
vdb    253:16   0  200G  0 disk

新建

首先建立分区:

# 设定分区表格式为 gpt,MBR 使用 msdos
parted /dev/vdb mklabel gpt
# 用所有空间建立主分区(扩展分区使用 entended)
parted /dev/vdb mkpart primary 0% 100%
# 查看当前分区
parted /dev/vdb print

# 使用 rm 参数可删除指定分区
parted /dev/vdb rm 1

在定义分区范围时,除了使用 % 之外,还可以使用 K、M、G、T 等单位。

格式化

接下来可以对分区进行格式化:

# 用 mkfs 命令进行格式化操作
mkfs.ext4 /dev/vdb1

其实执行mkfs -t ext4时,运行的是mkfs.ext4,两者的效果是一致的。

注:除了ext4 格式外,另一个用的比较多的是 xfs

挂载

格式化完成后,进行挂载:

# 挂载之前先建立可以挂载的目录
mkdir /mirror
# 挂载建立的分区 vdb1 到 mirror 目录
mount /dev/vdb1 /mirror

现在看lsblk命令的结果可以发现已经能正确的显示挂载信息:

$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0   40G  0 disk
└─vda1 253:1    0   40G  0 part /
vdb    253:16   0  200G  0 disk
└─vdb1 253:17   0  200G  0 part /mirror

最后还需添加信息到文件fstab中,不然每次重启都需要手动挂载一次:

 echo "/dev/vdb1 /mirror ext4 defaults 0 0" >> /etc/fstab

注:/dev/vdb1 最好使用对应的 UUID 代替(blkid命令可查看对应分区的 UUID)。

参考