外部ドライブとして GW3.5AX2-SU3/REV2.0 を使用する際の問題

この GW3.5AX2-SU3/REV2.0 には「電源連動機能」という機能が備わっており、そのせいでHDDの起動が遅れるため、起動時にRaspberry pi側で認識されず、fstabに書いておくとエラーで起動しないという問題がありました。
その際のマウントについての記事です。

fstabでマウントできないのはどうしようもないので、起動後にcronで「マウントされていなければマウントする」的なスクリプトを定期的に実行させます。

まず、ファイルシステムがcleanでないとマウントしてくれないので、/etc/crontab に以下のように書き込みます。

@reboot /sbin/fsck -Fy /dev/da0p1
@reboot /sbin/fsck -Fy /dev/da0p2
@reboot /sbin/fsck -Fy /dev/da0p3
@reboot /sbin/fsck -Fy /dev/da1p1
@reboot /sbin/fsck -Fy /dev/da1p2
@reboot /sbin/fsck -Fy /dev/da1p3

自動マウントしてもらうスクリプト automount.sh は、以下のようにしました。
df | grep “mirror” | wc -l というコマンドの結果がマウントすべきデバイス数に到達するまで、マウントを実行します。

#!/bin/sh

DEVICE_N=3
COUNT=`/bin/df | /usr/bin/grep "mirror" | /usr/bin/wc -l`

if [ $COUNT -lt $DEVICE_N ]; then
        /sbin/gmirror load
        /sbin/mount -aF /etc/fstab.afterboot
fi

これを、/etc/crontab に追記します。chmod も忘れずに。

@every_minute   root /root/automount.sh

fstab.afterboot を指定して、マウントのトライをしています。
fstab.afterboot は以下の通りです。

# fstab read by /root/automount.sh
/dev/mirror/disk1       /home           ufs     rw      1       0
/dev/mirror/disk2       /usr/local      ufs     rw      1       0
/dev/mirror/disk3       /var/dbms       ufs     rw      1       0

RAID1 の設定は、FreeBSDのマニュアルを見ながらやってください。Google先生に尋ねるのもいい方法です。

わたしの環境での gmirror list の結果は、以下の通りです。

# gmirror list
Geom name: disk3
State: COMPLETE
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 3676360296
Providers:
1. Name: mirror/disk3
   Mediasize: 33837202944 (32G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
Consumers:
1. Name: da1p3
   Mediasize: 33837203456 (32G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: DIRTY
   GenID: 0
   SyncID: 1
   ID: 528158967
2. Name: da0p3
   Mediasize: 33837203456 (32G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: DIRTY
   GenID: 0
   SyncID: 1
   ID: 1200476790

Geom name: disk2
State: COMPLETE
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 1608483283
Providers:
1. Name: mirror/disk2
   Mediasize: 53687090688 (50G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
Consumers:
1. Name: da0p2
   Mediasize: 53687091200 (50G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 1738622893
2. Name: da1p2
   Mediasize: 53687091200 (50G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 4277851247

Geom name: disk1
State: COMPLETE
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 1382660050
Providers:
1. Name: mirror/disk1
   Mediasize: 912680549888 (850G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
Consumers:
1. Name: da1p1
   Mediasize: 912680550400 (850G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 3428454778
2. Name: da0p1
   Mediasize: 912680550400 (850G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 1625864176

これで、なんとかなりました。起動に時間はかかりますが、確実に立ち上がるので、良しとしています。
ご参考まで。