我的问题类似于Move ext4 partition,但我无法弄清楚的挑战是如何从一开始就缩小分区。
所以假设最初分区(带 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.
然后我找到了一些描述如何更改 raid 分区的链接 ( http://www.howtoforge.com/how-to-resize-raid-partitions-shrink-and-grow-software-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 ****)
谢谢。
您对您的问题有些困惑,需要先弄清楚,但看起来答案是您不能做您想做的事。
首先,
lvresize
用于更改 lvm 逻辑卷的大小,因此不适用于/dev/md127
raid 阵列。其次,您要求在 unallocated space preceeding 之前/dev/md127
,这没有意义,因为它是一个 raid 数组,所以就 raid 数组而言,它之前或之后没有空间。raid 可能建立在分区之上,例如/dev/sda1
和/dev/sdb1
,因此它必须是您想要的空闲空间所在的位置。mdadm
可以更改/dev/sda1
用于 raid 的大小,允许您使用parted
缩小该分区,但这只会移动数组和分区的末尾,而不是开始。没有办法移动开始。