我已经厌倦了清理 /boot 以便在每次发布新内核时释放足够的空间。我一直按照以下说明缩小 /dev/ubuntu-vg 以释放空间以增加 /boot 的大小。
运行sudo pvs -v --segments /dev/sda5
产量:
PV VG Fmt Attr PSize PFree Start SSize LV Start Type PE Ranges
/dev/sda5 ubuntu-vg lvm2 a-- 111.55g 8.55g 0 26368 root 0 linear /dev/sda5:0-26367
/dev/sda5 ubuntu-vg lvm2 a-- 111.55g 8.55g 26368 2188 0 free
在我到达之前,一切似乎都有效:
sudo pvmove --alloc anywhere /dev/sda5:yyyy-end
我想释放 ~500 MB 来添加到/boot
. (当我遇到问题时我删除了我的交换分区,认为它会提供更多内存来启用移动(我计划稍后再添加))。由于较高的内存地址都是空闲的(右手边是空的),我试图增加/dev/sda1
(即ext2 /root)的大小。但是,GParted、KDE 分区管理器和逻辑卷管理都允许我这样做(不能指定更大的大小)。
问题:
如果
/dev/sda1
(/boot
) 列在第一位,Ubuntu-vg (/dev/sda2
, ie,/root
) 列在第二位,那么空闲空间是否需要位于 Ubuntu-vg 的左侧或右侧才能允许/dev/sda1
(/boot
) 进行扩展?即,既然所有未使用的空间都在右手边,为什么我不能简单地扩展/dev/sda1
(/boot
)?ubuntu-vg 是否需要调整大小以不包括未使用的空间?
就我而言,Ubuntu-vg 在右侧有未使用的空间。我是否需要缩小 Ubuntu-vg 以使“未使用空间”不包含在 Ubuntu-vg 中?
如果可用空间必须在左侧(而不是右侧),因为我只剩下一个数据卷(
/dev/sda5:0-26367
),我希望能够将它移动到卷中的任何位置。我尝试了各种版本的sudo pvmove -v --alloc anywhere
,但不断收到“可用空间不足:需要 aaa 范围,但只有 bbb 可用”。例如,
sudo pvmove -v --alloc anywhere /dev/sda5:0+26368 /dev/sda5:128+26368
当我只是将一个内存范围转移到另一个可用内存范围时,为什么会出现“空间不足”?
我的建议是不要尝试移动 PV。相反,试试这个:
/boot
分区的总数量。也就是说,如果你想要一个 1GB 的/boot
分区,请将你的 PV 减少 1GB。/boot
分区并创建您想要在其上使用的任何文件系统。/boot
分区的文件复制到新分区/boot
分区。/boot
这会在旧分区所在的位置留下一些浪费的空间;但这很容易纠正..../boot
为新的 PV(即更改其分区类型代码)。pvcreate
在新的 PV/以前的/boot
分区上运行。vgextend
以扩展 VG 以包含新的 PV/以前的/boot
分区。这个过程将比试图移动主 PV 为扩展
/boot
分区腾出空间更快、更安全。当然,缺点是 PV 会被碎片化,这会稍微降低可能存储在前一个/boot
分区中的文件的性能。也就是说,空间量很小,因此受影响的文件数量可能很小。如果磁盘是 SSD,则此效果将不存在。另请注意,您要恢复的少量空间有利于在上述过程中简单地停止在第 5 步,或者可能改为擦除或删除以前的
/boot
分区。如果需要,这将使其可供将来使用。例如,如果您想在计算机上安装第二个 Linux 发行版或在升级之前测试下一个 Ubuntu 版本,您可以使用旧/boot
分区作为/boot
新安装的分区,与主分区并行。