直接用mount命令挂载新数据盘到指定目录的前提是设备已完成分区和格式化;需先用lsblk确认存在分区(如/dev/sdb1)、用sudo blkid验证文件系统类型,再执行sudo mount /dev/sdb1 /data,该挂载为临时生效,重启后失效。

直接用 mount 命令挂载新数据盘到指定目录,前提是它已经完成分区和格式化;如果还是裸盘(比如 /dev/sdb 没有 /dev/sdb1),那得先分好区、建好文件系统,否则 mount 会报错“wrong fs type, bad option, bad superblock”。
怎么确认新盘是不是“能挂”的状态
挂载失败十次里有八次是因为设备根本没准备好。别急着输 mount,先做两件事:
- 用
lsblk看设备有没有分区:如果输出里只有sdb(TYPE=“disk”),没有sdb1(TYPE=“part”),说明还没分区 - 用
sudo blkid /dev/sdb1检查是否已格式化:有输出类似/dev/sdb1: UUID="xxx" TYPE="ext4"才算合格;没输出或报“No such file or directory”,就是还没格式化
常见错误现象:mount: /data: wrong fs type, bad option, bad superblock——基本等于在告诉你:这个设备不是个可用的文件系统。
挂载命令本身怎么写才不出错
mount 语法看着简单,但参数顺序和权限控制容易翻车:
- 必须用绝对路径:
sudo mount /dev/sdb1 /data,不能写成mount /dev/sdb1 data(相对路径会挂到当前目录下,不是你想要的位置) - 挂载点目录必须存在,且建议为空:如果
/data已有文件,挂上去后原内容会被隐藏,但没删,卸载后又会出现 - 不加
-t一般也能自动识别类型,但显式指定更稳:sudo mount -t xfs /dev/sdc1 /data,尤其当系统里混用 ext4/xfs 时 - 临时只读挂载防误操作:
sudo mount -o ro /dev/sdb1 /data,验证完再重挂为读写
挂载后立刻跑 df -h /data,看到 /dev/sdb1 对应行的 Mounted on 是 /data,才算真正落地。
为什么挂载后普通用户写不了文件
挂载本身不改目录权限,/data 的属主和权限沿用创建时的设置,而 mkdir /data 默认是 root 创建的,所以普通用户进去就提示 Permission denied:
- 最简方案:
sudo chown $USER:$USER /data(把属主改成当前用户) - 如果要多人协作,建议设组并加权限:
sudo chgrp users /data && sudo chmod 775 /data - 注意:不要用
chmod 777,这是权限裸奔,生产环境禁止
改完权限后,务必用普通用户身份测试:touch /data/test_write && rm /data/test_write,别只信 root 能写。
挂载成功了,但重启就没了
这是 mount 最典型的认知偏差:它只是临时挂载,内核记住了,但 init 进程完全不知道。要开机自动挂载,必须进 /etc/fstab:
- 优先用 UUID 而不是设备名:
sudo blkid /dev/sdb1拿到 UUID,再往/etc/fstab写一行:UUID=xxx /data ext4 defaults 0 0 - 写完别直接 reboot,先
sudo mount -a测试:没报错才说明 fstab 语法和路径都对 - 如果
mount -a报错 “mount point does not exist”,说明挂载点目录还没创建;报 “unknown filesystem type”,大概率是 TYPE 写错了或设备未格式化
临时挂载和永久挂载是两套逻辑,别以为挂成功一次就万事大吉——服务器重启后发现 /data 又变空目录,这种事我见过太多次了。











