学习 Linux 的 mount 命令和挂载机制,建议按照「概念 → 命令 → 实践 → 原理 → 排错」的路径来。下面给你一份比较系统的学习路线。
在 Linux 中:
一句话理解:
mount就是把一个“存储设备”连接到文件系统树的某个目录上
mount
或更好看的:
findmnt
mount /dev/sdb1 /mnt/usb
含义:把 /dev/sdb1 挂到 /mnt/usb
mount -t ext4 /dev/sdb1 /mnt/data
mount -o rw,noexec /dev/sdb1 /mnt/data
umount /mnt/usb
⚠️ 注意是 umount,不是 unmount
lsblk
mkdir /mnt/usb
mount /dev/sdb1 /mnt/usb
mount -o loop centos.iso /mnt/iso
mount -t tmpfs tmpfs /mnt/ram
fstab 是“开机自动挂载”的配置
示例:
/dev/sdb1 /data ext4 defaults 0 2
字段含义:
设备 挂载点 文件系统 挂载选项 dump fsck
查看是否写对:
mount -a
| 类型 | 场景 |
|---|---|
| ext4 | Linux 硬盘 |
| xfs | 服务器常用 |
| vfat | U 盘 |
| ntfs | Windows 磁盘 |
| iso9660 | 光盘 / ISO |
| nfs | 网络文件系统 |
| tmpfs | 内存文件系统 |
mount --bind /home/user /mnt/user
mount -o ro /dev/sdb1 /mnt/usb
mount -t nfs server:/data /mnt/nfs
/etc/systemd/system/mnt-data.mount
umount: target is busy
解决:
lsof +D /mnt/usb
fuser -m /mnt/usb
mount: unknown filesystem type
检查:
blkid
lsblk -f
man mount
man fstab
docker run -v 本质也是 mount)先会挂、再会卸、然后会开机自动挂,最后理解内核为什么这么设计
如果你愿意,我可以:
你现在是哪种使用场景?