如何在 /boot 分区大小有限的情况下升级到 Disco?

如何在 /boot 分区大小有限的情况下升级到 Disco?

我的 bionic (18.04) 安装的 /boot 大小非常小,因为出于某种原因,Ubuntu 过去建议这样做。运行升级后,系统sudo do-release-upgrade停止提示我需要在 /boot 上腾出 300+ MB 的空间,但它本来就没那么大:

$ df -T | grep -v tmpfs
Filesystem               Type      Size  Used Avail Use% Mounted on
/dev/mapper/kubuntu-root ext4      914G  702G  166G  81% /
/dev/sda1                ext2      228M   86M  131M  40% /boot
/dev/sdb2                ext4      823G  404G  377G  52% /media/myusername/WDblue2TBbkup
/dev/sdb1                ext4     1012G  574G  386G  60% /media/myusername/WDblue2TBmedia

/调整大小很困难,因为启动位于磁盘的前部,并且那里有一个 LVM2 分区,其中保存着ext4 文件系统中根目录 () 下的其余操作系统和数据。

关于如何进行有什么建议吗?

我正在考虑

  • 找到 disco 将使用的内核,并查看是否可以在运行升级之前安装它

我以前也曾通过以下方式升级

  • 改变我的apt/sources.list以及相关文件,指向更高版本的存储库;这也是有可能的。

我觉得我需要修复一些小问题/boot

  • 我可以创建一个新的启动目录作为 LVM 的一部分吗并只擦除旧的启动分区?

非常感谢所有提示、技巧、建议和解决方案。

编辑:我刚刚在剪贴板条目中发现了确切的空间不足消息,即“ The upgrade has aborted. The upgrade needs a total of 319 M free space on disk '/boot'.”。

答案1

好吧,我会尝试这些命令:*)uname -a ==> 写下最新的“默认”内核版本。*)在您的“df”命令中 - 更改两次;a)df -hT;b)df -HT 并查看差异。 )执行以下操作:“du -sch /boot/| sort -hr”。这将显示您是否安装了多个内核。如果是,请在包管理器中卸载除“uname -a”内核之外的所有内核。我自己正在为此使用 Synaptic....

答案2

我刚刚做了这个:

sudo mkdir /boot-new
sudo cp --preserve=mode,ownership,timestamps --recursive /boot/ --target-directory=/boot-new # copy boot to a new directory in the root lvm

它将所有内容放入 /boot-new/boot,所以我需要sudo mv -r /boot-new/boot /boot-new/。为了检查,我做了以下操作:

sudo diff -s -r /boot /boot-new/

这确认所有内容均已正确复制(-s向控制台发送垃圾邮件,告知您每个文件都是相同的)。

然后我做了:

sudo cp /etc/fstab{,.$(date +%F)}

然后

sudo nano /etc/fstab

/boot通过使用 来注释掉上一行,从而对其进行编辑#

最后:

sudo update-grub

然后重新启动,一切正常,我现在可以更新了。实际上,我可能应该直接尝试一下,但我不确定 GRUB 是否能正确处理 LVM2 卷。

相关内容