Mount

在 FreeBSD 10 上啟動時自動掛載 iSCSI 分區

  • July 18, 2019

我有一個安裝 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 秒對我來說似乎是個不錯的數字;您的里程可能會有所不同,您需要測試不同的值。

同樣,我不知道這是否是解決此特定問題的正確方法,如果有人有更好或正確的方法,請發布。

引用自:https://unix.stackexchange.com/questions/259693