删除旧内核需要很长时间

删除旧内核需要很长时间

我有一个 Ubuntu 12.04 64 位安装,旁边有一个 Windows 7 64 位双启动配置。我试图删除较旧的内核包以释放一些空间,但这个过程花费的时间太长了。

我输入了以下命令:

cat knlist.txt | xargs sudo apt-get -y purge

文件 knlist.txt 包含:

linux-headers-3.2.0-77
linux-headers-3.2.0-77-generic
linux-headers-3.2.0-80
linux-headers-3.2.0-80-generic
linux-headers-3.2.0-82
linux-headers-3.2.0-82-generic
linux-headers-3.2.0-83
linux-headers-3.2.0-83-generic
linux-headers-3.2.0-84
linux-headers-3.2.0-84-generic
linux-headers-3.2.0-85
linux-headers-3.2.0-85-generic
linux-headers-3.2.0-86
linux-headers-3.2.0-86-generic
linux-headers-3.2.0-87
linux-headers-3.2.0-87-generic
linux-headers-3.2.0-88
linux-headers-3.2.0-88-generic
linux-headers-3.2.0-89
linux-headers-3.2.0-89-generic
linux-image-3.2.0-77-generic
linux-image-3.2.0-80-generic
linux-image-3.2.0-82-generic
linux-image-3.2.0-83-generic
linux-image-3.2.0-84-generic
linux-image-3.2.0-85-generic
linux-image-3.2.0-87-generic
linux-image-3.2.0-88-generic
linux-image-3.2.0-89-generic
linux-tools-3.2.0-80
linux-tools-3.2.0-82
linux-tools-3.2.0-83
linux-tools-3.2.0-84
linux-tools-3.2.0-85
linux-tools-3.2.0-87
linux-tools-3.2.0-88
linux-tools-3.2.0-89

我当前的内核是3.2.0-91。

通常只需要几分钟,但现在却要花很长时间!我已经让它运行了一整晚。每一步都要花几个小时!

我尝试使用 ctrl+z 暂停该进程并使用 % + return 恢复,我甚至中止了该进程并重新启动。

大约 3 小时前恢复后,屏幕如下(我有一个葡萄牙语安装):

Removendo linux-image-3.2.0-77-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-77-generic /boot/vmlinuz-3.2.0-77-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-77-generic
run-parts: executing /etc/kernel/postrm.d/zz-extlinux 3.2.0-77-generic /boot/vmlinuz-3.2.0-77-generic
P: Checking for EXTLINUX directory... found.
P: Writing config for /boot/vmlinuz-3.2.0-91-generic...
P: Writing config for /boot/vmlinuz-3.2.0-90-generic...
P: Writing config for /boot/vmlinuz-3.2.0-89-generic...
P: Writing config for /boot/vmlinuz-3.2.0-88-generic...
P: Writing config for /boot/vmlinuz-3.2.0-87-generic...
P: Writing config for /boot/vmlinuz-3.2.0-85-generic...
P: Writing config for /boot/vmlinuz-3.2.0-84-generic...
P: Writing config for /boot/vmlinuz-3.2.0-83-generic...
P: Writing config for /boot/vmlinuz-3.2.0-82-generic...
P: Writing config for Windows 7 (loader) on /dev/sdb1...
P: Installing debian theme... done.
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-77-generic /boot/vmlinuz-3.2.0-77-generic

(最后一步几分钟前出现)

这是我的 lsblk:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0  74,5G  0 disk 
├─sda1   8:1    0     5G  0 part [SWAP]
└─sda2   8:2    0  69,5G  0 part /
sdb      8:16   0 931,5G  0 disk 
├─sdb1   8:17   0   100M  0 part 
├─sdb2   8:18   0  50,1G  0 part 
└─sdb3   8:19   0 881,4G  0 part /media/Dados
sdc      8:32   0 465,8G  0 disk 
├─sdc1   8:33   0 349,3G  0 part /media/Storage
└─sdc2   8:34   0 116,5G  0 part /media/Extra
sr0     11:0    1  1024M  0 rom  

我该怎么做才能解决这种迟缓问题?是因为要删除的内核太多吗?

我原本想让它运行 grub 配置程序,但这需要而且我真的很害怕由于此过程中硬盘活动过于频繁而导致我的硬盘损坏。

答案1

实际上,如果你要卸载一些旧内核(或者可能正在执行该过程),并且想要加快速度,您可以尝试以下方法:

  1. 以 root 身份编辑该文件/usr/sbin/update-grub,并exit 0在该行后添加该行#!/bin/sh

  2. 按照计划使用apt-get或软件中心删除不需要的内核。

  3. 然后,删除该行/usr/sbin/update-grub

  4. 重要的! 最后update-grub手动运行。


如果将来dpkg能够自动执行此行为就太好了。

一个值得注意的例外是当您卸载 grub 中当前默认的内核时。在这种情况下,最好update-grub尽早运行。

答案2

每次安装/删除内核时,install-hook grub 都会配置每个已安装的内核。这样更安全,更不容易出错,而且通常也不会慢到无所谓。

乍一看,我猜是那个驱动器出了问题。看看这个。

如果运行 grub-reconfiguration 和其他东西占用了所有时间,则可能可以禁用它,并且只对最后一个内核包或某些东西运行它。查看 apt.conf(5)、DPkg::apt 选项和相关内容。

答案3

我解决了速度慢的问题。我拔掉了一个辅助硬盘,然后系统就好了。

据我研究,这类问题似乎与某些故障分区/驱动器有关。

编辑:

拔掉电源的驱动器死亡。我需要买一个替代品。

相关内容