系统环境:Debian 12 (bookworm)
硬盘:3TB SATA 设备 /dev/vdb
最近在配置一台Linux服务器时,我添加了一块3TB的新硬盘, 但是在执行df -h的时候没有显示出来,经过一番排查与操作,最终顺利将其挂载并投入使用。这里记录一下整个过程。
🧠 问题背景
在系统中运行以下命令查看磁盘的使用情况:
df -h
输出如下:
Filesystem Size Used Avail Use% Mounted on
udev 961M 0 961M 0% /dev
tmpfs 197M 488K 197M 1% /run
/dev/vda1 25G 1.8G 22G 8% /
tmpfs 984M 0 984M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 197M 0 197M 0% /run/user/0
可以看到系统只有一个 25G 的 /dev/vda1 被挂载为根目录(/)。新加的 3T 硬盘并没有显示。
🔍 第一步:确认系统是否识别新硬盘
使用 lsblk 命令查看所有块设备:
lsblk
输出如下:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 254:0 0 25G 0 disk
└─vda1 254:1 0 25G 0 part /
vdb 254:16 0 3T 0 disk
可以看到:
- 系统确实识别到了一个新设备 /dev/vdb;
- 它的容量是 3T;
- 但目前还没有分区(partition)和挂载点(mountpoint)。
🔍 第二步:使用 GPT 分区
步骤 1️⃣ 安装 parted
apt install parted -y
步骤 2️⃣ 创建 GPT 分区表
执行
parted /dev/vdb
进入交互界面后:
(parted) mklabel gpt
Warning: The existing disk label on /dev/vdb will be destroyed and all data on this disk will be lost.
Yes/No? Yes
(parted) mkpart primary ext4 0% 100%
(parted) quit
退出后,用 lsblk 查看:
lsblk
输出:
vdb 254:16 0 3T 0 disk
└─vdb1 254:17 0 3T 0 part
✅ 分区表已经变为 GPT,并正确识别出 3TB。
步骤 3️⃣ 格式化分区为 ext4
mkfs.ext4 /dev/vdb1
系统输出:
Creating filesystem with 805305856 4k blocks and 201326592 inodes
Filesystem UUID: 4a5e576b-1e3d-45eb-9d52-1b79fbac3f5b
done
步骤 4️⃣ 挂载到系统
创建挂载点:
mkdir /mnt/data
挂载硬盘:
mount /dev/vdb1 /mnt/data
查看结果:
df -h
输出:
/dev/vdb1 3.0T 28K 2.9T 1% /mnt/data
🎉 成功!3TB 硬盘已完整识别并挂载。
步骤 5️⃣ 设置开机自动挂载
查看 UUID:
blkid /dev/vdb1
输出:
UUID="4a5e576b-1e3d-45eb-9d52-1b79fbac3f5b" TYPE="ext4"
编辑 /etc/fstab:
nano /etc/fstab
添加:
# <设备标识> <挂载点> <文件系统类型> <挂载参数> <dump备份> <fsck检查顺序>
UUID=4a5e576b-1e3d-45eb-9d52-1b79fbac3f5b /mnt/data ext4 defaults 0 2
fsck检查顺序: 控制系统启动时文件系统检查顺序。根分区 / 通常为 1,其他分区为 2。0 表示不检查。这里设置 2 表示开机时会在根分区检查完成后,再检查这个分区。
测试:
mount -a
如果无报错,配置成功。
总结与经验教训
| 阶段 | 错误/问题 | 教训 |
|---|---|---|
| 初次分区 | 使用了 MBR,导致硬盘识别不全 | 大容量磁盘必须用 GPT |
| 格式化 | 重复格式化未卸载 | 格式化前务必确认分区正确 |
| 挂载 | 忘记 fstab 配置 | 系统重启后需手动挂载 |
发表回复