2023/07/14

mdmadmでのRAID1の再構成後に、OSが起動しない場合の対処法

OSを再起動した際、下記のようなエラーが出た。/パーティションがみつからないというエラー。

>>Determining root device (trying UUID=0c0ea181-ccdd-428b-820e-0f1f039470eb) ....
!! Block device UUID=0c0ea181-ccdd-428b-820e-0f1f039470eb is not a valid root device ...
!! Could not find the root block device in UUID=0c0ea181-ccdd-428b-820e-0f1f039470eb.
!! Please specify another value or:
!! - press Enter for the same
!! - type "shell" for a shell
!! - type "q" to skip ...
root block device(UUID=0c0ea181-ccdd-428b-820e-0f1f039470eb) ::



このエラーが出た場合はOSが起動してこないのでどうしようもない。

Rescue CDなどを作って修復する方法があるが、今回の場合はもっと簡単な方法がある。

今回は/パーティションを提供するRAID1 Arrayがみつからないことが原因なので、mdadm --runを使ってRAID1 Arrayを手動で起動してやる。Read onlyで開かれているのでmdadm --readwriteで読み書きできるようにする。

root block device(UUID=0c0ea181-ccdd-428b-820e-0f1f039470eb) :: shell
** To leave and try again just press <Ctrl>+D

Generating "run/initramfs/gksosreport.txt" ...
>> You might want to save "/run/initramfs/gksosreport.txt" to a USB stick or /boot
>> after mounting them and attach it to a bug report. 

>> Welcome to Genkernel 4.3.2 (2023-07-08 09:16:19 UTC) rescue shell!
>> ...running Linux kernel 6.1.38-gentoo-x86_64

rescueshell / # mdadm --run /dev/md3
rescueshell / # mdadm --readwrite /dev/md3
rescueshell / # mdadm --run /dev/md4
rescueshell / # mdadm --readwrite /dev/md4
rescueshell / # exit


ここまでできると、あとは通常通りに起動してくれる。ただし、起動してもRAID1の構成は十分にできていないため、mdadm --addで欠落したディスクをArrayに入れ、起動時にRAID1 Arrayが起動しない原因の対策が必要である。


注意事項として、OS起動時に参照されるmdadmの設定は、OS起動後の/パーティションに含まれる/etc/mdadm.confではなく、initramfsに含まれる/etc/mdadm.confである(initramfsを使用している場合)。

そのため、/パーティションの方を変更しても、initramfsの再構築をしない限り、OS起動時には読み込まれない。


 

 

 

0 件のコメント:

コメントを投稿