Mount
在 FreeBSD 10 上啟動時自動掛載 iSCSI 分區
我有一個安裝 iSCSI 驅動器的 FreeBSD 10.2 伺服器。我想在 fstab 中自動安裝這些驅動器,以便它們在重新啟動後保持不變。
如果我執行命令
mount /dev/da0p1 /mnt
它完美地工作。
mount /dev/ada0p2 on / (ufs, local, journaled soft-updates) devfs on /dev (devfs, local, multilabel) /dev/da0p1 on /mnt (ufs, local, soft-updates)
但是,如果我在系統中放入一個條目,
/etc/fstab
它會停止其引導過程,說那/dev/dap1
是無效的。我假設這是因為網路和 iSCSI 服務尚未啟動。在我
/etc/fstab
的文件中,我為要掛載的文件系統添加了“延遲”選項,但它沒有任何效果。# cat /etc/fstab # Device Mountpoint FStype Options Dump Pass# /dev/ada0p2 / ufs rw 1 1 /dev/ada0p3 none swap sw 0 0 #User Added Entries #/dev/da0p1 /mnt ufs rw,late 3 3
會發生什麼情況是啟動過程停止說“沒有文件或目錄/dev/da0p1。如果我這樣做
ls /dev/da*
,該目錄就會出現。(見下圖)事實上,經過一些測試,如果我只是等待幾秒鐘,然後在單使用者模式下在提示符下鍵入“exit”,系統會繼續引導並且驅動器會正常安裝。
有沒有辦法延遲 5 秒以允許創建 iSCSI 設備,這樣安裝就不會失敗?
免責聲明:我不知道這是否是正確的做法,但它對我有用。
因此,我基本上需要在啟動過程中多花一點時間,以便網路服務可以完成載入,並且可以創建 iSCSI 掛載,以便可以掛載一些東西。
我所做的是添加
sleep 5
到/etc/rc.d/mountlate
腳本中。# PROVIDE: mountlate # REQUIRE: DAEMON # BEFORE: LOGIN # KEYWORD: nojail . /etc/rc.subr name="mountlate" start_cmd="mountlate_start" stop_cmd=":" mountlate_start() { local err latefs sleep 5 <-------- Added this line # Mount "late" filesystems. # err=0
5 秒對我來說似乎是個不錯的數字;您的里程可能會有所不同,您需要測試不同的值。
同樣,我不知道這是否是解決此特定問題的正確方法,如果有人有更好或正確的方法,請發布。