Не удалить ядра “части выполнения:/etc/kernel/postrm.d/zz-update-grub вышедший с кодом возврата 1”

Вчера я обновил Ubuntu от 12,04 до 12,10. Однако ядро Linux не обновило от 3,2 до 3,5, как я ожидал бы.

$ uname -r 
3.2.0-32-generic

$ uname -a
Linux tony-b 3.2.0-32-generic #51-Ubuntu SMP Wed Sep 26 21:33:09 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

$ cat /proc/version
Linux version 3.2.0-32-generic (buildd@batsu) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #51-Ubuntu SMP Wed Sep 26 21:33:09 UTC 2012

Не уверенный, почему это произошло там.

Я хотел установить Смелость (v2.0.1-1_amd64) для редактирования звукового файла лекции. При попытке этой операции через Центр программного обеспечения Ubuntu это говорит, что для установки смелости четыре объекта должны будут быть удалены:

  • linux-image-3.2.0-27-generic
  • linux-image-3.2.0-29-generic
  • linux-image-3.2.0-30-generic
  • linux-image-3.2.0-31-generic

Таким образом, я нажимаю "Install Anyway", но он перестал работать со следующим выводом:

installArchives() failed: (Reading database ... 
(Reading database ... 259675 files and directories currently installed.)
Removing linux-image-3.2.0-27-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-27-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-27-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-27-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports is reached already
Removing linux-image-3.2.0-29-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-29-generic /boot/vmlinuz-3.2.0-29-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-29-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-29-generic /boot/vmlinuz-3.2.0-29-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-29-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-29-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports is reached already
Removing linux-image-3.2.0-30-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-30-generic /boot/vmlinuz-3.2.0-30-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-30-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-30-generic /boot/vmlinuz-3.2.0-30-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-30-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-30-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports is reached already
Removing linux-image-3.2.0-31-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-31-generic /boot/vmlinuz-3.2.0-31-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-31-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-31-generic /boot/vmlinuz-3.2.0-31-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-31-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-31-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports is reached already
Errors were encountered while processing:
 linux-image-3.2.0-27-generic
 linux-image-3.2.0-29-generic
 linux-image-3.2.0-30-generic
 linux-image-3.2.0-31-generic
Error in function: 
Setting up grub-pc (2.00-7ubuntu11) ...
/usr/sbin/grub-bios-setup: warning: Sector 32 is already in use by the program `FlexNet'; avoiding it.  This software may cause boot or other problems in future.  Please ask its authors not to store data in the boot track.
Installation finished. No error reported.
Generating grub.cfg ...
dpkg: error processing grub-pc (--configure):
 subprocess installed post-installation script returned error exit status 1

Кажется, что я должен удалить старые изображения Linux так или иначе. Я попробовал это через синаптический (1) Синаптический, (2) Тонкая настройка Ubuntu и (3) Компьютерный Швейцар.

Первые два перестали работать, пока Компьютерный Швейцар даже не откроется. Вывод от Синаптического:

E: linux-image-3.2.0-27-generic: subprocess installed post-removal script returned error exit status 1
E: linux-image-3.2.0-29-generic: subprocess installed post-removal script returned error exit status 1
E: linux-image-3.2.0-30-generic: subprocess installed post-removal script returned error exit status 1
E: linux-image-3.2.0-31-generic: subprocess installed post-removal script returned error exit status 1

$ dpkg --list | grep linux-image
rH  linux-image-3.2.0-27-generic                3.2.0-27.43                               amd64        Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rH  linux-image-3.2.0-29-generic                3.2.0-29.46                               amd64        Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rH  linux-image-3.2.0-30-generic                3.2.0-30.48                               amd64        Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rH  linux-image-3.2.0-31-generic                3.2.0-31.50                               amd64        Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-32-generic                3.2.0-32.51                               amd64        Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.5.0-17-generic                3.5.0-17.28                               amd64        Linux kernel image for version 3.5.0 on 64 bit x86 SMP
ii  linux-image-extra-3.5.0-17-generic          3.5.0-17.28                               amd64        Linux kernel image for version 3.5.0 on 64 bit x86 SMP
ii  linux-image-generic                         3.5.0.17.19                               amd64        Generic Linux kernel image

Но попытка удалить использование командной строки перестала работать также, например:

$ sudo apt-get purge linux-image-3.2.0-27-generic
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED
  linux-image-3.2.0-27-generic linux-image-3.2.0-29-generic linux-image-3.2.0-30-generic linux-image-3.2.0-31-generic
0 upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
5 not fully installed or removed.
After this operation, 597 MB disk space will be freed.
Do you want to continue [Y/n]? Y

(Reading database ... 259675 files and directories currently installed.)
Removing linux-image-3.2.0-27-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-27-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-27-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-27-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports has already been reached
                                                                    Removing linux-image-3.2.0-29-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-29-generic /boot/vmlinuz-3.2.0-29-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-29-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-29-generic /boot/vmlinuz-3.2.0-29-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-29-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-29-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports has already been reached
                                                                    Removing linux-image-3.2.0-30-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-30-generic /boot/vmlinuz-3.2.0-30-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-30-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-30-generic /boot/vmlinuz-3.2.0-30-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-30-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-30-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports has already been reached
                                                                    Removing linux-image-3.2.0-31-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-31-generic /boot/vmlinuz-3.2.0-31-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-31-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-31-generic /boot/vmlinuz-3.2.0-31-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-31-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-31-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports has already been reached
                                                                    Errors were encountered while processing:
 linux-image-3.2.0-27-generic
 linux-image-3.2.0-29-generic
 linux-image-3.2.0-30-generic
 linux-image-3.2.0-31-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

Как я удаляю старые изображения ядра, которые отказываются быть удаленными?

4
задан 8 July 2014 в 14:33

3 ответа

Решение найдено здесь: http://ubuntuforums.org/showthread.php?t=1735575&page=2

Мне нужно было только сделать первый вариант, чтобы заставить его работать, но Я приведу здесь все для справки:

От drs305:

Проблема, по-видимому, заключается в сценарии постустановки grub: /etc/kernel/postrm.d/zz- update-grub

У меня нет проблемы, но я сделал следующее. Единственное отличие состоит в том, что моя система не зависает при сбое скрипта.

Вариант 1. Если вы загрузились в свою ОС и можете запустить «apt-get install»

Вы можете проверить, возможно ли это с помощью «sudo apt-get install 2vard» , Это действительно маленький пакет. Если все в порядке:

  • a. Чистка личинка - обычное дело. Команда удалит grub-common и grub-pc

Код:

sudo apt-get purge grub-common

Это удалит скрипт zz-update-grub.

Вы будете предупреждены, что удаляете свой загрузчик. Нажмите OK и ENTER.

  • б. Установите grub-pc. Он установит grub-common и grub-pc.

Код:

sudo apt-get install grub-pc

Перейдите на OK и используйте пробел, чтобы выбрать ТОЛЬКО диск Ubuntu, а не раздел. Это восстановит файл zz-update-grub. Если проблема была с файлом grub, это следует исправить.

  • c. Попробуйте обновить вашу систему еще раз.

Вариант 2: Если вышеперечисленное не работает:

Попробуйте переименовать скрипт grub, чтобы его обойти. Это не долгосрочное решение, но вы можете запускать обновления.

sudo mv /etc/kernel/postrm.d/zz-update-grub /etc/kernel/postrm.d/zz-update-grub.bad
0
ответ дан 8 July 2014 в 14:33

Я использовал следующий метод, чтобы обойти проверку.

sudo mv /etc/kernel/postrm.d /etc/kernel/postrm.d.old

[real action go here]

sudo mv /etc/kernel/postrm.d.old /etc/kernel/postrm.d
0
ответ дан 8 July 2014 в 14:33

У меня была такая же проблема при обновлении Ubuntu с 12.04 до 14.04.1: ядро ​​осталось на 3.2.

Только на второй взгляд я заметил, что обновление не создало какой-либо записи в меню загрузки для 14.04 - последняя запись была для 12.04 с ядром 3.2 (на заставке во время загрузки все же отображалось «14.04», поэтому мне понадобилось некоторое время, чтобы наткнуться на это).

Первое, что я заметил после обновления, это то, что я больше не могу войти на свой рабочий стол. Поэтому я подумал, что что-то не так с драйверами для моей карты nvidia. (Я получил сообщение об ошибке, в котором говорится, что в моем конфигурационном файле не найдено подходящих режимов или что-то в этом роде).

Только когда я наконец узнал, что ядро ​​3.13.0-43 запущено не так, как ожидалось, это, наконец, стало иметь смысл: драйверы были скомпилированы для ядра 3.13, пока я все еще работал с 3.2, поэтому интересно, что водители не работали.

Удаление grub-common и установка grub-pc, как описано выше, решили эту проблему для меня.

Спасибо всем, кто внес свой вклад в это решение!

0
ответ дан 8 July 2014 в 14:33

Другие вопросы по тегам:

Похожие вопросы: