我已经花了一段时间在我的 Fedora 服务器上设置 RAID 1。我有一个安装了 Fedora 的服务器,还有一个空白但已分区的服务器。安装了 Fedora 的服务器是/dev/sda
,空白的服务器是/dev/sdb
。
我尝试通过执行进行安装mdadm --create /dev/md0 --raid-devices=2 --level=1 /dev/sda2 /dev/sdb1
,但它响应“无法打开 /dev/sda:设备或资源繁忙错误”。
我尝试执行上一个线程中的解决方案,我使用sudo yum remove dmraid libdmraid1.0.0.rc15
并重新启动了,但仍然有一个设备处于繁忙状态/dev/sda
。
我尝试使用来强制执行它mdadm --assemble --run --force /dev/md0 /dev/sda2 /dev/sdb1
,但是它说“/dev/sda2 没有超级块 - 程序集中止”。
当我尝试执行 zero-superblock 命令时,mdadm --zero-superblock /dev/sda1
它返回“无法打开 /dev/sda 进行写入 - 未归零”。
因此,我安装了 smartmontoools 来查看是否是驱动器的问题。当我使用时,它们都通过了测试smartctl -d ata -a dev/sd[a1,b1,a2,b2]
。
我对 Linux 和 Fedora 还很陌生,所以也许解决方案真的很简单,只是我不明白?我现在真的很困惑和沮丧,我想寻求一些外部帮助。我不知道接下来该怎么办。
答案1
你想做什么?因为我看到两个选项:
选项1:
您已在磁盘 /dev/sda 的第一个分区上安装了 Fedora。/dev/sda2
中有一些可用空间,
/dev/sdb1 中有一些可用空间
,并且您想将这两个分区合并为一个镜像。
选项 2:
您已经在第一个磁盘(在第一个分区中)安装了 Fedora,并且您想要镜像所有内容,包括当前处于活动状态的操作系统。
选项 1 应该可以正常工作。您可能需要检查 /dev/sda2 和 /dev/sdb1 的分区类型是否为fd
。(又称 Linux RAID 自动检测)。
您还需要检查两个分区是否都已安装(并因此处于活动状态)文件系统。最坏的情况是重新启动操作系统并选择单用户模式。然后创建阵列,只运行一个裸根 shell,不运行任何程序。
选项 2 比较棘手。简单的解决方案是使用安装前创建的 RAID 阵列重新安装。
硬解决方案可以归结为:
- 使用以下方式创建镜像一磁盘。
mdadm -create /dev/md0 --raid-devices=2 --level=1 missing /dev/sdb1
(请注意“缺失**”)。您现在应该有一个降级镜像。 - 将操作系统复制到新设备。对于正在运行的操作系统来说,这很棘手。我建议从 liveCD 启动来执行此操作。
- 配置新磁盘进行启动(可能意味着使用引导加载程序)。
- 现在从降级的镜像启动,使 sda 上的旧操作系统处于非活动状态。
- 擦除磁盘,重新分区为 fd 类型。可能需要重新启动。
- 通过将旧磁盘添加到镜像来“修复”镜像。