每当要对系统硬盘进行修改的时候,总免不了需要查找相关命令,索性借着这次重建内网 YUM 源的机会捋一捋。
查看
在对磁盘进行操作之前,需查看当前的分区表类型和磁盘路径,在 CentOS 7 中,常用的分区工具主要是fdisk
和parted
,前者仅支持 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)。