我现在想要对 Ubuntu 12.04 LTS 进行 dist-upgrade,但是由于 /boot 已满,我什么也做不了。
~$ df -h
/dev/sda1 228M 227M 0 100% /boot
我想使用 删除旧的 Linux 内核,apt-get autoremove
但是我不能,因为我有未满足的依赖关系。
~$ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
libc6-dev : Depends: libc6 (= 2.15-0ubuntu10.9) but 2.15-0ubuntu10.11 is installed
Depends: libc-dev-bin (= 2.15-0ubuntu10.9)
E: Unmet dependencies. Try using -f.
如果我尝试使用 安装未满足的依赖项apt-get -f install
,则会失败,因为 /boot 已满。
我该如何摆脱这种无法释放 /boot 上的空间而apt-get
无法运行的循环?
答案1
我不得不在启动时手动释放空间。由于apt-get
毫无用处,我不得不手动删除 2 个最老的 Linux 内核的文件。这是我删除单个内核的示例。
警告:危险:
sudo rm /boot/vmlinuz-3.8.0-36-generic /boot/System.map-3.8.0-36-generic /boot/initrd-3.8.0-36-generic /boot/config-3.8.0-36-generic /boot/abi-3.8.0-36-generic
释放空间后,apt-get -f install
仍然失败,因为之前失败的内核安装一半do-release-upgrade
。
我do-release-upgrade
又跑了一次,这次成功了,除了针对之前失败的软件包apt-get
。以下是升级结束时显示的示例:
dpkg: error processing package linux-generic-lts-trusty (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
linux-image-generic-lts-trusty
libc6-dev:amd64
linux-generic-lts-trusty
从这里,我可以运行:
apt-get update
apt-get -f install
apt-get autoremove
apt-get upgrade
install
修复了依赖性错误,并upgrade
正确安装了最新内核。我重新启动进行测试,一切似乎都很好。