Linux 磁盘分区、格式化与挂载完整教程:新硬盘上线一步一步来

新硬盘到手,先别急着用

买来的云服务器或者刚装上去的物理硬盘,直接就能存数据?没那么简单。一块新硬盘要经过分区 → 格式化 → 挂载这三个步骤才能真正使用。少走一步,数据就存不进去。

本文以 CentOS / Ubuntu 系统为例,带你从零完成一块新硬盘的上线全流程。无论你是加了一块数据盘,还是在云服务器上挂载了一块新云盘,操作步骤都是一样的。

第一步:确认硬盘已识别

先用 lsblk 命令看看系统能不能看到这块硬盘:

lsblk
使用 lsblk 查看磁盘分区状态
使用 lsblk 命令查看系统中的磁盘和分区

输出类似这样:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   40G  0 disk
├─sda1   8:1    0    1G  0 part /boot
└─sda2   8:2    0   39G  0 part /
sdb      8:16   0  100G  0 disk

这里的 sdb 就是新硬盘,100G,还没分区也没有挂载点。如果你看到的也是类似情况,说明硬盘已经被系统识别了。

如果 lsblk 看不到新盘,试试 fdisk -l 或者重启一下服务器(云盘可能需要控制台手动挂载)。

第二步:创建分区

我们用 fdisk 来给 sdb 创建一个分区:

fdisk /dev/sdb
使用 fdisk 创建新分区
使用 fdisk 对新磁盘进行分区操作

进入交互界面后,依次输入:

n     # 新建分区
p     # 主分区
1     # 分区编号为 1
      # 起始扇区直接回车(默认)
      # 结束扇区直接回车(默认,用完整个磁盘)
w     # 写入并退出

完成后可以用 lsblk 确认,应该能看到 sdb1

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  100G  0 disk
└─sdb1   8:17   0  100G  0 part

要不要分多个区?

对于数据盘来说,一般一个分区就够了。如果这块盘特别大(比如几 TB),你想把不同类型的数据隔开,也可以分多个分区。但对大多数场景,单分区是最简单的方案。

第三步:格式化分区

分区创建好了,但还不能直接存文件,需要先格式化文件系统。推荐使用 ext4,它是 Linux 下最稳定、兼容性最好的文件系统:

mkfs.ext4 /dev/sdb1

等待几秒钟,格式化完成。这个过程会把分区上的所有数据清空,所以一定要确认操作的是正确的磁盘。

ext4 vs xfs 怎么选?

  • ext4——稳定可靠,适合大多数场景,CentOS 7 之前默认
  • xfs——适合大文件和高并发 IO,CentOS 7 之后默认,数据库场景更推荐

用 xfs 的话命令是 mkfs.xfs /dev/sdb1。如果你不确定选哪个,用 ext4 就对了。

第四步:创建挂载点并挂载

格式化好了,现在要把这个分区”接”到系统的某个目录下:

# 创建挂载目录
mkdir -p /data

# 挂载
mount /dev/sdb1 /data

验证挂载是否成功:

df -h /data
查看磁盘挂载状态
使用 df 命令查看分区的挂载和使用情况

应该能看到类似这样的输出:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        99G   28K   94G   1% /data

到这一步,你就可以往 /data 目录存文件了。

第五步:设置开机自动挂载

上面的 mount 命令只是临时挂载,重启服务器后会丢失。要让它永久生效,需要写入 /etc/fstab

先获取分区的 UUID(用 UUID 比用设备名更可靠,因为设备名可能会变):

blkid /dev/sdb1

输出类似:

/dev/sdb1: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="ext4"

编辑 fstab 文件

vi /etc/fstab

在文件末尾添加一行:

UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /data ext4 defaults 0 2

保存前一定要先备份原文件

cp /etc/fstab /etc/fstab.bak

保存后,用以下命令测试 fstab 配置是否正确(不会真的挂载,只是语法检查):

mount -a

如果没有报错,重启后就会自动挂载了。

常见问题

fdisk 提示 “Device or resource busy”

说明这块盘正在被使用,可能有进程在读写它。用 fuser -m /dev/sdb 查看是哪个进程,停掉后再操作。

mkfs.ext4 报错 “is mounted” 或 “is in use”

分区已经被挂载了,先 umount /dev/sdb1 再格式化。

重启后 /data 没有自动挂载

检查 /etc/fstab 中的 UUID 是否正确,有没有拼写错误。也可以在系统日志 /var/log/messages 中看到挂载失败的详细信息。

磁盘大于 2TB 怎么办

fdisk 只支持最大 2TB 的磁盘。超过 2TB 的大盘需要用 parted 来分区,并创建 GPT 分区表:

parted /dev/sdb
(parted) mklabel gpt
(parted) mkpart primary ext4 0% 100%
(parted) quit

后续格式化和挂载步骤与上面相同。

总结

新硬盘上线的完整流程就四条核心命令:

fdisk /dev/sdb          # 分区
mkfs.ext4 /dev/sdb1     # 格式化
mount /dev/sdb1 /data   # 挂载
# 编辑 /etc/fstab       # 开机自动挂载

记住这条链路,以后加硬盘就不会手忙脚乱了。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享