GRUBはRAID 1アレイの2番目のハードドライブから起動できません。

GRUBはRAID 1アレイの2番目のハードドライブから起動できません。

私はこれに数時間を費やし、何十ものStackExchangeの投稿を見つけましたが、まだ停止しています。

ソフトウェアRAID 1構成のDebianシステムがあります。現在のマシンは正常に起動します。

マイコンピュータのハードドライブを交換する予定です。このプロセスでは、ブートプロセスが実際に期待どおりにミラーリングされないことがわかりました。最初のハードドライブ()を取り外そうとすると、/dev/sdaサーバーは起動しません。私は一人で始めることができないようです/dev/sdb

私はいくつか試しました:

  • sudo grub-install /dev/sdbsudo update-grub /dev/sdb
  • sudo dpkg-reconfigure grub-pcsdasdb(ただし、これを完了したときに、およびにインストールするためのオプションが提供されています。)を確認md0しましたが、インストールに成功したようですが、確認しようとするとインストールに失敗しました。sdasdbmd0

また、GRUBがドライブmd0自体(sda例:sdbブート中にGRUBがロードされたときにアレイが起動しないため、これが問題になる可能性があると思いますか?そうです。

人々が持っているアイデアを聞きたいです。よろしくお願いします!役に立つ場合は、私のシステム構成は次のようになります。

# taken from grub.cfg
if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_msdos
insmod part_msdos
insmod diskfilter
insmod mdraid09
insmod ext2
set root='mduuid/73f4f8fa4b4d9ea4dbaa835b9c9612ac'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='mduuid/73f4f8fa4b4d9ea4dbaa835b9c9612ac'  20fb3f71-3911-4f65-8773-7cf6bf334
e0d
else
  search --no-floppy --fs-uuid --set=root 20fb3f71-3911-4f65-8773-7cf6bf334e0d
fi
    font="/usr/share/grub/unicode.pf2"
fi
~$ sudo blkid
/dev/sda1: UUID="73f4f8fa-4b4d-9ea4-dbaa-835b9c9612ac" TYPE="linux_raid_member"
/dev/sda5: UUID="882c3c60-15c3-d6f8-d399-c9bc0b1041c7" TYPE="linux_raid_member"
/dev/sda6: UUID="6b77ee71-58d7-20c2-e510-ea20661b7451" TYPE="linux_raid_member"
/dev/sda7: UUID="361b574d-18d0-f4a5-3076-c1e8f6240de2" TYPE="linux_raid_member"
/dev/sdb1: UUID="73f4f8fa-4b4d-9ea4-dbaa-835b9c9612ac" TYPE="linux_raid_member"
/dev/sdb5: UUID="882c3c60-15c3-d6f8-d399-c9bc0b1041c7" TYPE="linux_raid_member"
/dev/sdb6: UUID="6b77ee71-58d7-20c2-e510-ea20661b7451" TYPE="linux_raid_member"
/dev/sdb7: UUID="361b574d-18d0-f4a5-3076-c1e8f6240de2" TYPE="linux_raid_member"
/dev/md0: UUID="20fb3f71-3911-4f65-8773-7cf6bf334e0d" TYPE="ext3"
/dev/md1: TYPE="swap"
/dev/md2: UUID="089c64c1-fefc-4cb4-8b9f-f06439f6a757" TYPE="ext3"
/dev/md3: UUID="0865f8c6-95ac-4582-b7c5-9e9d02a34e8e" TYPE="ext3"
~$ lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
fd0       2:0    1     4K  0 disk  
sda       8:0    0 698.7G  0 disk  
├─sda1    8:1    0  18.6G  0 part  
│ └─md0   9:0    0  18.6G  0 raid1 /
├─sda2    8:2    0     1K  0 part  
├─sda5    8:5    0   1.9G  0 part  
│ └─md1   9:1    0   1.9G  0 raid1 [SWAP]
├─sda6    8:6    0 169.4G  0 part  
│ └─md2   9:2    0 169.4G  0 raid1 /home
└─sda7    8:7    0 465.7G  0 part  
  └─md3   9:3    0 465.7G  0 raid1 /time_mac
sdb       8:16   0 931.5G  0 disk  
├─sdb1    8:17   0  18.6G  0 part  
│ └─md0   9:0    0  18.6G  0 raid1 /
├─sdb2    8:18   0     1K  0 part  
├─sdb5    8:21   0   1.9G  0 part  
│ └─md1   9:1    0   1.9G  0 raid1 [SWAP]
├─sdb6    8:22   0 169.4G  0 part  
│ └─md2   9:2    0 169.4G  0 raid1 /home
└─sdb7    8:23   0 465.7G  0 part  
  └─md3   9:3    0 465.7G  0 raid1 /time_mac
sr0      11:0    1  1024M  0 rom 
$ sudo parted -l
Model: ATA SAMSUNG HD753LJ (scsi)
Disk /dev/sda: 750GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system     Flags
 1      32.3kB  20.0GB  20.0GB  primary   ext3            raid
 2      20.0GB  704GB   684GB   extended
 5      20.0GB  22.0GB  1999MB  logical   linux-swap(v1)  raid
 6      22.0GB  204GB   182GB   logical   ext3            raid
 7      204GB   704GB   500GB   logical   ext3            raid


Model: ATA WDC WD1005FBYZ-0 (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system     Flags
 1      32.3kB  20.0GB  20.0GB  primary   ext3            raid
 2      20.0GB  704GB   684GB   extended
 5      20.0GB  22.0GB  1999MB  logical   linux-swap(v1)  raid
 6      22.0GB  204GB   182GB   logical   ext3            raid
 7      204GB   704GB   500GB   logical   ext3            raid
$ sudo grub-probe --target=device /boot/grub
/dev/md0

答え1

とても興味深い質問です。

あなたは次のように書きました:

私の起動プロセスが実際に期待した方法を反映していません。

ここで見られる最も簡単な解決策は、GRUBをインストールする3番目のドライブがあり、これがRAIDアレイを指すことです(md0可能であれば、RAIDは2番目のディスクなしで何らかの方法で起動できます)。 、下記の指示を参照してください)。あるいは、少し縮小して空き領域の1つにGRUBパーティションをインポートする方法もありますがsdasdbRAID構成を使用すると、2番目のディスクなしで起動できることを考慮すると)強制的に実行されるため、望むものではないようです。すべての新しい(交換用ディスク)に対して同じことを行います。


