Doo*_*eve 7 apt partitioning boot kernel
很抱歉询问什么可能真的很简单,但我已经用谷歌搜索了一个星期,我已经尝试了很多没有成功的东西。
首先,每次启动时都会弹出一个窗口,说我的 /boot 分区已满,并且 Synaptic Manager 说 linux-image-generic 已损坏,但无法重新安装其中任何一个(linux-image-extra- 3.13.0-54-generic 和 linux-image-generic)。
我的终端告诉我尝试使用 install -f 来修复问题,所以我已经尝试过了,这就是它返回的内容。可悲的是,我还在学习,我还没有能够破解代码,我需要一些帮助
aksel@aksels-PC:~$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
linux-image-3.13.0-54-generic
Suggested packages:
fdutils linux-doc-3.13.0 linux-source-3.13.0 linux-tools
The following NEW packages will be installed:
linux-image-3.13.0-54-generic
0 upgraded, 1 newly installed, 0 to remove and 344 not upgraded.
5 not fully installed or removed.
Need to get 0 B/14,7 MB of archives.
After this operation, 32,8 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 431129 files and directories currently installed.)
Preparing to unpack .../linux-image-3.13.0-54-generic_3.13.0-54.91_i386.deb ...
Done.
Unpacking linux-image-3.13.0-54-generic (3.13.0-54.91) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-3.13.0-54-generic_3.13.0-54.91_i386.deb (--unpack):
cannot copy extracted data for './boot/vmlinuz-3.13.0-54-generic' to '/boot/vmlinuz-3.13.0-54-generic.dpkg-new': failed to write (No space left on device)
No apport report written because the error message indicates a disk full error
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-54-generic /boot/vmlinuz-3.13.0-54-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-54-generic /boot/vmlinuz-3.13.0-54-generic
Errors were encountered while processing:
/var/cache/apt/archives/linux-image-3.13.0-54-generic_3.13.0-54.91_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Run Code Online (Sandbox Code Playgroud)
为此,我创建了一个帮助脚本。这就是所谓linux-purge及其项目页面是这里的Launchpad.net。在公告节还有安装说明这里。
在这种特定情况下,您将运行
sudo linux-purge --fix
Run Code Online (Sandbox Code Playgroud)
作为替代方案,我在Communiy Wiki 帮助中提供了有关如何手动完成任务的说明(作为 jarnos)。
无论如何,这是我作为存档的手动说明:
首先从以前的内核更新中删除任何剩余的临时文件。
sudo rm -rv ${TMPDIR:-/var/tmp}/mkinitramfs-*
Run Code Online (Sandbox Code Playgroud)
(可能有一些是由于Ubuntu 16.04 及更早版本中的错误。)
通过命令列出成功安装的内核,不包括启动的内核:
dpkg-query -W -f='${Status} ${Package}\n' | awk '/^[^ ]+ ok installed linux-image-[0-9]+/{print $4}' | grep -Fv $(uname -r)
Run Code Online (Sandbox Code Playgroud)
删除不需要的内核的initrd.img文件(由于bug);这里选择的内核版本是 4.2.0-23-generic:
sudo update-initramfs -d -k 4.2.0-23-generic
Run Code Online (Sandbox Code Playgroud)
清除内核
sudo dpkg --purge linux-image-extra-4.2.0-23-generic linux-image-4.2.0-23-generic
Run Code Online (Sandbox Code Playgroud)
释放 /boot 中的一些空间。如果命令失败,则某些已安装的软件包依赖于内核。dpkg 的输出告诉了包的名称。先把它擦干净。
您还可以清除相应的标头包
sudo dpkg --purge linux-headers-4.2.0-23-generic
Run Code Online (Sandbox Code Playgroud)
甚至是通用的头包
sudo dpkg --purge linux-headers-4.2.0-23
Run Code Online (Sandbox Code Playgroud)
如果没有其他包依赖它;否则命令将失败,但可以安全运行。
然后运行
sudo apt-get install -f
Run Code Online (Sandbox Code Playgroud)
修复损坏的依赖项。如果由于磁盘空间不足而失败,则必须按照上述方式删除另一个内核。
请注意,您的系统中可能仍然安装了太多内核,但现在您应该能够清除多余的sudo apt-get purge内核,例如,后跟内核包名称。
小智 -1
如果您的 /boot 分区已满,那么 apt-get 功能失败也就不足为奇了。您只需释放 /boot 中的空间,您可以以图形方式或通过终端/ssh 执行此操作,无论您更喜欢什么。您可以清除(而不是删除!)占用空间的不需要的软件包(内核,因为它是您的 /boot 部分),或者您可以扩展您的 /boot 分区,使其更大,然后您可以再次运行 -f 命令。如果这对您来说都是不同的语言,我将需要更多信息来为您提供执行此操作所需运行的确切命令。
dpkg -l | grep linux-image- cat /etc/fstab输出什么)?df 命令。这是一个应该有助于删除旧内核的链接
cza*_*ols -1
您的启动分区空间不足。这就是 apt-get 失败的原因,它甚至告诉你
未写入批准报告,因为错误消息指示磁盘已满错误
在(重新)安装之前删除旧内核,保留最新的内核和上一个内核。
#dpkg -l | grep linux-image-
将列出所有已安装的内核
sudo apt-get autoremove linux-image-##fill-in-with-result-from-previous-command##
将删除它们
$apt-get install --reinstall linux-image-generic
剩下的会做
| 归档时间: |
|
| 查看次数: |
4469 次 |
| 最近记录: |