Ошибка initramfs при установке / обновлении

У меня была ошибка при обновлении или выполнении любой команды apt в течение недели или около того. Обновление до LTS 18.04 не разрешило его и не удалило все старые ядра. Космос тоже не проблема.

Попытка переустановить initramfs не работает. Я получаю ошибку:

   Reading package lists...
Building dependency tree...
Reading state information...
0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up linux-image-4.15.0-47-generic (4.15.0-47.50) ...
Setting up initramfs-tools (0.130ubuntu3.7) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for linux-image-4.15.0-47-generic (4.15.0-47.50) ...
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-4.15.0-47-generic
E: /usr/share/initramfs-tools/hooks/fsck failed with return 1.
update-initramfs: failed for /boot/initrd.img-4.15.0-47-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
dpkg: error processing package linux-image-4.15.0-47-generic (--configure):
 installed linux-image-4.15.0-47-generic package post-installation script subprocess returned error exit status 1
Processing triggers for initramfs-tools (0.130ubuntu3.7) ...
update-initramfs: Generating /boot/initrd.img-4.15.0-47-generic
E: /usr/share/initramfs-tools/hooks/fsck failed with return 1.
update-initramfs: failed for /boot/initrd.img-4.15.0-47-generic with 1.
dpkg: error processing package initramfs-tools (--configure):
 installed initramfs-tools package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 linux-image-4.15.0-47-generic
 initramfs-tools

Кто-нибудь получил какие-либо идеи относительно того, что я могу сделать?

Спасибо.

3
задан 24 April 2019 в 14:51

10 ответов

Аналогичный вопрос имеет следующее решение:

sudo apt-get autoclean
sudo apt-get clean
sudo apt-get update 
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get -f install
sudo dpkg --configure -a

Дополнительно обеспечьте эту команду:

ll /usr/share/initramfs-tools/hooks/fsck

возвращает этот вывод:

-rwxr-xr-x 1 root root 2468 Sep 18  2018 /usr/share/initramfs-tools/hooks/fsck*
0
ответ дан 24 April 2019 в 14:51

У меня была эта проблема на двух отдельных машинах сегодня после выполнения apt update и apt upgrade, за исключением того, что у меня был linux-image-4.15.0-48-generic. (Ubuntu 18.04.2)

Мое исправление было таким (воспроизведено на обеих машинах):

sudo rm /var/lib/dpkg/info/linux-image-4.15.0-48-generic.postinst
sudo dpkg --configure -a
sudo apt-get update

Затем переустановите пакет:

sudo apt install linux-image-4.15.0-48-generic

Это установит пакет будет установлен вручную и заменит файл * .postinst.

0
ответ дан 24 April 2019 в 14:51

У меня только что была очень похожая проблема, когда я сделал sudo apt autoremove и это привело попытку к сбою установить файлы ядра для ядра, которое я не имею. Мой uname -a шоу я использую версию 5.0.0-20 ядра и выполнение ls -al /boot шоу только это и 5.0.0-17 ядра установлены. Однако apt внезапно поднятые ошибки и предпринятый для установки файлов в моем /boot для старых ядер включая 5.0.0-15, 4.18.0-17, 4.13.0-45. Который является странным.

Таким образом, я полагаю, что так или иначе они изменили логику для dkms (или что-то связанное с initramfs) и это проверяет некоторые другие местоположения, чтобы видеть, могли ли ядра быть установлены и затем делают обновления на тех ядрах и заменах недостающие файлы.

Я не уверен точно, что зафиксировало его, но я сделал:

sudo apt purge *5.0.0-15* *4.18.0-17* *4.13.0-45* 
#check carefully that it's not removing anything you need though, this is a hammer to crack a nut

ls -al /lib/modules 
# which revealed lots of old module folders that I removed with ...
sudo rm -rf /lib/modules/4.* 
# and similarly for the 5.0.0-15 modules

Затем я сделал:

ls -al /usr/src/ 
# which again showed old source trees that I pruned with
sudo rm -rf sudo rm -rf /usr/src/linux-headers-4.*

Затем я сделал:

locate -e 4.13.0 
# which found old kernel files in
ls -al /var/lib/initramfs-tools/ 
# so I removed with
sudo rm -rf /var/lib/initramfs-tools/4*

