一、/etc/fstab文件的作用
磁盤被手動掛載之后都必須把掛載信息寫入/etc/fstab這個文件中,否則下次開機啟動時仍然需要重新掛載。
系統開機時會主動讀取/etc/fstab這個文件中的內容,根據文件里面的配置掛載磁盤。這樣我們只需要將磁盤的掛載信息寫入這個文件中我們就不需要每次開機啟動之后手動進行掛載了。
二、掛載的限制
在說明這個文件的作用之前我想先強調一下掛載的限制。
1、根目錄是必須掛載的,而且一定要先於其他mount point被掛載。因為mount是所有目錄的跟目錄,其他木有都是由根目錄 /衍生出來的。
2、掛載點必須是已經存在的目錄。
3、掛載點的指定可以任意,但必須遵守必要的系統目錄架構原則
4、所有掛載點在同一時間只能被掛載一次
5、所有分區在同一時間只能掛在一次
6、若進行卸載,必須將工作目錄退出掛載點(及其子目錄)之外。
三、/etc/fstab文件中的參數
下面我們看看看/etc/fstab文件,這是我的linux環境中/etc/fstab文件中的內容
cat /etc/fstab 查看當前系統已經存在的掛載信息
在文件中我已經把每一列都做出來表示方便識別,我們可以看到一共有六列。
第一列:Device:磁盤設備文件或者該設備的Label或者UUID
1)查看分區的label和uuid
Label就是分區的標簽,在最初安裝系統時填寫的掛載點就是標簽的名字。可以通過查看一個分區的superblock中的信息找到UUID和Label name。
例如:我們要查看/dev/sda1這個設備的uuid和label name
dumpe2fs -h /dev/sda1
dumpe2fs 1.35 (28-Feb-2004)
Filesystem volume name: /boot //這個就是Label name
Last mounted on: <not available>
Filesystem UUID: 3b10fe13-def4-41b6-baae-9b4ef3b3616c //UUID
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super
Default mount options: (none)
Filesystem state: clean
簡單點的方式我們可以通過下面這個命令來查看
blkid
blkid /dev/vda1
2)使用設備名和label及uuid作為標識的不同
使用設備名稱(/dev/sda)來掛載分區時是被固定死的,一旦磁盤的插槽順序發生了變化,就會出現名稱不對應的問題。因為這個名稱是會改變的。
不過使用label掛載就不用擔心插槽順序方面的問題。不過要隨時注意你的Label name。至於UUID,每個分區被格式化以后都會有一個UUID作為唯一的標識號。使用uuid掛載的話就不用擔心會發生錯亂的問題了。
第二列:Mount point:設備的掛載點,就是你要掛載到哪個目錄下。
第三列:filesystem:磁盤文件系統的格式,包括ext2、ext3、reiserfs、nfs、vfat等
第四列:parameters:文件系統的參數
Async/sync |
設置是否為同步方式運行,默認為async |
auto/noauto |
當下載mount -a 的命令時,此文件系統是否被主動掛載。默認為auto |
rw/ro |
是否以以只讀或者讀寫模式掛載 |
exec/noexec |
限制此文件系統內是否能夠進行"執行"的操作 |
user/nouser |
是否允許用戶使用mount命令掛載 |
suid/nosuid |
是否允許SUID的存在 |
Usrquota |
啟動文件系統支持磁盤配額模式 |
Grpquota |
啟動文件系統對群組磁盤配額模式的支持 |
Defaults |
同事具有rw,suid,dev,exec,auto,nouser,async等默認參數的設置 |
0 |
代表不要做dump備份 |
1 |
代表要每天進行dump的操作 |
2 |
代表不定日期的進行dump操作 |
0 |
不要檢驗 |
1 |
最早檢驗(一般根目錄會選擇) |
2 |
1級別檢驗完成之后進行檢驗 |