上一篇文章我們說明了手動分區講解,對一塊新硬盤進行了手動分區和掛載。
但是我們發現重啟系統之后,新硬盤上的兩個掛載沒有了,還需要重新手動掛載。也就是說,之前的操作,掛載上的新硬盤,重啟系統之后,是不會自動掛載的,所以這樣真的很麻煩,這時我們就需要進行自動掛載的操作。
提示:日常的移動存儲設備,如U盤、光盤、移動硬盤都禁止做自動掛載,如果在系統啟動前你忘記放入光盤等,系統會直接報錯。你只需要把固定存儲設備,設置為自動掛載即可。
1、自動掛載
自動掛載主要依靠的就是修改分區自動掛載文件/etc/fstab
。
編輯/etc/fstab
文件。內容如下:
- 第一列:設備文件名
- 第二列:掛載點
- 第三列:文件系統
- 第四列:掛載選項(忘記的可以看之前的文章Linux系統中的掛載操作)
- 第五列:
1
,是否可以備份。0
不備份,1
每天備份,2
不定期備份。(分區在重啟的時候是否自動進行備份,默認建議寫1
,swap
分區為0
。) - 第六列:
2
,是否檢測磁盤fsck
。0
不檢測,1
啟動時檢測,2
啟動后檢測。(在開機的時候是否運行fsck
命令進行自動修復文件,建議根分區是1
,其他分區都設置為2
,swap
分區為0
。)
說明:第一列設備文件名為什么要寫分區的UUID?
因為如果寫分區設備文件名,如
/dev/sdb1
。當我塊硬盤壞了,我換了一塊新的硬盤,當設置新硬盤的分區時候,分區名稱可能還是/dev/sdb1
,這時的/dev/sdb1
分區和之前的/dev/sdb1
不是一個了。而系統會誤認為兩個是一個/dev/sdb1
分區,最后有可能導致系統出現問題。所以設備文件名位置寫UUID,可以確定分區的唯一性。這樣做的好處是當硬盤增加了新的分區,或者分區的順序改變,再或者內核升級后,仍然能夠保證分區能夠正確的加載,而不至於造成啟動障礙。(現在寫設備文件名也是可以的,最好還是寫分區的UUID。)
2、如何查詢系統下每個分區的UUID
我們講過的dumpe2fs
命令是可以查看到的,命令如下:
# 查看分區超級塊中的分區信息。
[root@localhost ~]# dumpe2fs /dev/sdb5
# 或者執行命令
[root@localhost ~]# ls -l /dev/disk/by-uuid/
結果如下:
3、配置自動掛載
修改/etc/fstab
配置文件,進行自動掛載,內容如下:
注意:
/etc/fstab
配置文件直接參與系統啟動,如果修改錯誤,系統啟動報錯。
寫好文件之后,重啟系統查看。
mount -a
命令,用它進行測試/etc/fstab
配置文件,有時候不太准確,新版本的Linux系統對/etc/fstab
配置文件容錯率提高了。這是一個好處,修改錯了/etc/fstab
配置文件內容(一般內容的拼寫錯誤,設備文件名除外),最多分區沒有掛載上,但不影響開機。
4、/etc/fstab
文件修復
上面說了,/etc/fstab
配置文件直接參與系統啟動,如果修改錯誤,系統啟動報錯。
/etc/fstab
配置文件是可以進行修復的,我們來說一說如何修復。
注意:系統修復的前提,是我能拿到服務器(電腦)本機。但是現在的服務器一般都在機房和雲端。
像添加分區的自動掛載,只有設備文件名寫錯了,重啟之后會失敗,其他的編寫錯誤都能正常啟動系統。那我們就重新編輯/etc/fstab
配置文件,把設備文件名修改一下。
在用mount -a
命令,檢查一下/etc/fstab
配置文件是否有錯誤,結果如下,發現錯誤。
我們重啟一下系統,看看能否正常啟動。
系統啟動出現了錯誤,如下圖所示:
可以看到上圖最后兩行提示,Give root password for maintenance (or tupe Control-D to continue):
,請你輸入root
用戶的密碼,或者ctrl+d
繼續。ctrl+d
不是繼續下一步,而是繼續重啟。
這時候只有輸入root
用戶的密碼了,但是需要到服務器本機才能輸入root
用戶密碼,系統沒有啟動,網卡是沒有生效的,遠程客戶端是鏈接不上的。所以再次重復一下,修復Linux系統的前提是拿到本機。
我們輸入root
用戶的密碼,你發現你登陸進系統了。
如下圖所示:
這樣我們就可以繼續操作Linux系統了,執行[rootelocalhost ~]# vim /etc/fstab
命令,修改/etc/fstab
配置文件。
注意:在修改/etc/fstab
配置文件時,該文件是只讀文件,你無法正常保存修改。
如下圖所示:
原因是對整個分區沒有寫權限,要把/
分區重新掛載下,掛載為讀寫權限就可以修改了。
命令如下:
[root@localhost ~]# mount -o remount,rw /
再去修改/etc/fstab
配置文件,把它改回來就可以正常啟動了啊。