新硬盘设备名需用lsblk或fdisk -l比对容量和裸盘状态,优先查dmesg末尾识别信息;NVMe盘为/dev/nvme0n1,云服务器常用/dev/vdb;分区后必须格式化才能挂载,fstab应使用UUID并经mount -a验证。

怎么确认新硬盘设备名
Linux 不会自动告诉你哪块是新插的硬盘,得靠 lsblk 或 fdisk -l 看物理设备列表。重点看容量是否匹配、有没有未分区的裸盘(比如 /dev/sdb 而不是 /dev/sdb1)。
常见错误:把系统盘(/dev/sda)当新盘操作,导致误删分区。建议先拔掉其他外接设备,只留目标硬盘再执行命令;或者用 sudo dmesg | tail -20 查内核刚识别到的设备,通常末尾几行会出现 sdb: sdb1 这类字样。
-
lsblk -f可同时看到设备名、挂载点、文件系统类型,适合快速筛查已挂载项 - 如果设备名是
/dev/nvme0n1这种,说明是 NVMe 盘,后续分区命令要用fdisk /dev/nvme0n1,别写成fdisk /dev/nvme0n1p1 - 云服务器(如阿里云、腾讯云)挂载的数据盘可能默认是
/dev/vdb,不是sdb,注意区分
分区前要不要格式化
必须分清两个动作:分区(用 fdisk 或 parted 划出 /dev/sdb1)和格式化(用 mkfs.ext4 写文件系统)。没格式化的分区不能挂载,会报错 mount: unknown filesystem type 'LVM2_member' 或直接提示“wrong fs type”。
常见错误:跳过格式化直接 mount /dev/sdb1 /mnt,结果失败。还有人误用 mkfs 对整块盘(如 /dev/sdb)操作,这会破坏分区表,导致 fdisk -l 看不到任何分区。
- 新盘首次使用,推荐用
fdisk /dev/sdb→ 输入n新建主分区 →w保存,再执行sudo mkfs.ext4 /dev/sdb1 - 如果盘里已有数据且不想丢,别碰
mkfs;但要注意,旧文件系统类型(如ntfs、xfs)挂载时需指定-t参数,例如mount -t ntfs /dev/sdb1 /mnt -
mkfs.xfs比mkfs.ext4更适合大文件或高并发读写,但普通用途 ext4 兼容性更好、修复工具更成熟
挂载后如何让重启不丢失
临时挂载(mount /dev/sdb1 /mnt)在重启后失效。要持久化,必须编辑 /etc/fstab。但这里最容易出问题:UUID 写错、挂载点不存在、文件系统类型填错,都会导致开机卡住甚至进不了系统。
正确做法是优先用 UUID 而非设备名,因为设备名(/dev/sdb1)在多盘环境下可能变化,而 UUID 是唯一的。获取方式是 sudo blkid /dev/sdb1,输出类似:/dev/sdb1: UUID="a1b2c3d4..." TYPE="ext4"。
- 往
/etc/fstab末尾加一行:UUID=a1b2c3d4... /mnt/data ext4 defaults 0 2(注意字段间用 Tab 或空格,不要用中文符号) - 加完务必运行
sudo mount -a测试——不报错才说明 fstab 语法和路径都对;报错就立刻改,别重启 - 挂载点目录(如
/mnt/data)必须提前mkdir -p /mnt/data创建好,fstab 不会自动建目录 - 如果用的是 LVM 或加密卷,
TYPE字段要对应,比如LVM2_member或crypto_LUKS,不能硬写ext4
为什么 mount 提示 “device is busy”
这个错误不是硬盘坏了,而是目标挂载点正被进程占用。比如你在 /mnt 下开了终端、运行了 ls、或者有程序把工作目录切到了那里,umount 或重新 mount 就会失败。
查谁占着最靠谱的命令是 sudo lsof +D /mnt(+D 表示递归检查子目录),或者 sudo fuser -v /mnt。别信“没人在用”的直觉——Shell 的当前路径、systemd 的临时服务、甚至 Docker 容器都可能悄悄挂着。
- 强制卸载(
umount -l /mnt)只是懒卸载(lazy unmount),底层设备仍被占用,只适合应急,不能解决根本问题 - 如果
lsof没装,先sudo apt install psmisc(Debian/Ubuntu)或sudo yum install psmisc(CentOS/RHEL) - 某些情况是挂载点本身被 bind mount 过,用
findmnt /mnt能看出嵌套关系,得逐层umount
挂载这事,设备名、分区、格式化、fstab、挂载点权限,五环相扣。少一环,或者某一环里 UUID 多打一个字母、路径少一个斜杠,就卡住。动手前多看一眼 lsblk 和 blkid,比事后救系统省力得多。










