我有一台专用服务器,其中有一个 Raid I,/dev/sda
它/dev/sdb
开始/dev/sda
出现故障,所以我订购了它的替代品。干预后,服务器进入救援模式,我没有从支持人员那里得到任何信息,所以我一直在尝试让它恢复。
我意识到,即使他们更换了有缺陷的硬盘,他们也懒得复制分区/dev/sdb
并将新硬盘添加到mdadm
。因此,在我自己完成这些操作后,我看到/proc/mdstat
恢复正在进行中。
root@rescue:/mnt/etc# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md2 : active raid1 sda2[0] sdb2[1]
523200 blocks [2/2] [UU]
md3 : active raid1 sda3[0] sdb3[1]
20478912 blocks [2/2] [UU]
md4 : active raid1 sdb4[1] sda4[2]
3884961728 blocks [2/1] [_U]
[====>................] recovery = 22.4% (872776320/3884961728) finish=254.3min speed=197355K/sec
bitmap: 1/29 pages [4KB], 65536KB chunk
unused devices: <none>
我在备份中搜索了 fstab 上适当的根分区:
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/md3 / ext4 errors=remount-ro,usrjquota=quota.user,jqfmt=vfsv0 0 1
/dev/md2 /boot ext4 errors=remount-ro 0 1
/dev/md4 /home ext4 defaults,usrquota 1 2
/dev/sda5 swap swap defaults 0 0
/dev/sdb5 swap swap defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/sda1 /boot/efi vfat defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts defaults 0 0
/usr/tmpDSK /tmp ext3 defaults,noauto 0 0
并且我通过从救援模式安装它来确保它是完好的。
然后我尝试通过网络启动指定 /dev/md3 作为根分区。然而当我尝试这样做时,服务器立即进入紧急模式,解释 /dev/sda 存在一些问题(我猜是因为它仍在重建)。
FAT-fs (sda1): bogus number of reserved sectors
FAT-fs (sda1): Can't find a valid FAT filesystem
我无法通过登录提示,因为我的 root 密码似乎无法识别,所以我真的不知道 journalctl -xb 的结果显示什么,但我想该硬盘的校验和没有加起来。
问题是,有没有什么办法可以使用 raid 重新启动服务器,但在重建 RAID 时优先考虑 /dev/sdb?我知道每次重启都会使 mdadm 修复过程回到 0%,所以我现在试图完全确定如果我尝试其他方法它是否会起作用。
答案1
/dev/sda1 /boot/efi vfat defaults 0 0
您的 UEFI ESP 不在磁盘阵列上。需要它来启动,但它实际上不能是阵列。
恢复工作文件系统。从备份中恢复它,或重新安装它。系统管理员指南是:
yum reinstall grub2-efi shim
(理论上,您可以使用 mdadm 重新同步 efi 磁盘。问题是,各个成员可能会通过阵列外的 EFI 固件进行更新,因此这非常丑陋且容易受到黑客攻击。)