#按指定卷標掛載 -L [root@localhost ~]# mount -L 'mytest' /mnt/test1 [root@localhost ~]# mount | grep '/dev/sdb.' 30:/dev/sdb1 on /root/test_mount/test1 type ext4 (rw,relatime,seclabel,data=ordered) #只讀方式掛載分區 [root@localhost ~]# mount -r /dev/sdb5 /mnt/test2 [root@localhost ~]# mount | grep '/dev/sdb.' 30:/dev/sdb1 on /root/test_mount/test1 type ext4 (rw,relatime,seclabel,data=ordered) 31:/dev/sdb5 on /root/test_mount/test2 type ext4 (ro,relatime,seclabel,data=ordered) [root@localhost ~]# df Filesystem 1K-blocksUsed Available Use% Mounted on ....省略... /dev/sdb1 9993202564927944 1% /mnt/test1 /dev/sdb5 499656 784462176 1% /mnt/test2 #將/home目錄掛載到/mnt/test3下面 [root@localhost mnt]# mount -B /home/ /mnt/test3/ [root@localhost mnt]# ll /home/ /mnt/test3/ /home/: total 32 drwx------. 2 hadoophadoop 4096 Sep 9 08:04 hadoop drwx------. 2 root root 16384 Aug 20 06:12 lost+found drwx------. 2 roger roger 4096 Aug 20 06:34 roger drwx------. 3 test1 test1 4096 Sep 7 04:28 test1 drwx------. 2 testuser1 testuser1 4096 Sep 13 18:03 testuser1 /mnt/test3/: total 32 drwx------. 2 hadoophadoop 4096 Sep 9 08:04 hadoop drwx------. 2 root root 16384 Aug 20 06:12 lost+found drwx------. 2 roger roger 4096 Aug 20 06:34 roger drwx------. 3 test1 test1 4096 Sep 7 04:28 test1 drwx------. 2 testuser1 testuser1 4096 Sep 13 18:03 testuser1
umount:卸載命令 umount [-fn] DEVICE DEVICE 設備文件名 umount [-fn] MOUNT_POINT MOUNT_POINT 掛載點 參數: -f:強制卸載 -n:不更新/etc/mtab的情況下卸載 示例:
#設備名稱卸載 [root@localhost ~]# umount /dev/sdb1 #因為掛載的是目錄,所以只能同過掛載點卸載 [root@localhost ~]# umount /mnt/test3/卸載時遇到設備被占用 [root@localhost ~]# umount /dev/sdb1 umount: /mnt/test3: target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) 查看正在訪問指定掛載點的進程:
# fuser -v MOUNT_POINT [root@localhost ~]# fuser -v /mnt/test3/ USER PID ACCESS COMMAND /mnt/test3: root kernel mount /mnt/test3 root3356 ..c.. bash
終止所有正在訪問指定的掛載點的進程:
# fuser -km MOUNT_POINT [root@localhost ~]# fuser -km /mnt/test3/ /mnt/test3:3356c #成功卸載 [root@localhost ~]# umount /dev/sdb1
補充說明: fuser命令:顯示所有正在使用著指定的file, file system 或者 sockets的進程信息 fuser [-fuv] [-a|-s] [-4|-6] [-c|-m|-n space] [ -k [-i] [-M] [-w] [-SIGNAL] ] 文件名/文件系統/sockets 參數: -k,--kill:殺死正在訪問的文件的進程 -i:交互模式 殺死進程前進行確認 -m:後面接的那個文件名會主動上提到該文件系統的最頂層,對umount不成功很有效 -u :進程號後圓括號中顯示進程擁有者 -v:輸出進程詳細信息 默認情況下,每個進程號後面都跟隨一個字母,該字母指示進程如何使用文件。 c 文件作為當前目錄 e 文件作為程序的可執行對象 r 文件作為根目錄 m 文件作為mmap文件或共享庫 示例:
[root@localhost ~]# fuser /mnt/ /mnt: 3427c [root@localhost ~]# fuser -u /mnt/ /mnt: 3427c(root) [root@localhost ~]# fuser -v /mnt/ USER PID ACCESS COMMAND /mnt: root3427 ..c.. bash [root@localhost ~]# fuser -ki /mnt/ /mnt: 3427c Kill process 3427 ? (y/N) n
掛載相關配置文件: /etc/fstab (file system table) 記錄是系統准備裝載文件系統,用來設置 開機掛載
[root@localhost ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Thu Aug 20 06:13:01 2015 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=8306bbdb-4c6b-4975-8596-c3721eeb6998 /ext4defaults 1 1 UUID=4bfd1d98-b114-4685-84a0-d44130fb3128 /bootext4defaults 1 2 UUID=86be1f1b-e7b0-4d86-a743-7cc99ba332ec /homeext4defaults 1 2 UUID=cc4474b4-402e-4e99-9b04-f55327d94faa /usr ext4defaults 1 2 UUID=f885b330-d561-454f-90d2-259c4a81a5f9 swap swapdefaults 0 0
/etc/fstab文件中每一行定義一個文件系統 每行有6個字段: 要掛載的設備或偽文件系統掛載點文件系統類型掛載選項轉儲頻率自檢次序 要掛載的設備 設備名/dev/sda5, UUID=, Label=, 偽文件系統名 掛載點: 目錄 文件系統類型: ext2/ext3/ext4, xfs... 掛載選項: defaults,rw/ro, nouser,async/sync, auto/noauto... 轉儲頻率: 0代表不做備份 1代表每天進行dump操作 2代表不定期進行dump操作 自檢次序:fsck檢驗扇區 0表示不自檢 1表示最早自檢 2 優先級比1低 示例:
#編輯 /etc/fstab [root@localhost ~]# vim /etc/fstab /dev/sdb1 /mnt/test3 ext4defaults 0 0 # 掛載 [root@localhost ~]# mount -a #查看 [root@localhost ~]# df Filesystem 1K-blocksUsed Available Use% Mounted on /dev/sda3 9947976 554736 8864856 6% / devtmpfs 4930160493016 0% /dev ..... /dev/sdb1 9993202564927944 1% /mnt/test3
/etc/mtab文件: 記錄當前系統已經裝載的文件系統,包括操作系統建立的虛擬文件等;
[root@localhost ~]# cat /etc/mtab rootfs / rootfs rw 0 0 proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0 sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0 devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=493016k,nr_inodes=123254,mode=755 0 0 securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0 tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev 0 0 devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0 tmpfs /run tmpfs rw,seclabel,nosuid,nodev,mode=755 0 0 tmpfs /sys/fs/cgroup tmpfs rw,seclabel,nosuid,nodev,noexec,mode=755 0 0 ....
當 mount 掛載分區、umount 卸載分區,都會實時更新 mtab,mtab 總是保持著當前系統中已掛載的分區信息,fdisk、df 這類程序,必須要讀取 mtab 文件,才能獲得當前系統中的分區掛載情況。還可以通過讀取/proc/mount也可以來獲取當前掛載信息。