can’t find /mnt in /etc/fstab問題的解決和fstab詳解
can't find /mnt in /etc/fstab
當我在執行mount -t 192.168.1.50:/tftpboot/arm /mnt -o nolock命令時。
然後我換一個掛載點,錯誤也隨之成為掛載點cant find。
先說解決問題的方法吧。
在/etc/fstab 下面新增如下一句話
192.168.1.50:/tftpboot/arm mnt nfs defaults 0 0
前面就是你主機上所要掛載的目錄。
接著我來解釋一下。
我做過很多次nfs的掛載,主要注意力都集中在開發板主機是否可以ping通,主機nfs伺服器是否安裝好。
也曾經想過為什麼有時候掛載在/mnt 下好使,掛載到/home下也好使,誰來制定掛載在哪裡。不過因為一直沒有
遇到問題所以就沒有深究過。不過現在來想想原來的nfs掛載之所以可以成功可能是跟我做的根檔案系統中
/etc/init.d/rcS 中的一條指令 mount -a 即為 mount all有關。
mount -a的意思是掛載fstab目錄中的所有項。而我的檔案系統中有兩句命令
none /tmp ramfs defaults 0 0
none /var ramfs defaults 0 0
這兩句話查了查並沒有查出什麼以上,我的理解就是
none目錄 掛載在/tmp 下 檔案格式是ramfs配置為defaults 不過none 應該指的是任意目錄,這裡沒有理論依據,僅僅是猜想。
有意思的是,自己竟然不知道原來的nfs掛載為什麼是好使的。如果某位朋友知道的話。留言告訴我,萬分感謝。
說了幾句題外話接著上面的問題來說。
誰來制定nfs 掛載在哪?又是以什麼形式掛載呢?
/etc/fstab
我們先來看看fstab目錄是個什麼目錄。
fstab(/etc/fstab)是Linux下比較重要的配置檔案,它包含了系統在啟動時掛載檔案系統和儲存裝置的詳細資訊。
這句話說的很明白,fstab就是來專門制定掛載方式和資訊的。
我們來舉個例子
面是我機子上的fstab檔案:
LABEL=/ / ext3 defaults 1 1
LABEL=/boot1 /boot ext3 defaults 1 2
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
LABEL=SWAP-sda11 swap swap defaults 0 0
/dev/sda6 /mnt/winE vfat defaults 0 0
/dev/sda8 /mnt/winG ntfs defaults 0 0
第一列是需要掛載的檔案系統或者是儲存裝置或者是需要掛載的目錄。
第二列是掛載點
第三列是檔案系統或者是分割槽的型別(其實分割槽型別就是中檔案系統)
第四列是以何種形式掛載,比如
rw讀寫 auto 自動掛載Ro只讀等等引數。
不過最常用的是defaults。
defaults是rw,suid,dev,exec,auto,nouser,async等的組合。
第五列為dump選項,設定是否讓備份程式dump備份檔案系統,0為忽略,1為備份。
第六列為fsck選項,告訴fsck程式以什麼順序檢查檔案系統,0為忽略。
‘/etc/fstab’有幾個用處:
決定開機時自動掛載哪些介質;
指定每個介質掛載時的可選項、載入點;
系統用來掛載幾個虛擬檔案系統。
開機時掛載介質
預設下,開機時‘fstab’中列出的所有介質都將被掛載。如果其中某個介質出了問題,‘mount’會顯示出錯資訊,然後繼續下一條目。請注意,這對於網路介質,比如 NFS 或 SMB 共享,也有效。如果想取消開機時的自動掛載,您得在‘/etc/fstab’給相應條目提供‘noauto’可選項。
指定掛載的可選項和載入點
‘mount’命令有兩種可選項:常規可選項、檔案系統的特殊可選項。
特殊可選項針對特定的檔案系統。如果您在‘fstab’中給某個條目提供了特殊可選項(比如用於 Windows FAT 檔案系統的umask=0
),只有相應檔案系統的介質才可以通過該條目被掛載。如果您想掛載其他檔案系統的介質,要麼再設定那個可選項,要麼建立單獨的條目。
指定載入點有個好處,以後可以省略掛載/解除安裝時的裝置檔名。
mount mount_point
就將在‘/etc/fstab’尋找相應載入點的條目,並按照預先設定完成掛載。