CentOS 7 硬盘分区、格式化和挂载

 

2020-03-22

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

查看

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

Terminal window
1
# parted -l 和 fdisk -l 的命令类似
2
$ parted -l
3
4
Model: Virtio Block Device (virtblk)
5
Disk /dev/vda: 42.9GB
6
Sector size (logical/physical): 512B/512B
7
Partition Table: msdos
8
Disk Flags:
9
10
Number Start End Size Type File system 标志
11
1 1049kB 42.9GB 42.9GB primary ext4 启动
12
13
Model: Virtio Block Device (virtblk)
14
Disk /dev/vdb: 215GB
15
Sector size (logical/physical): 512B/512B
16
Partition Table: msdos
17
Disk Flags:

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

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

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

Terminal window
1
$ lsblk
2
3
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
4
vda 253:0 0 40G 0 disk
5
└─vda1 253:1 0 40G 0 part /
6
vdb 253:16 0 200G 0 disk

新建

首先建立分区:

Terminal window
1
# 设定分区表格式为 gpt,MBR 使用 msdos
2
parted /dev/vdb mklabel gpt
3
# 用所有空间建立主分区(扩展分区使用 entended)
4
parted /dev/vdb mkpart primary 0% 100%
5
# 查看当前分区
6
parted /dev/vdb print
7
8
# 使用 rm 参数可删除指定分区
9
parted /dev/vdb rm 1

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

格式化

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

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

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

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

挂载

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

Terminal window
1
# 挂载之前先建立可以挂载的目录
2
mkdir /mirror
3
# 挂载建立的分区 vdb1 到 mirror 目录
4
mount /dev/vdb1 /mirror

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

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

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

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

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

参考