Linux服务器磁盘分区格式化完整教程:从查看磁盘到自动挂载

为什么需要分区和格式化

买回来的新硬盘或云服务器附加的数据盘,通常没有分区也没有文件系统,系统无法直接使用。
只有经过分区(划分逻辑区域)和格式化(写入文件系统如 ext4)之后,才能挂载到目录中读写数据。
本教程面向刚接触 Linux 的朋友,按实际场景逐步演示。

第一步:查看当前磁盘信息

在开始任何操作前,先用 lsblk 命令列出所有块设备,确认新磁盘的设备名(比如 /dev/sdb)。

lsblk

输出类似:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   40G  0 disk
├─sda1   8:1    0  500M  0 part /boot
├─sda2   8:2    0 39.5G  0 part /
sdb      8:16   0   20G  0 disk

/dev/sdb 就是我们要操作的新磁盘,大小 20G,没有分区
也可以用 fdisk -l 查看更多细节。

第二步:创建分区

使用 fdisk 命令对 /dev/sdb 进行分区。

sudo fdisk /dev/sdb

进入交互界面后,按以下顺序输入命令:

  • 输入 n 创建新分区
  • 选择分区类型:默认 p 主分区
  • 分区号:直接回车默认 1
  • 起始扇区:直接回车
  • 结束扇区:如果只想分一个区,直接回车使用全部剩余空间;也可以指定大小,例如 +10G 创建一个 10G 分区
  • 输入 w 保存并退出

完成后再次运行 lsblk,应该能看到 /dev/sdb1

第三步:格式化分区为 ext4 文件系统

分区创建好之后,需要格式化才能使用。
这里我们格式化为最常用的 ext4

sudo mkfs.ext4 /dev/sdb1

等待几秒,出现“Writing superblocks and filesystem accounting information”表示成功。

第四步:挂载分区到目录

先创建一个挂载点目录,比如 /data

sudo mkdir -p /data
sudo mount /dev/sdb1 /data

现在用 df -h 检查是否已经挂载:

df -h | grep /data

应该能看到 /dev/sdb1 已经挂载到 /data,可用空间为前面设置的大小。

第五步:设置开机自动挂载(写入 /etc/fstab)

如果只执行 mount,重启后挂载会丢失
需要把挂载信息写入 /etc/fstab

推荐使用 UUID 来标识分区,因为设备名(如 /dev/sdb1)可能在系统重启后发生变化。

先用 blkid 获取分区的 UUID:

sudo blkid /dev/sdb1

输出类似:

/dev/sdb1: UUID="a1b2c3d4-..." TYPE="ext4"

复制 UUID,然后编辑 /etc/fstab

sudo nano /etc/fstab

在文件末尾添加一行:

UUID=a1b2c3d4-...  /data  ext4  defaults  0  2
  • 第一个字段:UUID
  • 第二个字段:挂载点
  • 第三个字段:文件系统类型
  • 第四个字段:挂载选项(defaults 即可)
  • 第五个字段:是否 dump(0 不备份)
  • 第六个字段:文件系统检查顺序(/ 是1,其他是2)

保存退出后,可以执行 sudo mount -a 测试 fstab 配置是否正确,没有报错说明自动挂载已生效。

高频问题与避坑说明

Q: 提示“Device /dev/sdb is busy”无法分区?
A: 说明该磁盘已有分区被挂载或正在使用。先用 umount /dev/sdb* 卸载,或用 lsof /dev/sdb 找出占用进程并停止。

Q: 分区表类型选 MBR 还是 GPT?
A: 磁盘小于 2TB 且不要求 UEFI 启动时,MBR 够用;大于 2TB 或使用 UEFI 启动必须选 GPT。fdisk 在 2.26 以上版本默认 GPT,如需 MBR 可加参数 -t dos

Q: 为什么用 UUID 而不是直接写 /dev/sdb1?
A: 服务器可能更换硬件或添加/移除磁盘导致设备名变化(比如 sdb 变成 sdc),UUID 是分区唯一标识,不会变,避免重启后无法挂载。

Q: 格式化后分区空间比预期小?
A: 正常。文件系统自身需要占用少量元数据空间(如 inode 表),另外上一步分区如果未使用全部空间也会导致实际大小小于全盘。用 fdisk -l 确认分区大小即可。

效果验证

完成以上步骤后,用以下命令综合验证:

lsblk
blkid /dev/sdb1
df -h
sudo mount -a   # 无输出表示 fstab 配置正确

如果一切正常,你的 Linux 服务器已经成功将新磁盘分区、格式化为 ext4,并实现了开机自动挂载。
后续就可以在 /data 下读写数据了。

如果你正在处理 Linux服务器磁盘分区格式化,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
WordPress网站代码优化技巧:6个必知必会的实用步骤
下一篇
Docker部署wordpress
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意