(我運行的是 openSUSE 13.2)
我目前的設置
我有一個外部備份驅動器,我在啟動時使用以下行安裝該驅動器/etc/fstab
:
/dev/mapper/cr_backup /backup ext4 comment=systemd.automount,nofail 0 2
我有這個nofail
選項,因為有時備份驅動器不存在,並且我不希望啟動在這種情況下掛起。
問題
當備份磁碟機不存在時,ls
在我的根目錄上運行會進入無限循環,我必須使用 ctrl+c 取消該循環。錯誤訊息是:
ls: cannot access /backup: Interrupted system call
似乎ls
失敗了,因為它試圖訪問備份驅動器但不能。
一種解決方案是將備份磁碟機嵌套在此處,/backup/backup
以免ls /
發生故障。然而,這感覺像是一個骯髒的駭客,我想知道是否有一個更優雅的解決方案(我渴望了解更多有關係統如何運作的信息!)。
根據我的(有限)經驗mount
,如果未安裝設備,則安裝點是一個空目錄。我可以在這裡實現類似的目標嗎?不過,我需要小心,因為我安排了每小時自動備份,如果未安裝設備,目前備份不會運行。如果備份尚未安裝備份驅動器,我絕對不希望備份將所有內容轉儲到空目錄中!
答案1
在我看來,嘗試在啟動時掛載備份檔案系統是一種不好的做法,因為如果出現問題(rm -rf / [enter] ops),備份上的資料可能會一起刪除。
因此,如果您使用腳本來執行此操作,請在腳本內或 cron 內掛載,並在完成後卸載。
這樣您的啟動將不再掛起,檔案系統也將正常運作。
但是,另一個解決方案是將其從 fstab 中刪除,並將其作為掛載命令放入 rc.local 中,並使用「&」字元在背景執行:
mount /dev/mapper/cr_backup /backup -t ext4&
對於可移動設備,您也有 autofs 解決方案: https://linuxconfig.org/automatically-mount-usb-external-drive-with-autofs
答案2
我知道您正在運行 SUSE,但是來自 Ubuntu fstab wiki 的此聲明(https://help.ubuntu.com/community/Fstab)可能會為您指明正確的方向:
可移動設備,例如閃存驅動器能加到 fstab,但通常由 gnome-volume-manager 掛載,超出了本文檔的範圍。
更新:這可能很有趣http://www.novell.com/coolsolutions/tip/17785.html,一篇關於 SUSE 的舊文章。