古いカーネルを削除するには時間がかかります

古いカーネルを削除するには時間がかかります

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コンフィギュレータを実行したままにするつもりでしたが、日々そして、そのプロセス中に HDD が激しく動くため、ドライブが溶けてしまうのではないかと本当に心配です。

答え1

実際のところ、古いカーネルをいくつかアンインストールしようとしている場合(あるいはそのプロセスの途中である場合)、物事をスピードアップする、次の方法を試すことができます。

  1. ファイルを/usr/sbin/update-grubroot として編集し、exit 0行の後に行を追加します#!/bin/sh

  2. apt-getまたはソフトウェア センターを使用して、計画どおりに不要なカーネルを削除します。

  3. その後、その行を削除から/usr/sbin/update-grub

  4. 重要! 最後にupdate-grub手動で実行します。


dpkg将来的にはこの動作を自動的に実行できるようになると素晴らしいと思います。

注目すべき例外は、現在 grub のデフォルトであるカーネルをアンインストールする場合です。その場合は、update-grub後で実行するよりも早く実行したほうがよい場合があります。

答え2

カーネルをインストール/削除するたびに、インストールフックはインストールされているすべてのカーネルを grub 構成します。これはより安全でエラーが発生しにくく、一般的に問題になるほど遅くなることはありません。

すぐに、そのドライブに何か問題があると推測します。これを調べてください。

grub-reconfiguration などの実行に時間がかかっている場合は、これを無効にして、最後のカーネル パッケージなどに対してのみ実行できる可能性があります。apt.conf(5)、DPkg::apt のオプション、および関連するものを調べてください。

答え3

遅さは解決しました。セカンダリハードドライブの 1 つを取り外したら動作しました。

調べたところ、この種の問題は何らかの障害のあるパーティション/ドライブに関連しているようです。

編集:

取り外されたドライブは死んでいる交換品を購入する必要がありました。

関連情報