我有一台新机器,安装了全新的 Gentoo Linux 和来自另一台机器的软件 RAID 5 阵列(4 个 IDE 磁盘连接到板外 PCI 控制器)。我已经成功地将控制器移到了新机器上;驱动器被内核检测到;我已经使用 mdadm --examine 并验证了单个 RAID 分区被检测到、清理,甚至以“正确”的顺序(hde1 == 驱动器 0、hdg1 == 驱动器 1 等)。
我无权访问的是旧机器的原始配置文件。我应该如何在不丢失数据的情况下重新激活该阵列?
我有一台新机器,安装了全新的 Gentoo Linux 和来自另一台机器的软件 RAID 5 阵列(4 个 IDE 磁盘连接到板外 PCI 控制器)。我已经成功地将控制器移到了新机器上;驱动器被内核检测到;我已经使用 mdadm --examine 并验证了单个 RAID 分区被检测到、清理,甚至以“正确”的顺序(hde1 == 驱动器 0、hdg1 == 驱动器 1 等)。
我无权访问的是旧机器的原始配置文件。我应该如何在不丢失数据的情况下重新激活该阵列?
你真的有点需要原始的 mdadm.conf 文件。但是,由于您没有它,因此您必须重新创建它。首先,在做任何事情之前,请通过其手册页阅读 mdadm。为什么有机会在您没有掌握的情况或命令中丢失您的数据?
话虽如此,此建议的风险自负。使用错误的命令很容易丢失所有数据。在运行任何东西之前,请仔细检查命令的后果。对于与您采取的任何操作相关的数据丢失或其他问题,我概不负责 -请仔细检查所有内容。
你可以试试这个:
这应该会为您提供一些开始使用的信息以及 ID。它还将创建一个新的阵列设备 /dev/md{number},从那里你应该能够找到任何挂载。 不要使用该
--auto
选项,手册页的措辞暗示在某些情况下,这可能会导致驱动器上的阵列设置被覆盖。 情况可能并非如此,为了清楚起见,页面可能需要重新编写,但为什么会这样呢?如果阵列正确组装并且一切都“正常”,请确保将您的 mdadm.conf 写入并存储在 .conf 中
/etc
,以便您在启动时拥有它。 在文件中包含数组中的新 ID 以帮助它。只是想至少添加我对 Debian 的完整答案。
sudo apt-get install mdadm
通过 --> 扫描旧的 RAID 磁盘
sudo mdadm --assemble --scan
此时,我喜欢
BLKID
手动检查并挂载raid以确认。blkid mount /dev/md0 /mnt
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
通过 --> 更新 initramfs
update-initramfs -u
故障排除:
确保输出
mdadm --detail --scan
匹配您的/etc/mdadm/mdadm.conf
示例 FSTAB
https://unix.stackexchange.com/questions/23879/using-mdadm-examine-to-write-mdadm-conf/52935#52935
https://askubuntu.com/questions/729370/can-i-transfer-my-mdadm-software-raid-to-a-new-system-in-case-of-hardware-failur
如何将 Linux 软件 RAID 移动到新机器上?
扫描 /proc/partitions 中列出的所有分区和设备,并从所有此类设备中组装 /dev/md0,并使用次要编号为 0 的 RAID 超级块。
如果 conf 成功,您可以添加 --detail --scan >> /etc/mdadm/mdadm.conf 以便在启动时捕获它
将操作系统从 CentOS 6.2 更新到 CentOS 8.2 时,与操作系统磁盘分离的 4 磁盘数据 Raid0 的问题将我带到了这里。
我能够使用 Avery 接受的上述答案(https://serverfault.com/a/32721/551746),但由于内核 3.14 中引入的 Raid 布局混乱而遇到了问题。
在这篇文章(https://www.reddit.com/r/linuxquestions/comments/debx7w/mdadm_raid0_default_layout/)之后,我必须更改默认布局(/sys/module/raid0/parameters/default_layout)才能获得新内核使用旧的 Raid0 布局。
如果可行,请添加内核参数,以便通过编辑 /etc/default/grub 并设置重启时 raid0 默认布局为 2(或 1 或 0)
重建 grub.cfg,添加到 /etc/fstab 并重新启动!