Linux之檔案系統的開機掛載 async/sync 非同步/同步 等【轉】

spectre2發表於2011-09-22

昨天,我們介紹的都是手動執行命令來實現掛載,如果你常常需要掛載某些檔案系統,那麼我如何讓系統在啟動時就自動掛載,應該怎樣做呢?下面介紹兩種方法:
方法1.
把掛載的命令放在/etc/rc.d/rc.local中。
這個雖然是一種方法,但不建議這麼做,因為我們的系統中有統一規劃的解決方案,所以建議用第二種方法。

方法2.
修改配置檔案/etc/fstab,這個檔案就是設定在啟動時加掛的檔案系統,下面我們就一起來研究一下/etc/fstab

[root@yufei ~]# cat /etc/fstab
此處省略多行無用資訊
UUID=8e4f6141-20f9-4f5a-aad4-bac048374152 /                       ext4    defaults        1 1
UUID=c70cd6a4-09cd-4aea-ba94-f3641df4e981 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

這個內容和您的系統有關係,最上面兩行的是我們磁碟檔案系統,而後面的四行是虛擬檔案系統,我們不關心這個。

這個檔案裡面分成六個欄位。這六個欄位是很重要的,所以我們要帶大家一起來認識一下。

第一欄:磁碟裝置的檔名或裝置的卷標或者是裝置的UUID。#關於這些資訊的查詢可以通過tune2fs 或者是dumpe2fs來查詢。

[root@yufei ~]# tune2fs -l /dev/sdb1 |more
[root@yufei ~]# dumpe2fs /dev/sdb1 |more
只顯示有用資訊
Filesystem volume name:   opsers_tech
Last mounted on:          /mnt
Filesystem UUID:          994ae2b7-d28a-4f7c-9464-c1763860378b
所以這一欄可以有下面三種表示方法,效果都是一樣的,都是表示的是同一個裝置。
/dev/sdb1
LABEL=opsers_tech
UUID=994ae2b7-d28a-4f7c-9464-c1763860378b

第二欄:掛載點。#強烈建議用一個空目錄

第三欄:檔案系統型別。#在手動掛載時可以讓系統自動測試掛載,但在這個檔案中必須要手動寫入檔案系統的型別。檔案系統型別主要有:ext3、ext4、vfat、ntfs、nfs、smbfs、swap等等。

第四欄:檔案系統引數。#這個和我們前面介紹的mount是一樣的,在這裡再做一個簡單的介紹,因為這個很重要。

async/sync 非同步/同步:設定磁碟的運作方式,預設為 async(效能較佳),是把內容寫入日誌,然後儲存到磁碟。

auto/noauto 自動/非自動:當下達 mount -a 時,此檔案系統是否會被主動測試掛載。預設為 auto。

rw/ro 讀寫/只讀:如果你想要分享的資料是不給使用者隨意變更的,就可以設定成ro的,無論在此檔案系統的檔案是否有 w 許可權,都是無法寫入內容。

exec/noexec 可被執行/不可被執行:限制在此檔案系統內是否可以進行執行的操作,如果此檔案系統是純粹用來儲存資料的,那麼可以設定為 noexec 會比較安全。

user/nouser 允許/不允許其他使用者掛載:正常情況下,系統為了安全,不希望一般身份的使用者能使用mount命令的,因為太不安全了,預設是設定為nouser。

suid/nosuid 具有/不具有suid許可權:該檔案系統是否允許SUID的存在。因為這個也和系統的安全相關。如果不是執行檔案存放的目錄,可以設定為nosuid來取消這個功能。

usrquota 注意不要拼錯了。這個是在啟動檔案系統的時候,讓其支援磁碟配額,這個是針對使用者的。

grpquota 和上面一樣,支援使用者組的磁碟配額。

defaults 同時具有rw, suid, dev, exec, acl, async引數。

而我們基本上預設使用defaults即可。