この問題を解決するには、GRUBは以下を指摘する必要があります。

ドライブ自体(例:sdaまたはsdb)

私が知っている限り、GRUBには次の節を処理するために実装された論理条件はありません。

if (md0) is not available:
   boot from (sda)

または

if (sda) is not available:
   boot from (sdb)

残念ながら、これが現在の設定でGRUBを起動するように指定する必要がある理由でありmd0、最初にRAIDを有効にするには両方のドライブが必要です。


私はGRUB2(インストールされていると思います)がRAIDアレイを処理できる必要があることを見たと思いました。

実際に両方のドライブがあり、アレイが正しく起動したら、RAIDアレイを処理します。あなたの場合(ドライブの1つを削除)、GRUBがロードされますが、「アレイはまだ起動していません」()を表しているmd0ため、システムは起動しません。

つまり、RAIDを使用することにした場合、2つのドライブが必要です。まったく同じGRUB設定を持つことで簡単に切り替えることはできません。


私が見ることができる唯一の(理論的)解決策は、外部パーティションとGRUBまたはいくつかのカスタム低レベルサービス(論理実装)を別々のパーティションで実行して、条件に直面することができるすべてを管理することです。考える:

  1. md0オンボードsdaおよびsdbオフボードで起動
  2. ただ始めましょうsda
  3. ただ始めましょうsdb

正直なところ、RAIDsda部分を無視しても構わないので、「理論的」と書いていますsdb。同様に、予想通り、RAIDが元々構成されていたという事実をスキップ、無視、または無視することは、GRUBではなくRAID構成自体によって処理される必要があります(再度言うが)。それが本当であるのか、それとも私たちが望む方法で動作するのかを言うことはできません。これについては、他の人がコメントする必要があります。


最後に、残念ながらGRUBとRAIDは望むように設計されていないようです。だからといって、そのような機能が決して実装されないという意味ではなく、確実に実装することができます。好きなようになる場合は非常にまれです。

通常、私が聞いたところによると、ディスクを交換してGRUBを指定し続けると、システムが1つmd0のディスクしか使用できないようにします。もちろん、私が間違っているかもしれませんが、すべての意見を尋ねたので、これは私の意見です。あなたの質問に幸運です。潜在的な解決策が本当に気になるので、この質問に従います。

答え2

ありがとうMikolaj!

私は問題を発見したという事実をフォローアップで恥ずかしく共有したかったです!私がしなければならないのは、古いドライブが/dev/sdb元の場所に接続されるようにドライブの接続を変更することだけです/dev/sda。その時点で、すべてがうまくいきました!

関連情報