2016年10月13日 星期四

檔案系統的掛載與卸載(mount and umount)

檔案系統的掛載與卸載(mount and umount)
因為Linux的檔案系統的階層可以跨越獨立的分割區以及多重的磁碟機,所以有需要在開機的時候自動掛載這些檔案系統。此外,可抽換式磁碟(如抽取式硬碟,光碟等)以及遠端NFS伺服器上的檔案系統,會有經常性的掛載與卸載,因此不會採用開機時自動掛載的方式。開機時掛載有關的所有資訊會被紀錄載/etc/fstab檔案中。當系統開機時,定義於/etc/fstab檔案中的檔案系統將會受到檢查與掛載的處理。當使用者想要掛載可抽換式磁碟時,亦會參考到/etc/fstab中的資訊。

檔案/etc/fstab是一的文字檔,如以下的範例:
/dev/sda1      /                               btrfs            defaults                                       1 1
/dev/sda2      /home                      xfs              defaults                                      1 1
/dev/sda6      /root                        ext4            defaults                                       1 1
/dev/sda3      swap                        swap           pri=42                                          0 0
usbdevfs        /proc/bus/usb     usbdevfs      noauto                                        0 0
/dev/cdrom   /media/cdrom        auto    ro,noauto,user,exec                        0 0
/dev/sdb1      /home/user/usb      vfat     mode=0777,uid=500,gid=100       0 0
//ip/temp       /home/user/temp   cifs      iocharset=utf8,user=user,password=,rw,uid=user,gid=users

/etc/fstab中每一列都有六個欄位,分別是:
1. Device(裝置)
這個欄位用來指定分割區的裝置檔,如/dev/sda1代表第一顆硬碟的第一個主要分割區。

2. Mount Point(掛載點)
這個欄位用來指定檔案系統所要掛載的目錄。如上例/dev/sda1包含root檔案系統,則會被掛載到 / 目錄。/dev/sda2 掛載到/home目錄,代表將第一顆硬碟的第二的主要分割區整個掛到/home底下,於是/home底下的使用者檔案便可共用一整個partition。

3. Filesystem Type(檔案系統類型)
不同的檔案系統具有不同的Filesystem Type。

4. Mount Options(掛載類型)
這個欄位包含一份以逗號隔開的選項清單。一般指定檔案系統是要以唯讀,可讀寫,或預設等等的方式掛上。

5. Dump Frequency(備份頻率)
dump程式(一個標準的unix備份工具)會參考到/etc/fstab中每個檔案系統在這裡的設定,以決定每個檔案系統多久備份一次。設為0則代表不備分。

6. fsck的檢查順序
fsck 是一個unix標準的磁碟檢查及除錯的工具(程式)。開機時亦會執行fsck這個指令來檢查磁碟。當fsck指令的-A參數被指定時,便會參考到/etc/fstab這個檔案,並依照檢查順序欄位的數字大小依序作檢查。這個欄位只能出現0,1,2三個值。
0    表示fsck不檢查
1    先檢查
2    檢查完設為1的檔案系統後在檢查設為2的檔案系統。

掛載與卸載指令 – mount 及 umount
mount    [-option]
mount -o uid=user -o gid=users -o mode=755 -t  vfat   /dev/sdb1  /home/usb
說明:
[-option]
-a        掛載/etc/fstab檔中所列示的所有分割區。但有noauto選項的分割區除外。例如光碟,或其他抽取式磁碟。
-h     顯示輔助說明
-r    將檔案系統掛成read-only(唯讀)
-w        將檔案系統掛成read-write(可讀寫)
-o mount-option 在命令列上指定掛載選項。
-t fstype 指定檔案系統類型。

掛載選項:
以下的選項可以用在mount指令中(上頁褐色部分,使用-o 選項)或/etc/fstab檔案中(第四個選項)。
sync    建立同步I/O,當對資料讀寫時,會同步寫入檔案系統。但因為同步,效率較差。
async    建立非同步I/O,一般使用這個。
auto    使用-a選項時會自動掛載的檔案系統。系統開機時會執行mount –a,也就是說,設定這個選項時,檔案系統便會在開機時被掛載。
noauto    與auto相反。
exec        允許分割區上所包含的程式可以被執行。
noexec    與exec相反
user        允許一般使用者掛載此檔案系統,但不允許一般使用者卸載。
users    允許一般使用者mount及umount此檔案系統。
nouser    一般使用者不可mount及umount此檔案系統。
ro        唯讀,與-r命令列選項相等。
rw        可讀寫,與-w命令列選項相等。
defaults    包含rw,exec,auto,nouser,async等。(用defaults就不用指定一堆)。

檔案系統類型:
以下的檔案系統類型可以用在mount指令中(上頁紅色部分,使用-t 選項)或/etc/fstab檔案中(第三個選項)。Linux包含的檔案系統類型非常之多,以下只列出最常用者:
ext4       標準linux檔案系統
vfat        一般windows的FAT16,FAT32均可在linux系統中指定為vfat檔案系統。
iso9660    光碟
nfs    network file system。遠端檔案系統。
swap    swap(虛擬記憶體)分割區。
cifs
auto