文件系统最终呈现出来的是一种可视化的结构,可用ls,find,tree等命令把它呈现出来。它就像一颗倒挂的“树”,在树的节点上还可以挂载新的“树”。
下面简单介绍文件系统的挂载。
一个文件系统可以通过一个设备挂载(mount
)到某个目录下,这个目录被称为挂载点。有趣的是,在 Linux 下,一个目录本身还可以挂载到另外一个目录下,一个格式化了的文件也可以通过一个特殊的设备 /dev/loop
进行挂载(如 iso
文件)。另外,就文件系统而言,Linux 不仅支持本地文件系统,还支持远程文件系统(如 nfs
)。
范例:挂载文件系统
下面简单介绍文件系统挂载的几个实例。
- 根文件系统的挂载
- 挂载需要 Root 权限,例如,挂载系统根文件系统
/dev/sda1
到/mnt
$ sudo -s # mount -t ext3 /dev/sda1 /mnt/
- 查看
/dev/sda1
的挂载情况,可以看到,一个设备可以多次挂载$ mount | grep sda1 /dev/sda1 on / type ext3 (rw,errors=remount-ro) /dev/sda1 on /mnt type ext3 (rw)
- 对于一个已经挂载的文件系统,为支持不同属性可以重新挂载
$ mount -n -o remount, rw /
- 挂载需要 Root 权限,例如,挂载系统根文件系统
- 挂载一个新增设备
- 如果内核已经支持 USB 接口,那么插入 u 盘时,可以通过
dmesg
命令查看对应的设备号,并挂载它。 - 查看
dmesg
结果中的最后几行内容,找到类似/dev/sdN
的信息,找出 u 盘对应的设备号$ dmesg
- 这里假设 u 盘是
vfat
格式,以便在一些打印店里的 Windows 上也可使用# mount -t vfat /dev/sdN /path/to/mountpoint_directory
- 如果内核已经支持 USB 接口,那么插入 u 盘时,可以通过
- 挂载一个 iso 文件或者是光盘
- 对于一些iso文件或者是 iso 格式的光盘,同样可以通过
mount
命令挂载。- 对于 iso 文件:
# mount -t iso9660 /path/to/isofile /path/to/mountpoint_directory
- 对于光盘:
# mount -t iso9660 /dev/cdrom /path/to/mountpoint_directory
- 对于 iso 文件:
- 对于一些iso文件或者是 iso 格式的光盘,同样可以通过
- 挂载一个远程文件系统
# mount -t nfs remote_ip:/path/to/share_directory /path/to/local_directory
- 挂载一个 proc 文件系统
# mount -t proc proc /proc
proc
文件系统组织在内存中,但是可以把它挂载到某个目录下。通常把它挂载在/proc
目录下,以便一些系统管理和配置工具使用它。例如top
命令用它分析内存的使用情况(读取/proc/meminfo
和/proc/stat
等文件中的内容);lsmod
命令通过它获取内核模块的状态(读取/proc/modules
);netstat
命令通过它获取网络的状态(读取/proc/net/dev
等文件)。当然,也可以编写相关工具。除此之外,通过调整/proc/sys
目录下的文件,可以动态地调整系统配置,比如往/proc/sys/net/ipv4/ip_forward
文件中写入数字 1 就可以让内核支持数据包转发。(更多信息请参考proc
的帮助,man
proc
)
- 挂载一个目录
$ mount --bind /path/to/needtomount_directory /path/to/mountpoint_directory
- 这个非常有意思,比如可以把某个目录挂载到 ftp 服务的根目录下,而无须把内容复制过去,就可以把相应目录中的资源提供给别人共享。
范例:卸载某个分区
以上都只提到了挂载,那怎么卸载呢?用 umount
命令跟上挂载的源地址或者挂载点(设备,文件,远程目录等)就可以。例如:
$ umount /path/to/mountpoint_directory
或
$ umount /path/to/mount_source
如果想管理大量的或者经常性的挂载服务,那么每次手动挂载是很糟糕的事情。这时就可利用 mount
的配置文件 /etc/fstab
,把 mount
对应的参数写到 /etc/fstab
文件对应的列中即可实现批量挂载( mount -a
)和卸载( umount -a
)。 /etc/fstab
中各列分别为文件系统、挂载点、类型、相关选项。更多信息可参考 fstab
的帮助( man fstab
)。
参考资料: