У меня была ошибка при обновлении или выполнении любой команды 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
Кто-нибудь получил какие-либо идеи относительно того, что я могу сделать?
Спасибо.
Аналогичный вопрос имеет следующее решение:
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*
У меня была эта проблема на двух отдельных машинах сегодня после выполнения 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.
У меня только что была очень похожая проблема, когда я сделал 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)
.
Попытайтесь произвести чистку неиспользованных ядер. Если проблема сохраняется, затем удаляют все изображения 'initrd' с
sudo rm /boot/initrd.img*
затем генерируйте новые изображения 'initrd' для всех текущих существующих ядер
sudo update-initramfs -c -k all
Выполнение автоудаляет и убирает работавший для моей ситуации.
apt-get auto-remove && apt-get clean && apt-get update && apt-get upgrade
Для меня это была проблема с initramfs -tools package
Я только что сделал:
# apt remove initramfs-tools
# apt clean
# apt install initramfs-tools
Тогда я больше не получал ошибку
У меня эта ошибка уже больше года. Теперь я нашел решение.
cd ~
mkdir initramfs
cd initramfs
cp -r /boot .
cd boot
sudo update-initramfs -ut -b .
sudo cp -r * /boot
sudo apt-get autoremove
Объяснение: /boot находится в другом разделе, на котором недостаточно места для выполнения операции. Решение: выполните обновление на диске, где достаточно места, и скопируйте результаты обратно.
Это происходило со мной. Закончилось тем, что /boot был заполнен.
Проверьте место в загрузочном разделе с помощью df -h
Затем освободите место с помощью: Как освободить больше места в /boot?
Как указал Харальд, проблема заключалась в нехватке места в разделе /boot.
Его решение не сработало для меня, но привело меня прямо к тому, что сработало:
cd /boot
, затем ls
, чтобы посмотреть версии уже имеющихся файлов. Затем rm
каждый из файлов, имеющих несколько версий, обязательно удалив все, кроме самой новой, затем sudo apt update
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
Это было решением для меня.