一、分区前先检查磁盘状态

在正式分区前,建议先确认系统中有哪些磁盘、当前是否已经分区、挂载情况如何。

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、使用 fdiskparted 分区 3、使用 mkfs 格式化 4、使用 mount 临时挂载 5、使用 fstabrc.local 配置永久挂载

只要把这条链路打通,后续扩盘、加盘和迁移都会清晰很多。