我使用 mdadm 创建 3 个 raid 1 阵列后重新启动了服务器,重新启动后,systemd 在启动时尝试组装 raid 设备时弹出有关 raid 设备超时的错误。
我可以选择输入 root 密码进行维护,我已经这样做了。
我尝试跑步
mdadm --assemble --scan
但这没有产生任何输出。
我不确定还应该检查什么。
这是一个 debian 10 系统,它在另一个 debian 10 实例上的 KVM(lib-virt)内运行。有一个 HBA 作为 pci 设备传递到 VM。这可能相关,也可能不相关。
据我所知,mdadm.conf 设置正确,并且 fstab 设置正确。
但是,我可能又错了。
我现在应该怎么做?
数据可能不是特别重要,因为我们只是昨晚才复制了一些东西。不过,最好不要丢失所有内容,因为复制花了一整天的时间。
更新
这是输出
mdadm --examine --verbose /dev/sda
/dev/sda:
MBR Magic: aa55
Parition[0]: 1953525167 sectors at 1 (type ee)
这有帮助吗?
所需信息
cat /proc/mdstat
Personalities : [linear] .... etc ....
unused devices: <none>
就是这样 - 那里没有突袭设备列表(抱歉,应该早点说这个)
命令运行:
例如,在我的 raid 在第一次重启时失败后,我设法使用以下命令重建它们,据我所知,没有丢失任何数据
sudo mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
cat /proc/mdstat
.... syncing
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo reboot
sudo mdadm --assemble --scan
cat /proc/mdstat
.... nothing there
答案1
我自己尝试了很多指南,大多数都遇到了同样的问题,但这个特定的指南杰夫·格林对我来说很管用。对我来说,关键的区别是在使用 mdadm 创建阵列之前对每个单独的驱动器进行分区。
答案2
显然我从来没有在这里发布答案,但我确实设法恢复了我的驱动器/ raid 阵列/数据。
简而言之,我所做的是这样的:我重复了这些步骤来再次创建数组,当组装时,我的数据“就在那里”。
问题大致如下:
由于超级块已被覆盖,因此无法重新组装我的阵列。
我不记得为什么会发生这种情况,但情况是这样的:
- 要么我在创建软件阵列之后创建了分区,但我应该在创建软件阵列之前创建它们
/dev/sda1/
或者我应该使用软件分区( )而不是磁盘本身(/dev/sda
)来创建阵列- 或以上内容的组合或略微变化
基本上:进行分区时要小心,不要覆盖超级块。设置阵列时要小心,不要覆盖分区信息。我建议在设备上放置一些不重要的数据后进行硬重启来检查您的设置是否正常。如果您可以重新启动机器而阵列没有重新组装失败,那么您可能没问题。