我想缩小第二个(LVM)分区,以便在新释放的空间中创建一个新分区。我正在使用Live CD这样做,因为我知道在使用该分区时无法调整大小/移动该分区。在Live CD中打开GParted时,我意识到无法调整分区的大小,因为右键单击该分区时,“调整大小/移动”选项被禁用。
我尝试卸载它,以“懒惰”地卸载它(umount -l /dev/sda2
),但没有用。
GParted的屏幕截图:
我想缩小第二个(LVM)分区,以便在新释放的空间中创建一个新分区。我正在使用Live CD这样做,因为我知道在使用该分区时无法调整大小/移动该分区。在Live CD中打开GParted时,我意识到无法调整分区的大小,因为右键单击该分区时,“调整大小/移动”选项被禁用。
我尝试卸载它,以“懒惰”地卸载它(umount -l /dev/sda2
),但没有用。
GParted的屏幕截图:
Answers:
在人们遇到类似问题的Google上似乎有很多结果。一个例子:
尝试执行此操作之前,请备份所有重要数据。始终假定您在调整分区大小时可能会丢失所有数据。
该论坛线程建议执行以下过程,在本示例中,我们将分区从10G缩小到9G:
首先,我们卸载。
sudo umount /dev/vg_blah/lv_blah
检查文件系统。
sudo e2fsck -f /dev/vg_blah/lv_blah
调整文件系统和逻辑卷的大小。一步执行此操作可以避免导致数据丢失的错误。(请注意,lvreduce参数
-L
解释G
为2 ^ 30字节和g
10 ^ 9字节。)sudo lvreduce --resizefs -L 9G /dev/vg_blah/lv_blah
(可选)如果需要,请从卷组中删除物理驱动器(如果现在有未使用的驱动器)。
sudo vgreduce vg_blah /dev/sdxy
一切归功于brianmcgee。
注意:如果在磁盘末尾有另一个lv,vgreduce
将会失败cannot resize to xxxxx extents as later ones are allocated
-我删除了一个交换lv。请参阅如何缩小Ubuntu LVM逻辑和物理卷?在这种情况下寻求帮助。
lvreduce -r
。
1G
to lvreduce
是1000000000字节,而to resize2fs
是一个gibibyte。如果要将1吉字节传递给lvreduce
,请1g
改用。
vgreduce
; 这是从卷组中删除 PV。
lvreduce
在差分模式下使用G = gibibyte。当然可以在绝对模式下进行。它的手册页写得不好,没有解释其单位的含义,我认为这与刑事过失接壤。
您可以使用GUI工具轻松地收缩/扩展逻辑卷system-config-lvm
。由于system-config-lvm
未预先安装,因此从实时CD启动后,您必须安装它:
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
sudo apt-get update
sudo apt-get install system-config-lvm
安装完成后,运行该程序,在左侧面板中选择要更改的逻辑卷,然后单击“编辑属性”。
现在,根据需要更改参数!
一件好事system-config-lvm
是,如果新分区的大小小于所有现有数据的总和,它将不允许您继续操作(我已经尝试过了,自己看了看)。
参考文献:
system-config-lvm
比lvresize
或冒险lvresize -r
?
palimpsest
(aka Disk Utility)一样,并以明确的字节数指定其含义。
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu xenial universe"
注意:您应该使用Live CD运行以下几乎所有命令。有时,它希望您卸载已经安装在/上的分区(在这种情况下,您无法卸载它)。
这些是调整LVM或LVM2分区大小所需的所有步骤:
sudo lvresize --verbose --resizefs -L -150G /dev/mapper/ubuntu
sudo pvresize --setphysicalvolumesize {some-space} /dev/sda5
如果第二个命令产生如下内容:
/dev/sda5: cannot resize to xxxxx extents as later ones are allocated.
然后,您必须在LVM的末尾重新排列未分配的空间。这意味着在root和swap_1分区之后。因此,最初,您需要使用以下命令检查物理卷的信息:
sudo pvs -v --segments /dev/sda5
这将显示如下输出:
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx root 0 linear /dev/sda:0-rrr
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx sss 0 free
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g zzz ttt swap 0 linear /dev/sda5:yyy-www
注意yyy-www。使用以下命令删除外部碎片:
sudo pvmove --alloc anywhere /dev/sda5:yyy-www
现在,让我们看看进展如何:
sudo pvs -v --segments /dev/sda5
这将显示如下输出(注意更改):
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx root 0 linear /dev/sda:0-rrr
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx ttt swap 0 linear /dev/sda5:xxx-sss
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyy www 0 free
之后,使用GParted并将LVM调整为最大使用区域,其余空间将留在未分配的空间中。请享用...
我会推荐另一个GUI工具-KVPM。它结合了GParted和system-config-lvm的功能。而且,它允许对活动(已安装)分区进行一些system-config-lvm 不允许的操作。 但是,必须先卸载该卷才能进行收缩。
自Ubuntu 12.04起它就位于Universe存储库中,因此只需 sudo apt-get install kvpm
注意:以root权限启动 sudo kvpm
E: Unable to locate package kvpm
仅最新版本的Gparted(0.14)支持调整LVM物理卷的大小。Ubuntu 12.10或13.04附带的版本不支持它。
调整LVM物理卷大小的方法如下:
如果与LVM物理卷关联的卷组没有足够的未分配空间,则需要通过缩小逻辑卷来进行分配。查看bigbadonk420的答案以获取有关如何执行此操作的说明。如果您更喜欢GUI,也可以将GNOME磁盘(Ubuntu随附)用于某些步骤。
从GParted网站上刻录最新的.iso映像,然后将其刻录到CD或USB记忆棒上。从CD或USB记忆棒引导。或者,您可以从源代码编译最新版本的GParted。
使用GParted调整LVM物理卷的大小。GParted不允许您将LVM物理卷缩小到小于未分配空间允许的大小。
pvresize
LVM2套件,对吗?
我偶然找到了这个答案,但这至少对我有用。在我的情况下,我已经在根目录之后保留了一个未分配的磁盘空间,因此我跳过了如何获得更多空间的部分,仅说明了如何在根目录下使用它而不进行引导。
注意:最好不要使用gparted
,而不要使用system-config-lvm
。下次我改用那个...我的gparted版本是0.18。
gparted
尽可能地扩展根分区。令我惊讶的是,它仅扩展了物理尺寸,而对逻辑部分却没有任何作用。因此,df -k
命令说磁盘已满。lvresize -l +100%FREE /dev/ubuntu-vg/root
尽可能扩展逻辑分区。无需使用各种方法检查和计算GB或块。resize2fs /dev/ubuntu-vg/root
然后是我执行的第三步:它将文件系统扩展到逻辑分区的大小。最后一步可以合并到第二步:
lvresize -l +100%FREE --resizefs /dev/ubuntu-vg/root
除了@ bigbadonk420的答案外,不要执行以下操作:
resize2fs -p /dev/vg_blah/lv_blah 9G
lvreduce -L -1G /dev/vg_blah/lv_blah
做:
lvreduce -r -L 9G /dev/vg_blah/lv_blah
请注意,-r
这会同时减少文件系统并且是安全的。
e2fsck -f /dev/vg_blah/lv_blah
返回:“ e2fsck:尝试打开/ dev / sda2由另一个程序专门安装或打开的文件系统时设备或资源忙吗?”,与resize2fs相同...