Linux mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件。
一、挂载功能介绍
挂载方法:mount DECE MOUNT_POINT
命令使用格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要挂载的设备;
(1) 设备文件:例如/dev/sda5
(2) 卷标:-L 'LABEL', 例如 -L 'MYDATA'
(3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
(4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
常用命令选项:
-t vsftype:指定要挂载的设备上的文件系统类型;
-r: readonly,只读挂载;
-w: read and write, 读写挂载;
-n: 不更新/etc/mtab;
-a:自动挂载所有支持自动挂载的设备;(定义在了/etc/fstab文件中,且挂载选项中有"自动挂载"功能)
-L 'LABEL': 以卷标指定挂载设备;
-U 'UUID': 以UUID指定要挂载的设备;
-B, --bind: 绑定目录到另一个目录上;
注意:查看内核追踪到的已挂载的所有设备:cat /proc/mounts
-o options:(挂载文件系统的选项)
async:异步模式;
sync:同步模式;
atime/noatime:包含目录和文件;
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载
exec/noexec:是否支持将文件系统上应用程序运行为进程
dev/nodev:是否支持在此文件系统上使用设备文件;
suid/nosuid:是否支持在此文件系统上使用特殊权限
remount:重新挂载
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备
acl:启用此文件系统上的acl功能
注意:上述选项可多个同时使用,彼此使用逗号分隔;
二、常见实例
1、将 /dev/hda1 挂在 /mnt 之下。
#mount /dev/hda1 /mnt
2、将 /dev/hda1 用只读模式挂在 /mnt 之下。
#mount -o ro /dev/hda1 /mnt
三、常见问题:
一、指定文件系统将块设备挂载至指定空文件夹内时:
1、没有指定文件系统,命令是否能正确执行?
2、指定错误文件系统,命令是否能正确执行?
3、挂载点有内容的文件夹,查看被挂载后其内容是否消失?
[root@localhost /] # fdisk -l
...
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 5 Extended
/dev/sdb5 2101248 2306047 102400 83 Linux
/dev/sdb6 2308096 2512895 102400 83 Linux
/dev/sdb7 2514944 2719743 102400 83 Linux
/dev/sdb8 2721792 2926591 102400 83 Linux
...
[root@localhost /] # mount /dev/sdb8 /device
[root@localhost /] # df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/CentOS-root 18307072 4724136 13582936 26% /
devtmpfs 485368 0 485368 0% /dev
tmpfs 500664 84 500580 1% /dev/shm
tmpfs 500664 7160 493504 2% /run
tmpfs 500664 0 500664 0% /sys/fs/cgroup
/dev/sda1 508588 142620 365968 29% /boot
tmpfs 100136 20 100116 1% /run/user/42
tmpfs 100136 0 100136 0% /run/user/0
/dev/sdb8 98988 5280 93708 6% /device
[root@localhost /] # blkid /dev/sdb8
/dev/sdb8 : UUID= "a3c4bf06-3695-45e8-8a07-a063498f0578" TYPE= "xfs"
[root@localhost /] # umount /device
[root@localhost /] # mount -t ext2 /dev/sdb8 /device
mount : 文件系统类型错误、选项错误、 /dev/sdb8 上有坏超级块、
缺少代码页或助手程序,或其他错误
[root@localhost /] # cd /device/
[root@localhost device] # ll
总用量 0
[root@localhost device] # touch 11 22
[root@localhost device] # ll
总用量 0
-rw-r--r--. 1 root root 0 8月 23 10:14 11
-rw-r--r--. 1 root root 0 8月 23 10:14 22
[root@localhost device] # ll
总用量 0
[root@localhost device] # ll -a
总用量 4
drwxr-xr-x. 2 root root 6 8月 23 09:27 .
dr-xr-xr-x. 21 root root 4096 8月 23 09:29 ..
[root@localhost device] # cd ..
[root@localhost /] # umount /device/
[root@localhost /] # cd /device/
[root@localhost device] # ll
总用量 0
-rw-r--r--. 1 root root 0 8月 23 10:14 11
-rw-r--r--. 1 root root 0 8月 23 10:14 22
答案:1)没有指定文件系统,块设备也可以正常挂载;
2)指定与块设备不一致的文件系统类型则命令报错;
3)挂载点有内容的文件夹,在挂载后内容消失,卸载后内容重现,也就是说挂载后会将原文件内容掩盖,但并不对其进行其他操作。