通过缩小 ubuntu-vg 逻辑卷来增加 /boot 分区

通过缩小 ubuntu-vg 逻辑卷来增加 /boot 分区

每次发布新内核时,我都厌倦了清理 /boot 以释放足够的空间。我一直按照以下说明缩小 /dev/ubuntu-vg 以释放空间来增加 /boot 的大小。

如何调整 LVM 分区的大小?(即物理卷)

运行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 ​​分区管理器和逻辑卷管理都不允许我这样做(无法指定更大的大小)。

问题:

  1. 如果/dev/sda1( /boot) 列在第一位,Ubuntu-vg ( /dev/sda2,即/root) 列在第二个,那么可用空间是否需要位于 Ubuntu-vg 的左侧或右侧才能允许/dev/sda1( /boot) 扩展?也就是说,既然所有未使用的空间都已位于右侧,为什么我不能简单地扩展/dev/sda1( /boot)?

  2. ubuntu-vg 是否需要调整大小以不包括未使用的空间?

  3. 就我而言,Ubuntu-vg 在右侧有未使用的空间。我是否需要缩小 Ubuntu-vg,以便“未使用的空间”不包含在 Ubuntu-vg 中?

  4. 如果可用空间必须位于左侧(而不是右侧),因为我只剩下一个数据卷 ( /dev/sda5:0-26367),我希望能够将其移动到卷内的任何位置。我尝试了各种版本的sudo pvmove -v --alloc anywhere,但一直收到“可用空间不足:需要 aaa 区,但只有 bbb 可用”的提示。

    例如,sudo pvmove -v --alloc anywhere /dev/sda5:0+26368 /dev/sda5:128+26368当我仅将一个范围的内存转移到另一个范围的可用内存时,为什么会出现“空间不足”的情况?

答案1

我的建议是不是尝试移动 PV。相反,尝试这样做:

  1. 将 PV 缩小到你想要的/boot分区大小总共也就是说,如果您想要 1GB 的/boot分区,请将您的 PV 减少 1GB。
  2. /boot在释放的空间中创建一个新的 1GB分区,并在其上创建您想要使用的文件系统。
  3. 将当前/boot分区的文件复制到新分区
  4. 调整新分区的引导加载程序配置(这可能需要重新安装引导加载程序或只是调整配置文件)。
  5. 测试所有内容,确保新/boot分区一切正常。这将导致旧/boot分区中出现一些浪费的空间;但这很容易纠正……
  6. 将前一个/boot分区标记为新的 PV(即更改其分区类型代码)。
  7. pvcreate在新的 PV/以前的分区上运行/boot
  8. 运行vgextend以扩展 VG 来包含新的 PV/以前的/boot分区。
  9. 如果需要,扩展一个或多个 LV 以利用额外的空间。

此过程比尝试移动主 PV 来为扩展/boot分区腾出空间要快得多,也安全得多。当然,缺点是 PV 会被分割,这会稍微降低可能存储在前一个/boot分区中的文件的性能。也就是说,空间量很小,因此受影响的文件数量可能很少。如果磁盘是 SSD,则不会产生这种影响。

还要注意,由于您恢复的空间很小,因此最好在上述步骤的第 5 步停止,或者擦除或删除前一个/boot分区。这样,以后如果需要的话,就可以使用它。例如,如果您想在计算机上安装第二个 Linux 发行版或在升级之前测试下一个 Ubuntu 版本,您可以将旧分区用作/boot/boot安装的分区,与主分区并行。

相关内容