我是一名半經驗的 Linux 管理員,正在嘗試弄清楚如何將外部硬碟自動安裝到我的 Linux 機器上。 (版本 2.6.16.13-4-smp)(我知道它是一個較舊的盒子。)我可以手動安裝驅動器:
me@linux:/> mount /dev/sdc1 /media/Seagate
me@linux:/>
意思是我想將位於的設備安裝/dec/sdc1
到目錄/media/Seagate
。這效果非常好。當我這樣做時,我看到以下內容:
me@linux:/> df -h
Filesystem Size Used Avail Use% Mounted on
...other stuff...
/dev/sdc1 917G 13G 858G 2% /media/Seagate
me@linux:/>
問題是,我需要機器在重新啟動時自動執行此操作。我用谷歌搜尋了一下並了解了一些關於該/etc/fstab
文件的資訊。為此,我在文件末尾添加了這一行/etc/fstab
:
/dev/sdc1 /media/Seagate ext3 defaults 0 2
/etc/fstab
前任管理員留下了曾經工作過的註解行。我克隆了它,為我的外部硬碟編輯了它,然後就開始了。 「ext3」來自該行,我不確定它的作用。我在網路上找到的一些教程建議將“預設值”和“0 2”作為最簡單的實作。
因此,當我使用上面的行重新啟動機器時/etc/fstab
,機器執行了不是成功重啟。當我檢查顯示器時,出現了許多錯誤訊息,包括:
Waiting for /dev/sdc1
error on stat() /dev/sdc1: No such file or directory
fsck.ext3: No such file or directory while trying to open /dev/sdc1
/dev/sdc1: The superblock could not be read or does not describe a correct ext2
下面是全顯示器螢幕的照片。
我不確定這裡發生了什麼,但看起來我的 Linux 盒子嘗試掛載外部硬碟,但硬碟不可用,因此 Linux 盒子無法成功啟動?但重啟時硬碟已插入。
如果我刪除新增的一行並再次重新啟動,系統會正常運行,但隨後我必須手動安裝硬碟。
那麼……知道這裡發生了什麼事嗎?謝謝。
答案1
檢查你的/etc/fstab
文件。每行的最後一個數字是fs_密碼。如果設定為 1(真),則需要成功引導 fsck 運作並在給定裝置上成功完成/dev/sdc1
。/etc/fstab
所示。
將 1 更改為 0,以允許 /dev/sdc1 行在未插入 USB 設備的情況下存在fstab
,或者如果未插入 USB 設備,則從 fstab 中完全刪除該行,或者插入 USB 設備如果您要在fstab 中的行尾保留1,則能夠通過fsck。
我不確定 fs_passno 的值對不同的 Linux 發行版是否有不同的影響,除了將其設為 0 表示不進行 fsck 之外。
另外,你的安裝按名字位於/dev/sdc1
fstab 的第一列。我強烈建議透過任何其他方式安裝,最好是按-uuid。按名稱掛載並不可靠,您的外部磁碟sdc
現在可能是這樣,但如果任何其他硬體發生變化導致其他問題,則很容易變成其他磁碟。
答案2
升級您的系統
這是一個已知的錯誤(Bug 204396 - 核心在引導期間看不到 USB 隨身碟)在與您正在使用的版本接近的核心版本中。
乍一看,問題似乎介於模組自動載入和 udev 之間。可能存在解決方法,您可以嘗試一下。添加mount /dev/sdc1 /media/Seagate
到您的/etc/rc.local
可能會有所幫助。不過,我真的建議您切換到更新的核心。它將遠沒有那麼麻煩(前提是您不依賴這個特定版本)。