缩小 raid 10 上的 ext4 分区

缩小 raid 10 上的 ext4 分区

我的问题类似于移动 ext4 分区,但我无法弄清楚的挑战是如何从一开始就缩小分区。

因此假设最初的分区(带有 raid)是这样的。

(************** /dev/md127 ***************)

调整大小后,我想要实现这样的效果。

(*** unallocated ***)(**** /dev/md127 ****)

注意,我不能使用 gparted,而且 parted 不支持 ext4。

到目前为止我尝试过的命令

% resize2fs -p /dev/md127 1676G    # <== This is good.

% lvreduce -L 1676G /dev/md127
Path required for Logical Volume "md127"
Please provide a volume group name
Run `lvreduce --help' for more information.

然后我找到了一些链接(http://www.howtoforge.com/how-to-resize-raid-partitions-shrink-and-grow-software-raid) 描述如何更改 raid 的分区。

$ mdadm --grow /dev/md127 --size=max
mdadm: Cannot set device size for /dev/md127: Invalid argument

这里失败了,“man mdadm”显示“--grow”不适用于 raid 10。需要一些帮助。请注意,我使用“--size=max”只是为了快速测试,它也不适用于其他值。

然后在那之后,我想在这个分区之后立即创建另一个分区,将数据复制到该分区,然后删除这个分区,就像这样。

1. (************** /dev/md127 ***************)

2. (**** /dev/md127 ****)(*** new partition **)

3. (*** unallocated ****)(**** /dev/md127 ****)

谢谢。

答案1

您的问题中存在一些困惑,需要首先澄清,但看起来答案是您无法做您想做的事情。

首先,lvresize用于更改 lvm 逻辑卷的大小,因此不适用于,/dev/md127因为那是 raid 阵列。其次,您要求在 之前有未分配的空间/dev/md127,这没有意义,因为它是 raid 阵列,因此就 raid 阵列而言,它之前或之后都没有空间。raid 可以构建在分区之上,例如/dev/sda1/dev/sdb1,因此必须是您想要的先前可用空间。 可以更改用于 raidmdadm的大小,允许您使用来缩小该分区,但这只会移动阵列和分区的末尾,而不是起始位置。没有办法移动起始位置。/dev/sda1parted

相关内容