Linux 文件系统 | mount & umount
Linux 中一切皆文件
并且所有文件都统一在 /
根目录下面
类比 windows 系统,插入 U 盘,或者硬盘等存储设备,可以直接看到并访问里面的内容。而在 Linux 系统中,需要进行挂载,将外来设备加入到系统管理中,才可以正常访问。
上面的挂载就需要用到 mount
命令
查看
-
/etc/fstab
配置文件,定义了系统启动时需要挂载的文件系统和对应的挂载方式 -
mount 不加任何参数,可以查看所有挂载的详细信息。下面列出一部分
命令输出的内容是
/proc/mounts
文件内容 -
findmnt 可以输出树形结构,方便查看
-
df -h 查看各文件系统硬盘使用情况,顺便就可以看到所有文件系统信息
挂载
将 /dev/dsa1
挂载到 /usr/code
mount /dev/dsa1 /usr/code
-
/dev/dsa1
是文件系统所在的磁盘分区 -
/usr/code
是挂载点,进入挂载点目录即可看到 /dev/dsa1 下的内容-
挂载点必须提前创建好,并且为空
-
不为空时,之前的内容会被隐藏
-
-
-t 可以指定挂载的系统文件类型,默认会自动选择
-
光盘或光盘镜像:iso9660
-
DOS fat16文件系统:msdos
-
Windows 9x fat32文件系统:vfat
-
Windows NT ntfs文件系统:ntfs
-
Mount Windows文件网络共享:smbfs
-
UNIX(LINUX) 文件网络共享:nfs
-
移动挂载点
# 挂载点从 /usr/code 移动到 /usr/project
mount --move /usr/code /usr/project
修改挂在属性
# 挂载分区‘只读’改为‘可读写’
mount -o remount,rw
同一文件系统挂载到多个挂载点
# 将同一文件系统挂载到 /usr/code 和 /usr/project
mount --bind /usr/code /usr/project
多个文件系统使用同一挂载点
# sda 和 sdb 都挂载到 /usr/code
# sda 的内容会被全部覆盖
# 当 sdb 卸载后,sda 的内容又会显示出来
mount /dev/sda /usr/code
mount /dev/sdb /usr/code
# 加了 union 参数,sda 中相同目录会被覆盖,不同则会保留
mount --union /dev/sdb /usr/code
卸载
# 通过文件系统卸载
umount /dev/sda
# 通过挂载点卸载
umount /usr/code
-
当文件系统被用到是,卸载不成功,所有首先确保自己没有进入挂载点目录
-
查看哪个进程占用了哪个文件,
lsof /use/code
。lsof 即 List Open Files
当一个项目有多个服务器时,为了服务器间内容同步,可以通过挂载共享盘来实现