problem z initramfs, gdy brakuje miejsca na dysku

13

Właśnie zaktualizowałem z 10.10 do 11.04. Podczas aktualizacji powiedział, że wystąpił problem z konfiguracją initramfs-tools i że muszę zrobić sudo dpkg --configure -a

Więc kiedy pierwszy raz uruchomiłem 11.04, zrobiłem to. To jest wynik.

Setting up initramfs-tools (0.98.8ubuntu3) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.38-8-generic

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-2.6.38-8-generic
dpkg: error processing initramfs-tools (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 initramfs-tools

Po przeszukaniu, wydawało się, że był to problem niewystarczającej ilości miejsca na mojej partycji / boot. Ma tylko 100 MB i nigdy wcześniej nie stanowiło to problemu, ale pomimo usunięcia wszystkiego oprócz najnowszego jądra wciąż otrzymuję ten sam komunikat.

użytkownik3403
źródło

Odpowiedzi:

19

100 MB wystarcza na 2 jądra i ramdysk inicjujący. Możesz przeglądać obecnie zainstalowane jądra, wykonując:

dpkg -l 'linux-image-*' | grep '^ii'

Przykładowe dane wyjściowe:

ii  linux-image-2.6.35-28-generic        2.6.35-28.50                               Linux kernel image for version 2.6.35 on x86/x86_64
ii  linux-image-2.6.38-8-generic         2.6.38-8.42                                Linux kernel image for version 2.6.38 on x86/x86_64
ii  linux-image-generic                  2.6.38.8.22                                Generic Linux kernel image

Po potwierdzeniu, że najnowsze jądro działa, możesz usunąć poprzednie. W takim przypadku istnieje tylko jedno zbędne jądro:

sudo apt-get purge linux-image-2.6.35-28-generic

Jeśli ten proces nie zostanie zakończony z powodu wcześniejszych wyzwalaczy instalacji, spróbuj dodać -f( --fix-broken) wcześniej purge.

Lekensteyn
źródło
2
Podczas czyszczenia każdego starego jądra dawał ten sam błąd, co napisałem powyżej.
user3403,
użycie -f(wymuszenie operacji) wcale nie pomaga.
Sridhar Ratnakumar,
-f i tak nie oznacza siły
gulasz
4

Proponuję zobaczyć, co zajmuje miejsce w /boot/:

find /boot/ -type f | xargs du | sort -n

Następnie, jeśli znajdziesz dużych konsumentów przestrzeni, możesz zobaczyć, z którego pakietu pochodzą:

dpkg -S /boot/some-large-file

A jeśli ten pakiet nie jest już potrzebny, możesz go usunąć. Uważaj jednak, aby nie usunąć rzeczy, których potrzebujesz - zwłaszcza bootloadera (grub) i aktualnie działającego jądra.

Jeremy Kerr
źródło