GPT、grub 和 mdadm。sda 驱动器已更换,raid 在恢复模式下重建,但现在服务器无法启动

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 /

为什么当我退出恢复模式时服务器不想启动?

谢谢

答案1

好像你忘了打电话grub-install /dev/sda在复制分区表后调用。作为一个简单的解决方法,你可以进入 bios 并告诉它首先从/dev/sdb(BIOS 中第二个磁盘可见)。我想它正在尝试从第一个磁盘启动,/dev/sda

问题是,第一个可启动分区没有打开MD软件 raid(但不能,因为它在内核启动之前使用),因此在更换磁盘时也必须准备好。否则它会缺少主引导加载程序和辅助引导加载程序。

跟进:似乎出于某种原因你认为/启动是第一个bios_grub分区,而它不是。同时未初始化bios_grub分区是您的服务器拒绝启动的唯一原因。

相关内容