Published On: 2016-06-24|Last Updated: 2018-06-13|Categories: Linux, Ubuntu, Uncategorized|Tags: , , , , |

Ubuntu 16.04 で Software RAID の RAID1 ディスクを構成し、 縮退状態からブートしようとすると initramfs shell に落ちます。

cat /proc/mdstat すると inactive になっているので mdadm –detail /dev/md0 で詳細を表示させると raid0 になっている … デバイスが有効になっていないためこのような表記になっているようです。

# mdadm --run /dev/md0

上記のように実行すると縮退状態でデバイスが有効になります。/proc/mdstat には mdadm が自動で検出して構成した、/etc/mdadm/mdadm.conf にはないデバイスも表示されます。起動に関係ないデバイスは有効にしない方が良いでしょう。

デバイスを有効にしたら必要に応じて lvm の検出も行います。

# vgchange --activate y

暗号化ファイルシステムなどを使用している場合はそれらも手動で有効にする必要があります。

すべて終わったら exit で initramfs shell を終了します。起動できる状態であれば処理が続行されてシステムが起動します。

上の手順以外では途中まで同様ですが、こちら (Booting an Ubuntu server with a degraded software RAID array) の手順に従い、とにかく / をマウントして、 chroot して、 /etc/initramfs-tools/conf.d/mdadm に BOOT_DEGRADED=true を追加して、update-initramfs -u して、リブートすると起動に成功します。状況としてはこちら (How did mdadm change from 14.04 to 16.04) が一番詳細に解説していると思います。raid1 で構成した環境を縮退 (degrade) させると起動しない、直しても再度 degrade させると同じ。askubuntu でいくつか関連していると思われるポストが見つかります。mdadm package のバグリストではどれが該当するか分かりません。

Ubuntu 15.04 だと同様の手順でも起動します。mdadm –version は 16.04 と同じく mdadm – v3.3 – 3rd September 2013。縮退させると起動時の md の構成に時間がかかっているのは重要な点に思えます。

Debian 8.5.0 も正常に機能しています。

Ubuntu のインストーラーでパーティションを設定するときに縮退状態で RAID1 を構成してインストールできるのですが、その場合は起動に成功するのでややこしい。lvm がどうたら (md の上に lvm を構成しているので認識するはずがない) とか /boot を分けてないとダメなのか (grub2 なら大丈夫なはず) とか疑いましたが関係なかった。

scsi_mod.scan=sync rootdelay=TIMEOUT_IN_SECONDS –> ダメ。mdadm.conf に level=1 を追加して、 update-initramfs -u -k all –> ダメ。num-devices=2 –> ダメ。DEVICE /dev/sd?? –> ダメ。

initramfs のスクリプトが原因のような気がします。

関連