一天一點學習Linux之檔案系統的開機掛載

來源:互聯網
上載者:User

 

昨天,我們介紹的都是手動執行命令來實現掛載,如果你常常需要掛載某些檔案系統,那麼我如何讓系統在啟動時就自動掛載,應該怎樣做呢?下面介紹兩種方法:

方法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 /

摘自 羽飛部落格

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.