我在 CentOS 6.9 上设置了软件 RAID 1,带有两个 HDD(SDA 和 SDB)。SDB 的智能自检本周开始出现错误:
Device: /dev/sdb [SAT], Self-Test Log error count increased from 0 to 1
因此,今天早上我使用 mdadm 将其设置为故障状态,并移除 SDB 并插入新的 HDD。我运行的命令是:
smartctl --all /dev/sdb
cat /proc/mdstat
mdadm --manage /dev/md1 --fail /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb1
mdadm --manage /dev/md5 --fail /dev/sdb5
mdadm --manage /dev/md5 --remove /dev/sdb5
mdadm --manage /dev/md3 --fail /dev/sdb3
mdadm --manage /dev/md3 --remove /dev/sdb3
mdadm --manage /dev/md2 --fail /dev/sdb2
mdadm --manage /dev/md2 --remove /dev/sdb2
cat /proc/mdstat
shutdown -h now
顶级命令允许我查看硬盘的序列号,以确保我拉了正确的驱动器。
在服务器 BIOS 中放入新驱动器后,只会给我一个错误(类似于)安装适当的启动设备并重新启动机器。
我的假设是(不知何故)我错误地只在 SDB 上安装了 MBR(只是猜测)。因此,移除 SDB 后它无法启动。我尝试将 SDB 放回机器中,它只是咔嗒一声(当然),并给了我同样的错误,让我安装一个合适的启动设备并重新启动。
有人能就如何启动这台机器提出一些建议,以便我可以恢复所有数据吗?SDA 应该仍然是一个好的硬盘。此外,如果有办法从 SDA 启动,那么我应该能够安装新的 SDB 并允许软件 RAID 同步。
更新:
感谢 RalfFriedl,我已从 LiveCD 启动了服务器。
我用过了:
sfdisk -d /dev/sda | sfdisk --force /dev/sdb
像 SDA 一样对新的 SDB 进行分区。
谢谢!
答案1
确保两个驱动器在正常工作时都能启动是一个好主意。不幸的是,许多安装程序都没有做到这一点。
由于您的其他磁盘无法启动,您需要一张实时或救援 CD。如果您有适当的基础设施,您也可以从网络启动。一旦您的救援系统运行起来,在新驱动器上创建一个与旧驱动器匹配的分区表,并将分区添加到 RAID。如果您有时间,请等待阵列同步。否则,从您的启动分区开始。现在在 上执行绑定挂载dev
,proc
并将sys
chroot 到您的根分区并重新安装引导加载程序。
这是我在这种情况下使用的方法
mount /dev/md/root /mnt
for i in /dev /proc /sys; do mount --bind $i /mnt$i; done
chroot /mnt