FreeBSD 10からの起動時に自動的にiSCSIパーティションをマウントする

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ファイルシステムに「late」オプションを追加しましたが、うまくいきません。

# 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」と入力すると、システムが起動し続け、ドライブが正常にマウントされます。

マウントが失敗しないようにiscsiデバイスを作成できるように5秒の遅延を設定する方法はありますか?

ベストアンサー1

免責事項:これが正しいかどうかわかりません。正しいやるべきことがありますが、これは私にとって効果的でした。

したがって、ネットワークサービスのロードを完了し、何かをマウントできるように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秒が良い数字のようです。マイレージはさまざまであり、異なる値をテストする必要があります。

繰り返しますが、これがこの特定の問題を解決する正しい方法であるかどうかはわかりません。誰でも良いか正しい方法があれば投稿してください。

おすすめ記事