首页 > Sysadmin > 正文

新硬盘分区,先走五步操作链

huyuanwen 2026-10-26 Sysadmin

给新硬盘分区不是找命令,而是一条固定操作链:看盘 → 建分区表 → 建分区 → 格式化 → 挂载持久化。坑最多的不是建分区,而是最后一步 fstab [5]。

第一步:先看盘

lsblk 列出磁盘和挂载点,fdisk -l 列出各盘的分区表。这两条只读命令随时可跑,不会改动任何数据 [1]:

lsblk
sudo fdisk -l

第二步:先确认分区表存在

fdisk 能读写 GPT、MBR 等分区表;分区表通常写在磁盘的第 0 扇区,新空盘往往没有分区表,需要先创建(fdisk 里用 o/g),而不是直接建分区 [1]。手册还明确:CHS(柱面-磁头-扇区)寻址已废弃,别照老教程传 fdisk -S 63 -H 255 那套参数——fdisk 默认已按设备 4K 扇区对齐 [1]。

第三步:建分区

fdisk 是交互式工具,官方定位就是”面向人”;脚本场景改用 partx 读分区布局 [1]。输入大小时用 +2G 这种相对写法,fdisk 会按设备属性自动对齐 [1]:

sudo fdisk /dev/sdb   # 按 n 新建分区,大小写 +2G

更直观可以用 cfdisk, curses 图形界面,同样是 util-linux 出品 [2]。

第四步:格式化

分区只是地址范围,要用还得格式化:数据分区 mkfs.ext4 /dev/sdb1 [3],交换分区用 mkswap /dev/sdb2 [4]。对已挂载正在使用的分区跑 mkfs 等于清空它,先 umount 再动手。

第五步:挂载,并写进 fstab

临时挂载:sudo mount /dev/sdb1 /mnt/data。开机自动挂载要写 /etc/fstab,手册推荐用 UUID= 或 LABEL= 而不是设备名,因为设备名取决于硬件检测顺序,插拔另一块盘就可能变化 [5]:

sudo blkid /dev/sdb1
echo 'UUID=你的UUID /mnt/data ext4 defaults 0 2' | sudo tee -a /etc/fstab
sudo systemctl daemon-reload

systemd 系统改完 fstab 建议 daemon-reload,让挂载配置重新生效 [5]。

swap 和 /home 要不要独立分区看场景:桌面系统分区越少越省心,服务器把用户数据独立出来,系统重装时数据才不容易被牵连。

五步都不难,真正的麻烦在 fstab 里写死 /dev/sdb1——换一次硬件,它可能就指向别的盘。


参考资料

文中主要命令已在 WSL Ubuntu(24.04)实测,个别条目(未装工具/安装类命令)仅核对官方文档,未实际执行。