mdadm
RAID 1を搭載したDebian 9を実行しています。以前は両方のハードドライブがOSで起動できましたが、現在はどちらか一方しか起動できません。
最近、交換が必要な不良ディスクがあったので、交換しました。
まず、走った
mdadm --add /dev/md0 /dev/sda
うまくいきました。その直後走った
grub-install /dev/sda
これは私に次の出力を与えました:
Installing for i386-pc platform.
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
grub-install: error: unable to identify a filesystem in hd0; safety check can't be performed.
これがlsblk
からの私の出力です。
sda 8:0 0 447.1G 0 disk
└─md0 9:0 0 232.8G 0 raid1
├─md0p1 259:0 0 14.9G 0 md [SWAP]
├─md0p2 259:1 0 1K 0 md
├─md0p3 259:2 0 216G 0 md /
└─md0p5 259:3 0 1.9G 0 md /boot
sdb 8:16 0 5.5T 0 disk
├─sdb1 8:17 0 5.5T 0 part
└─sdb9 8:25 0 8M 0 part
sdc 8:32 0 5.5T 0 disk
├─sdc1 8:33 0 5.5T 0 part
└─sdc9 8:41 0 8M 0 part
sdd 8:48 0 232.9G 0 disk
└─sdd1 8:49 0 232.9G 0 part
└─md0 9:0 0 232.8G 0 raid1
├─md0p1 259:0 0 14.9G 0 md [SWAP]
├─md0p2 259:1 0 1K 0 md
├─md0p3 259:2 0 216G 0 md /
└─md0p5 259:3 0 1.9G 0 md /boot
そして、これがmdadm --detail /dev/md0
からの出力です。
/dev/md0:
Version : 1.2
Creation Time : Wed Dec 12 15:26:35 2018
Raid Level : raid1
Array Size : 244066304 (232.76 GiB 249.92 GB)
Used Dev Size : 244066304 (232.76 GiB 249.92 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Thu May 28 18:59:51 2020
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : localserver:0 (local to Host localserver)
UUID : 83d5a386:66110e10:e5f3c600:734423a8
Events : 5339803
Number Major Minor RaidDevice State
2 8 0 0 active sync /dev/sda
1 8 49 1 active sync /dev/sdd1
/dev/sda
だけで起動しようとしましたが、うまくいきませんでした。一部の人が推奨するように、blockdev --flushbufs /dev/sda
も実行してみましたが、役に立ちませんでした。
GPartedを実行すると、/dev/sdd1
にはフラグbootとraidがあり、/dev/sda
にはフラグがないことがわかります。また、/dev/sda
の最初のセクターは0から始まり、/dev/sdd1
は2048から始まることもわかります。
誰かが私がこれを解決できる方法を提案できますか?
「奇妙な」ハードドライブを取り外してフォーマットし、再接続してもかまいません。
OK-これが私が解決した方法です。 /dev/sdd
に/dev/sdd1
と呼ばれるパーティションがあり、セクターが2048から始まるという事実は非常に役に立ちました。
これ Arch Wikiのwikiarticleも非常に役に立ちました。重要なのは、両方のライブをまったく同じ方法で分割することです。
mdadm --fail /dev/md0 /dev/sda
mdadm --remove /dev/md0 /dev/sda
sfdisk
を使用して、作業ディスクのパーティション情報を保存してから、問題のあるディスクを再パーティション化します。sfdisk -d /dev/sdd > raidinfo-partitions.sdd
sfdisk /dev/sda < raidinfo-partitions.sdd
出来上がり!
mdadm --add /dev/md0 /dev/sda1
grub-install /dev/sda
ディスクのレイアウトを理解している場合(これもUEFIであると想定しています)、grub-install
のブートディレクトリでmd0
を試してみてください。 /dev/sda
は単なるデバイスですが、通常GRUBをディスクの/boot
にインストールする必要があります。UEFIを実行しているかレガシーを実行しているかによって異なります。
Arch Wikiから。
Grub-installコマンドにdevice_pathオプション(例:/ dev/sda)がないことに注意してください。実際、提供されたdevice_pathはGRUB UEFIインストールスクリプトによって無視されます。実際、UEFIブートローダーはMBRブートコードまたはパーティションブートセクターをまったく使用しません。
Arch WikiはGRUBの私のお気に入りです。詳細については、こちらをご覧ください: https://wiki.archlinux.org/index.php/GRUB#Installation_2