答案1
正如我们所看到的问题的屏幕截图您当前正在使用逻辑卷管理器在分区上/dev/sda5
。 Gparted 对 LVM 的支持有限,这就是它显示为已满而实际上并未满的原因。
如果这是新安装,最简单的方法是备份用户文件,重新安装操作系统并在安装过程中分割磁盘 - 但这是另一个问题。否则备份用户文件并自行承担风险。
以下是如何逐步缩小此分区的简短手册。我假设您正在从安装 CD/USB 运行 Live Ubuntu,并且想要调整现有 Ubuntu 安装的大小。对于当前示例,我使用的是虚拟机(由 VMWare 提供支持),某些输出可能与实际情况略有不同。
调查你的 LVM 设置
有两个基本术语:
VG
- 卷组 - 您可以将其想象为 LVM 内的整个可用空间(磁盘驱动器)。LV
- 逻辑卷 - 您可以将其想象为与分区等同的卷。
打开新的终端窗口并执行将输出所有 VG 及其 LV 的命令sudo lvs
。如果您使用了 Ubuntu 的自动安装过程,则输出应如下所示。
$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root ubuntu-vg -wi-a----- 21,52g
swap_1 ubuntu-vg -wi-a----- 8,00g
这里,我们有一个VG
名为ubuntu-vg
,一个LV
叫做swap_1
,还有另一个叫做root
,我们想要调整它们的大小。
要输出 LV 的当前特性,root
您可以使用命令sudo lvdisplay /dev/ubuntu-vg/root
。要检查此 LV 上的可用空间,您可以使用df -h /dev/ubuntu-vg/root
,但首先您应该挂载它:
$ sudo mount /dev/ubuntu-vg/root /mnt
$ df -h /dev/ubuntu-vg/root
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-root 22G 5,0G 16G 25% /mnt
我们可以看到有 16G 的可用空间。这是 Gparted 此时对此安装显示的内容(与您的情况相同):
缩小分区
本部分主要来源是文章如何在 TechMint 上扩展/减少 LVM给出的第一条建议是:在开始之前,最好先备份数据,这样如果出现问题就不会很头疼。
在这里,我们将减小root
逻辑卷,然后将其移至swap_1
卷组内的可用空间的开头,然后调整大小/dev/sda5
。
1.挂载文件系统并碎片整理它:
sudo mount /dev/ubuntu-vg/root /mnt
sudo e4defrag /mnt
2.卸载要缩减的文件系统(通过命令检查是否已卸载:df -h
):
umount /dev/ubuntu-vg/root
3.使用以下命令检查文件系统错误(测试必须通过所有 5 个步骤;0.1-1% 的不连续文件将为我们提供减少文件系统的好机会):
sudo e2fsck -ff /dev/ubuntu-vg/root
4.将文件系统缩小 5G(对于此示例)并将 LV 缩小 5GB:
sudo resize2fs /dev/ubuntu-vg/root 17G # 22 - 5 = 17
sudo lvreduce -L -5G /dev/ubuntu-vg/root
5.调整文件系统大小并检查文件系统错误:
sudo resize2fs /dev/ubuntu-vg/root
sudo e2fsck -ff /dev/ubuntu-vg/root
如果出现任何错误,则意味着文件系统已损坏,也许我们应该重新安装并使用备份。如果没有错误,则该过程应该成功完成。笔记:此时您可以创建另一个 LV。
6.将可用空间移出 VG。该命令pvs
可以向我们显示可用空间在分区内的位置/dev/sda5
。在此示例中,交换位于末尾,因此我们将删除并再次创建它(使用其 PE 大小),这样它将被移到可用空间的开头。
$ sudo pvs -v --segments /dev/sda5
Using physical volume(s) on command line.
Wiping cache of LVM-capable devices
PV VG Fmt Attr PSize PFree Start SSize LV Start Type PE Ranges
/dev/sda5 ubuntu-vg lvm2 a-- 29.52g 5.00g 0 4229 root 0 linear /dev/sda5:0-4228
/dev/sda5 ubuntu-vg lvm2 a-- 29.52g 5.00g 4229 1280 0 free
/dev/sda5 ubuntu-vg lvm2 a-- 29.52g 5.00g 5509 2048 swap_1 0 linear /dev/sda5:5509-7556
$ sudo lvremove /dev/ubuntu-vg/swap_1
Do you really want to remove and DISCARD active logical volume swap_1? [y/n]: y
Logical volume "swap_1" successfully removed
$ sudo lvcreate -n swap_1 -l 2048 ubuntu-vg
Logical volume "swap_1" created.
$ sudo pvs -v --segments /dev/sda5
Using physical volume(s) on command line.
Wiping cache of LVM-capable devices
PV VG Fmt Attr PSize PFree Start SSize LV Start Type PE Ranges
/dev/sda5 ubuntu-vg lvm2 a-- 29.52g 5.00g 0 4229 root 0 linear /dev/sda5:0-4228
/dev/sda5 ubuntu-vg lvm2 a-- 29.52g 5.00g 4229 2048 swap_1 0 linear /dev/sda5:4229-6276
/dev/sda5 ubuntu-vg lvm2 a-- 29.52g 5.00g 6277 1280 0 free
$ sudo pvresize --setphysicalvolumesize 25G /dev/sda5
Physical volume "/dev/sda5" changed
7.现在您可以使用 Gparted 之类的工具来调整分区大小 /dev/sda5
并创建一个新的或保留未分配的空间以用于另一个操作系统的安装。
请注意,由于计算错误,我们提交了少量空白空间。我们可以进行更精确的计算(老实说,我已经迷失在 GB、G 和 GiB 中了),或者我们可以通过以下命令将其添加到某些 LV 中:
sudo lvresize -l +100%FREE /dev/ubuntu-vg/root
sudo resize2fs /dev/ubuntu-vg/root
用于sudo pvs -v --segments /dev/sda5
调查新状态。
8.现在您可以重新启动系统。在示例中,我创建了一个 NTFS 分区 - /dev/sda6
,如下图所示。
9.最后一步是启用交换(如上图所示):
sudo mkswap /dev/ubuntu-vg/swap_1 # we could do that in the previous step 7
sudo swapon /dev/ubuntu-vg/swap_1 # or reboot the system
参考:
答案2
考虑使用平均流量和分区管理器更改分区。两者之间有一个支持 LVM 的完全正常工作的 GUI。如果您知道 LVM 中 PV、VG 和 LV 之间的区别,那么您就可以开始了。为了绕过不包含这两个程序的 Live CD 限制,只需先将 Ubuntu 安装到 USB 上。安装 kvpm
sudo apt-get install kvpm
和分区管理器
sudo apt-get install partitionmanager
并从那里启动来对分区进行更改。
答案3
编辑:这个答案是错误的。GParted 不完全支持 LVM。
查看 /dev/sda5 的“未使用”列,显示 0,也就是说,它已满。您需要腾出一些空间,然后才能缩小它。
有关清理的信息,请尝试回答这些问题