第五欄:能否被dump備份指令使用。#dump是一個用來備份的命令,我們可以通過fstab指定哪個檔案系統必須要進行dump備份。0代表不要做dump備份,1代表要每天進行dump的動作,2也代表其他不定日期的dump備份。通常這個數值不是0就是1。

第六欄:是否用 fsck 檢驗扇區:#開機的過程中,系統預設會用fsck檢驗檔案系統是否完整。不過,某些檔案系統是不需要檢驗的,例如swap以及特殊檔案系統/proc、/sys等等。0是不要檢驗,1表示最先檢驗(一般只有根目錄會設定為1),2也是要檢驗,只是1是最先,2是其次才進行檢驗。這一項只針對作業系統的分割槽有效果,其他的檔案系統根據需要來設定,因為他不影響系統的引導。

特別提醒1:因為/etc/fstab這個檔案和系統啟動有很大的關係,如果你一不小心,把裡面的內容寫錯了,可能導致系統無法啟動。為了防止這個問題的發現,當你增加了相應的掛載內容後,最好用

mount -a命令進行一下測試,在沒有錯誤的情況,才能保證下次在系統啟動的時候是正常的。

特別提醒2:如果我在此檔案中修改了相應的掛載引數的話,你需要用mount -o remount來重新使新的引數生效。而mount -a則是載入不了已經掛載了檔案系統的引數資訊。可以用mount命令檢視到引數的資訊。
最後我們把昨天格式化出來的分割槽寫到/etc/fstab檔案中。在開始編輯檔案前,我再給大家介紹一個很實用的工具blkid,他會顯示出系統中所有的檔案系統的資訊,包括裝置名、卷標、UUID以及檔案系統型別。下面的看效果

 

[root@yufei ~]# blkid
/dev/sda1: UUID="8e4f6141-20f9-4f5a-aad4-bac048374152" TYPE="ext4"
/dev/sda2: UUID="c70cd6a4-09cd-4aea-ba94-f3641df4e981" TYPE="swap"
/dev/sdb1: LABEL="opsers_tech" UUID="994ae2b7-d28a-4f7c-9464-c1763860378b" TYPE="ext4"
/dev/sdb2: SEC_TYPE="msdos" UUID="7F29-8A7A" TYPE="vfat" 

[root@yufei ~]# vim /etc/fstab
/dev/sdb1               /mnt                    ext4    defaults        0 0
UUID=7F29-8A7A          /test                   vfat    defaults        0 0

[root@yufei ~]# mount -a
[root@yufei ~]# mount -a

沒有錯誤提示,說明我們的配置是沒有錯誤的,那麼在下次系統啟動後就不會有錯誤了,而導致系統啟動不了。

啟動系統後,用df -T來檢視掛載在系統中的磁碟資訊情況

 

[root@yufei ~]# df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda1     ext4    15118728   6980432   7370296  49% /
tmpfs        tmpfs      255784         0    255784   0% /dev/shm
/dev/sdb1     ext4     1033560     40980    939568   5% /mnt
/dev/sdb2     vfat      409424         0    409424   0% /test

用mount命令可以檢視系統中的掛載情況

[root@yufei ~]# mount
/dev/sda1 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sdb1 on /mnt type ext4 (rw)
/dev/sdb2 on /test type vfat (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

/etc/fstab 是開機時的配置檔案,實際上檔案系統的掛載是記錄在 /etc/mtab 與 /proc/mounts 這兩個檔案中的。如果萬一在/etc/fstab中寫入的資料錯誤時候,會導致無法順利開機成功,而進入單人維護模式,而這時候 / 是隻讀的狀態,要想修改 /etc/fstab,就要用到下面這個常用的系統修復命令了。

mount -o remount,rw /
轉自:http://www.opsers.org/base/learning-linux-the-day-that-the-file-system-mount.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14184018/viewspace-708101/,如需轉載,請註明出處,否則將追究法律責任。

相關文章