web-dev-qa-db-ja.com

GPT、grub、mdadm。 sdaドライブが交換され、RAIDがリカバリモードで再構築されましたが、サーバーが起動しなくなりました

パーティションテーブルは次のようになります。

(parted) print                                                            
Model: ATA Toshiba DT01ACA2 (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2097kB  1049kB                     bios_grub
 2      2097kB  514MB   512MB                      raid
 3      514MB   8706MB  8193MB                     raid
 4      8706MB  2000GB  1992GB                     raid

(parted) 
(parted) quit                                                             
root@condor1958:~# parted /dev/sdb
GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Model: ATA ST2000DM001-1CH1 (scsi)
Disk /dev/sdb: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2097kB  1049kB                     bios_grub
 2      2097kB  514MB   512MB                      raid
 3      514MB   8706MB  8193MB                     raid
 4      8706MB  2000GB  1992GB                     raid

背景:/ dev/sdaドライブに障害が発生して交換され、サーバーがリカバリモードで起動されました。 sdbからsdaにパーティションテーブルを選択し、mdを同期しましたが、リカバリモードの外に出たときにサーバーが起動したくありません。

これは、アレイがリカバリモードで機能していることの証明です。

root@condor1958:/mnt/2/var/log# cat /proc/mdstat 
Personalities : [raid1] [raid0] [raid6] [raid5] [raid4] 
md2 : active raid1 sda4[2] sdb4[1]
      1944880960 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sda3[2] sdb3[1]
      7996352 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sda2[2] sdb2[1]
      499392 blocks super 1.2 [2/2] [UU]

リカバリモードでは、パーティションがマウントされます

/dev/md0 on /mnt/0 type ext2 (rw)
/dev/md2 on /mnt/2 type ext4 (rw)

ライブモードで

/dev/md0 is a /boot
/dev/md2 is a /

リカバリモードを終了したときにサーバーが起動したくないのはなぜですか?

ありがとう

2
Mladen Adamovic

レプリケーションパーティションテーブルの後でgrub-install /dev/sdaを呼び出すのを忘れたようです。簡単な回避策として、BIOSを入力し、/ dev/sdb(BIOSに表示される2番目のディスク)から最初に起動するように指示できます。最初から起動しようとしていると思います/ dev/sda

重要なのは、最初の起動可能なパーティションがmdソフトウェアRAID上にないため(カーネルの起動前に使用されているため、起動できないため)、ディスクを交換するときにも準備する必要があります。それ以外の場合は、プライマリおよびセカンダリブートローダーがありません。

フォローアップ:何らかの理由で/ bootが最初だと思うようです)bios_grubパーティションですが、そうではありません。同時に、初期化されていないbios_grubパーティションが、サーバーが起動を拒否する唯一の理由です。

1
drookie