## 磁盘挂载基础
新加一块硬盘,先看看系统认没认到:
lsblk
# 或
fdisk -l
假设看到新盘是 `/dev/sdb`,先分区:
fdisk /dev/sdb
# n -> p -> 1 -> 回车 -> 回车 -> w
分区完格式化:
mkfs.ext4 /dev/sdb1
临时挂载测试:
mount /dev/sdb1 /mnt/data
df -h
能看见就说明盘没问题。
## fstab 配置
临时挂载重启就没了,必须写进 `/etc/fstab`。这文件格式固定:`设备 挂载点 类型 选项 dump pass`。
先查看 UUID,别用设备名(设备名重启后可能变):
blkid /dev/sdb1
# 输出类似:UUID="xxxx-xxxx-xxxx"
编辑 fstab:
vim /etc/fstab
追加一行:
UUID=xxxx-xxxx-xxxx /mnt/data ext4 defaults 0 2
解释各字段:
– 设备:用UUID最稳,也可以用 `/dev/sdb1` 但推荐UUID
– 挂载点:目录必须存在,不存在先 `mkdir -p`
– 类型:ext4、xfs、ntfs-3g 等
– 选项:defaults 包含 rw、suid、dev、exec、auto、nouser、async,大部分场景够用
– dump:0 不备份,1 备份。一般写0
– pass:开机检查顺序。1给根分区,2给其他分区,0不检查
## 常见选项
– `noexec`:禁止执行二进制文件,挂载 /tmp 或 /home 时常用
– `noatime`:不更新访问时间,提升性能
– `nofail`:挂载失败不报错,系统继续启动。挂载外部盘或网络盘时必加
– `_netdev`:网络设备,系统网络就绪后再挂载。NFS、iSCSI 用
例子:
UUID=xxxx /mnt/data ext4 defaults,noatime,nofail 0 2
UUID=yyyy /mnt/backup ext4 defaults,noexec,nofail 0 2
## 验证配置
改完 fstab 必须验证,否则写错重启直接进救援模式:
mount -a
这条命令会重新读取 fstab 并挂载所有未挂载的项。没报错就说明配置没问题。
也可以手动卸载再挂载测试:
umount /mnt/data
mount /mnt/data
df -h
## 踩坑记录
坑1:挂载点目录权限
`mount` 后目录原有权限会被覆盖,挂载点权限由文件系统决定。如果挂载NTFS或者Windows共享,注意 uid/gid 映射:
UUID=xxxx /mnt/data ntfs-3g uid=1000,gid=1000,umask=022 0 0
坑2:fstab 写错怎么办
如果已经重启进不去系统,在GRUB界面按 e,找到 `linux` 那行末尾加 `single` 或 `1` 进入单用户模式,修复 fstab。
坑3:网络挂载超时
NFS 或 CIFS 挂载网络盘时,必须加 `nofail` 和 `_netdev`,否则网络没准备好时系统卡住:
//192.168.1.100/share /mnt/nfs cifs credentials=/etc/smb.cred,nofail,_netdev,iocharset=utf8 0 0
## 实用技巧
查看当前挂载选项
mount | grep /mnt/data
查看某个分区的UUID
ls -l /dev/disk/by-uuid/
备份fstab
改之前养成习惯:
cp /etc/fstab /etc/fstab.bak.$(date +%Y%m%d)
## 关于生产环境
如果公司用雨云服务器,磁盘挂载流程一样,但注意云盘通常有独立的设备名规范,比如 `/dev/vdb` 而不是 `/dev/sdb`。雨云的云硬盘性能稳定,IO延迟低,挂载后加 `noatime` 能进一步提升读写效率。另外雨云的控制台可以直接扩容云盘,扩容后需要执行 `resize2fs` 扩展文件系统,fstab 不需要改,因为UUID不变。
扩容后操作:
df -h # 确认原大小
resize2fs /dev/vdb1
df -h # 确认新大小
fstab 配置完 `mount -a` 没报错不代表重启一定没问题,最好重启一次验证。
雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END



暂无评论内容