У меня есть проблемы с очень трудным /boot папка по историческим причинам и так удалила старые файлы ядра с:

sudo rm -i /boot/**4* 
# and similar for all but my current and next oldest kernels
# -i is interactive mode so you have to answer 'y' to remove
# that's a really useful safety check, 'sudo rm' is a dangerous tool!

Наконец я работал:

sudo apt -f install

Который законченный как ожидалось и возвратил систему ожидаемому состоянию, не пытаясь установить посторонние ядра. Я не протестировал, когда я продвинулся, так не может гарантировать, какая часть зафиксировала его, но не было вредно убрать те старые файлы AFAICT.

В стороне, проверка мой /var/log/apt/history.log файл, это, кажется, начало этой конкретной ошибки:

Start-Date: 2019-07-01  17:59:10
Commandline: /usr/bin/unattended-upgrade
Upgrade: linux-tools-common:amd64 (4.15.0-52.56, 4.15.0-54.58)
End-Date: 2019-07-01  17:59:16

Start-Date: 2019-07-01  17:59:22
Commandline: /usr/bin/unattended-upgrade
Install: linux-image-5.0.0-20-generic:amd64 (5.0.0-20.21~18.04.1, automatic), linux-modules-extra-5.0.0-20-generic:amd64 (5.0.0-20.21~18.04.1, automatic), linux-modules-5.0.0-20-generic:amd64 (5.0.0-20.21~18.04.1, automatic)
Upgrade: linux-image-generic-hwe-18.04-edge:amd64 (5.0.0.17.73, 5.0.0.20.76), linux-image-extra-virtual-hwe-18.04-edge:amd64 (5.0.0.17.73, 5.0.0.20.76)
Error: Sub-process /usr/bin/dpkg returned an error code (1)
End-Date: 2019-07-01  18:00:10

Но это может быть ложным флагом что касается меня, ограниченное пространство начальной загрузки / может быть причиной error code (1).

0
ответ дан 1 December 2019 в 17:26

Попытайтесь произвести чистку неиспользованных ядер. Если проблема сохраняется, затем удаляют все изображения 'initrd' с

sudo rm /boot/initrd.img*

затем генерируйте новые изображения 'initrd' для всех текущих существующих ядер

sudo update-initramfs -c -k all
0
ответ дан 1 December 2019 в 17:26

Выполнение автоудаляет и убирает работавший для моей ситуации.

apt-get auto-remove && apt-get clean && apt-get update && apt-get upgrade

1
ответ дан 1 December 2019 в 17:26

Для меня это была проблема с initramfs -tools package

Я только что сделал:

# apt remove initramfs-tools

# apt clean

# apt install initramfs-tools

Тогда я больше не получал ошибку

12
ответ дан 6 March 2020 в 17:27

У меня эта ошибка уже больше года. Теперь я нашел решение.

cd ~
mkdir initramfs
cd initramfs
cp -r /boot .
cd boot
sudo update-initramfs -ut -b .
sudo cp -r * /boot
sudo apt-get autoremove

Объяснение: /boot находится в другом разделе, на котором недостаточно места для выполнения операции. Решение: выполните обновление на диске, где достаточно места, и скопируйте результаты обратно.

5
ответ дан 25 April 2020 в 13:36

Это происходило со мной. Закончилось тем, что /boot был заполнен.

Проверьте место в загрузочном разделе с помощью df -h

Затем освободите место с помощью: Как освободить больше места в /boot?

0
ответ дан 24 June 2020 в 14:47

Как указал Харальд, проблема заключалась в нехватке места в разделе /boot.

Его решение не сработало для меня, но привело меня прямо к тому, что сработало:

cd /boot, затем ls, чтобы посмотреть версии уже имеющихся файлов. Затем rm каждый из файлов, имеющих несколько версий, обязательно удалив все, кроме самой новой, затем sudo apt update

3
ответ дан 26 June 2020 в 02:32
sudo apt remove initramfs-tools
sudo apt clean
sudo apt install initramfs-tools
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get clean
sudo apt-get update 
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get -f install
sudo dpkg --configure -a

Это было решением для меня.

2
ответ дан 7 August 2020 в 13:56

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

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