一、分区前先检查磁盘状态¶
在正式分区前,建议先确认系统中有哪些磁盘、当前是否已经分区、挂载情况如何。
1.1 查看磁盘设备¶
$ ls /dev/sd*
1.2 查看所有块设备¶
$ lsblk
1.3 查看指定磁盘的分区状态¶
$ fdisk -l /dev/sdb
如果使用 parted,也可以先查看:
$ parted /dev/sdb print
二、使用 fdisk 进行 MBR 分区¶
2.1 启动 fdisk¶
$ fdisk /dev/sdb
进入交互界面后,常见选项包括:
| 选项 | 含义 |
|---|---|
m |
显示帮助菜单 |
n |
新建分区 |
p |
查看分区表 |
d |
删除分区 |
t |
修改分区类型 |
w |
保存并退出 |
q |
不保存退出 |
2.2 创建主分区、扩展分区和逻辑分区¶
原始笔记中的示例做法是:
- 在
/dev/sdb上创建一个 10G 的主分区/dev/sdb1 - 再创建一个扩展分区
/dev/sdb2 - 在扩展分区里继续创建两个逻辑分区
/dev/sdb5和/dev/sdb6
在 fdisk 里,一般流程是:
1、输入 n 新建分区
2、选择 p 创建主分区,或者 e 创建扩展分区,或者 l 创建逻辑分区
3、指定分区号、起始扇区和结束位置
4、用 p 查看结果
5、最后执行 w 保存生效
保存后可以再次确认:
$ fdisk -l /dev/sdb
三、使用 parted 进行 GPT 分区¶
3.1 查看分区信息¶
$ parted /dev/sdb print
3.2 创建 GPT 分区表¶
$ parted /dev/sdb
(parted) mktable gpt
或者:
(parted) mklabel gpt
这一步会清空原有分区表,因此操作前一定要确认磁盘数据是否可删除。
3.3 创建分区¶
示例中通过 mkpart primary 创建主分区:
(parted) mkpart primary 0 20
(parted) mkpart primary 20 40
然后可以使用 p 查看结果:
(parted) p
如果需要删除某个分区:
(parted) rm 1
最后使用 q 退出 parted。
说明:parted 的很多操作是实时生效的,不像 fdisk 那样必须执行 w 才落盘,因此更要谨慎。
四、格式化分区¶
分区创建完成后,通常需要先格式化,再挂载使用。
4.1 使用 xfs 格式化分区¶
示例命令如下:
$ mkfs.xfs /dev/sdb1
$ mkfs.xfs /dev/sdb5
$ mkfs.xfs /dev/sdb6
如果是重复格式化,必要时可加 -f 强制执行:
$ mkfs.xfs -f /dev/sdb1
对于 GPT 分区,同理也是对实际创建出来的分区设备执行 mkfs.xfs。
五、挂载与卸载¶
5.1 临时挂载¶
先创建挂载点:
$ mkdir -p data/usb1
$ mkdir -p data/usb2
$ mkdir -p data/usb3
执行挂载:
$ mount /dev/sdb1 data/usb1
$ mount /dev/sdb5 data/usb2
$ mount /dev/sdb6 data/usb3
查看挂载结果:
$ mount
5.2 卸载¶
$ umount data/usb1 data/usb2 data/usb3
六、配置永久挂载¶
6.1 使用 blkid 获取 UUID¶
$ blkid /dev/sdb1
$ blkid /dev/sdb5
$ blkid /dev/sdb6
6.2 写入 /etc/fstab¶
示例配置:
UUID="232e1a5f-65d2-4509-b446-99be7c2d6293" /root/data/usb1 xfs defaults 0 0
UUID="f5c69e75-436e-4e77-9093-ff67179c955e" /root/data/usb2 xfs defaults 0 0
UUID="6b5d4060-bca2-49c0-b23d-457cc144f734" /root/data/usb3 xfs defaults 0 0
字段格式一般是:
[UUID] [挂载点] [文件系统] [挂载参数] [dump] [fsck]
6.3 用 mount -a 做语法检查¶
$ mount -a
如果没有报错,说明 fstab 语法通常没有问题。
6.4 用 df 验证挂载结果¶
$ df /root/data/usb1
$ df /root/data/usb2
$ df /root/data/usb3
6.5 使用 /etc/rc.local 作为替代方案¶
如果不想通过 fstab 挂载,也可以把挂载命令写入 /etc/rc.local:
$ echo "mount /dev/sdb1 data/usb1" >> /etc/rc.local
$ echo "mount /dev/sdb5 data/usb2" >> /etc/rc.local
$ echo "mount /dev/sdb6 data/usb3" >> /etc/rc.local
七、小结¶
Linux 磁盘从“新盘”到“可用”的常见流程,通常可以概括为:
1、检查磁盘状态
2、使用 fdisk 或 parted 分区
3、使用 mkfs 格式化
4、使用 mount 临时挂载
5、使用 fstab 或 rc.local 配置永久挂载
只要把这条链路打通,后续扩盘、加盘和迁移都会清晰很多。