我第一次设置台式机时,将其设置为在 ubuntu 中使用软件 raid 0。因为事实证明,从升级 ubuntu(总是会破坏某些东西)中恢复时使用 /dev/md0 比使用 /dev/sda1 更困难,所以我想尝试撤消它。有没有办法将 raid0 成员分区设为 ext3 分区,而无需复制所有内容并重新执行 grub 和 initrd 等?
答案1
由于RAID 0由于数据分布在所有磁盘上,因此基本上没有简单的方法可以将任何磁盘转换为任何其他文件系统。故事结束。
话虽如此,可能如果你的 RAID 阵列有足够的可用空间和您正在使用阵列的分区,而不是整个磁盘(即/dev/sda1
,不是/dev/sda
)。
您可能首先需要缩小阵列,在磁盘末尾创建普通的 ext3 文件系统如果您有超过一半的阵列可用。摆脱 RAID 0 后,您仍然需要复制数据几次才能在磁盘上获得全尺寸的 ext3 分区。
因此,遵循这个完全未经测试的想法:
- 启动救援系统(例如 Ubuntu Live CD 可以正常工作)
激活所需模块
modprobe md multipath raid0
(还有别的吗..?)激活 RAID 阵列
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.backup
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
mdadm -A --scan
检查 fs
e2fsck -f /dev/md0
缩小文件系统
resize2fs /dev/md0 30G
[根据现有磁盘使用情况留出足够的空间,这里<30G!])缩小 RAID 阵列
mdadm --grow /dev/md0 --size=36700160
(大小以 KiB 为单位:35 * 1024^2 [这里也留出空间!])将 fs 扩大到最大可用大小
resize2fs /dev/md0
再次运行 fs check (以确保无误)
e2fsck -f /dev/md0
现在,磁盘开头有 RAID 0,结尾有可用空间。此时,您可能需要使用 来fdisk
缩小 RAID 分区并为 ext3 创建新分区。
然后你可以
在可用磁盘空间中创建正常文件系统
mke2fs ...
(随你怎么便)将数据从 RAID 复制到 ext3
cp ...
删除 RAID 阵列
sudo umount /dev/md0
sudo mdadm --stop /dev/md0
(停止数组)
sudo mdadm --zero-superblock /dev/sdx /dev/sdy ...
(清除超级块每个驱动器均按阵列排列!)
sudo mdadm --remove /dev/md0
(删除数组)将 ext3 添加到其中一个驱动器的开头
mke2fs ...
从其中一个磁盘复制数据
在磁盘上创建一个分区,在其上创建 ext3 fs
将数据复制回满盘文件系统
对所有剩余磁盘重复此操作(摆弄数据直到一半 RAID 一半 ext3 驱动器上没有数据)
请注意,我还没有测试过这个过程,你应该对数据进行完整备份!(与执行过度磁盘操作时一样。)此外,操作通常fdisk
需要重新启动,因此你必须随时仔细跟踪系统的状态。
总而言之,我认为远的更容易只需全新安装到 ext3 并从 RAID 0 复制数据。