分区表的样子如下:
(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分区是您的服务器拒绝启动的唯一原因。