Błąd podczas uruchamiania aktualizacji w systemie Ubuntu

0

Pojawia się następujący błąd podczas uruchamiania aktualizacji dpkg za pomocą wiersza polecenia na moim serwerze Ubuntu i nie mam pojęcia, jak to rozwiązać

2019-02-03 06:25:32 INFO: no packages to update
E:Sub-process /usr/bin/dpkg returned an error code (1)
2019-02-03 06:26:01 ERROR: installArchives() failed
2019-02-03 06:26:01 ERROR: Exited with returncode 1.

Podczas uruchamiania dpkg -l widzę następujące złe pakiety

ii  linux-image-4.15.0-42-generic      4.15.0-42.45                                amd64        Signed kernel image generic
iF  linux-image-4.15.0-43-generic      4.15.0-43.46                                amd64        Signed kernel image generic
iF  linux-image-4.15.0-44-generic      4.15.0-44.47                                amd64        Signed kernel image generic
iF  linux-image-4.15.0-45-generic      4.15.0-45.48                                amd64        Signed kernel image generic

Korzystam z serwera Plesk na Ubuntu 18.04, jeśli jest to przydatne


df Wyniki

Filesystem      Size  Used Avail Use% Mounted on
udev            478M     0  478M   0% /dev
tmpfs            99M  716K   98M   1% /run
/dev/vda1        25G  7.2G   17G  30% /
tmpfs           493M  8.0K  493M   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           493M     0  493M   0% /sys/fs/cgroup
/dev/vda15      105M  3.6M  101M   4% /boot/efi
/dev/sda         25G   14G   11G  57% /mnt/volume_sfo2_01
tmpfs            99M     0   99M   0% /run/user/0

Usuń pakiety

dpkg: error processing package linux-image-4.15.0-45-generic (--remove):
 installed linux-image-4.15.0-45-generic package post-removal script subprocess returned error exit status 1
Errors were encountered while processing:
 linux-image-4.15.0-43-generic
 linux-image-4.15.0-44-generic
 linux-image-4.15.0-45-generic

Wyniki audytu

# sudo dpkg --audit linux-image-4.15.0-45-generic
The following packages are only half configured, probably due to problems
configuring them the first time.  The configuration should be retried using
dpkg --configure <package> or the configure menu option in dselect:
 linux-image-4.15.0-45-generic Signed kernel image generic

Wydajność oczyszczania

# sudo dpkg --purge linux-image-4.15.0-45-generic
dpkg: dependency problems prevent removal of linux-image-4.15.0-45-generic:
 linux-image-virtual depends on linux-image-4.15.0-45-generic.

dpkg: error processing package linux-image-4.15.0-45-generic (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 linux-image-4.15.0-45-generic

Poniżej znajduje się skrypt poinstalacyjny. Sprawdziłem wspomniane katalogi i wszystkie istnieją, jednak niektórych z wymienionych modułów brakuje, jak widać z ls u dołu

cat /var/lib/dpkg/info/linux-image-4.15.0-45-generic.postrm
#!/bin/sh
set -e

version=4.15.0-45-generic
image_path=/boot/vmlinuz-$version

rm -f /lib/modules/$version/.fresh-install

if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then
    linux-update-symlinks remove $version $image_path
fi

if [ -d /etc/kernel/postrm.d ]; then
    # We cannot trigger ourselves as at the end of this we will no longer
    # exist and can no longer respond to the trigger.  The trigger would
    # then become lost.  Therefore we clear any pending trigger and apply
    # postrm directly.
    if [ -f /usr/lib/linux/triggers/$version ]; then
    echo "$0 ... removing pending trigger"
    rm -f /usr/lib/linux/triggers/$version
    rmdir --ignore-fail-on-non-empty /usr/lib/linux/triggers
    fi
    DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
          --arg=$image_path /etc/kernel/postrm.d
fi

if [ "$1" = purge ]; then
    for extra_file in modules.dep modules.isapnpmap modules.pcimap \
                      modules.usbmap modules.parportmap \
                      modules.generic_string modules.ieee1394map \
                      modules.ieee1394map modules.pnpbiosmap \
                      modules.alias modules.ccwmap modules.inputmap \
                      modules.symbols modules.ofmap \
                      modules.seriomap modules.\*.bin \
              modules.softdep modules.devname; do
    eval rm -f /lib/modules/$version/$extra_file
    done
    rmdir /lib/modules/$version || true
fi

exit 0
root@serv1:~# cd /lib/modules/4.15.0-45-generic
root@serv1:/lib/modules/4.15.0-45-generic# ls
build          modules.alias.bin    modules.dep.bin  modules.symbols
initrd         modules.builtin      modules.devname  modules.symbols.bin
kernel         modules.builtin.bin  modules.order    vdso
modules.alias  modules.dep          modules.softdep
root@serv1:/lib/modules/4.15.0-45-generic# 
Świątynia Mateusza
źródło

Odpowiedzi:

1

Litera „F” w drugiej kolumnie listy dpkg mówi „Połowa skonfigurowana”. Częstą tego przyczyną jest „za mało miejsca na dysku”.

Sprawdź wydajność:
sudo df -h | grep -v loop
... i poszukaj wysokiego odsetka użycia.

Spróbuję również usunąć pół skonfigurowane pakiety, za jednym razem, to znaczy:

sudo apt-get purge linux-image-4.15.0-45-generic linux-image-4.15.0-44-generic linux-image-4.15.0-43-generic

Miej oko na wszelkie błędy zatrzymania usuwania, dołącz je powyżej, jeśli tak, a następnie sprawdź ponownie dfpowyżej, aby sprawdzić, czy sytuacja się zmieniła.

To, czy należy zrobić coś więcej, zależy od twoich ustaleń. Musisz dołączyć odpowiednie NOWE informacje do oryginalnego wpisu. Kliknij, edita następnie wpisz a <hr>na końcu i wklej nowe informacje po nim.


Następny krok, jeśli powyższe nie pomoże:
sudo dpkg --audit linux-image-4.15.0-45-generic
... i dodaj dane wyjściowe w taki sam sposób jak powyżej.

W oparciu o wynik może być następujący krok:
sudo dpkg --purge linux-image-4.15.0-45-generic
... z tym samym powtórzeniem dla każdego z pozostałych kłopotliwych pakietów.


Jak widzimy:
„... Linux-image-virtual zależy od Linux-image-4.15.0-45-generic.”
próbować:
sudo apt-get purge linux-image-virtual linux-image-4.15.0-45-generic


Nadal ten sam błąd: cóż, spróbuj nieco przyspieszyć próby usunięcia, używając flagi -f (fix):
sudo apt-get -f purge linux-image-virtual
sudo apt-get -f purge linux-image-4.15.0-45-generic

jeśli to nie działa, spróbuj trochę mocniej z dpkg „niższego poziomu”:
sudo dpkg --remove linux-image-virtual
sudo dpkg --remove linux-image-4.15.0-45-generic

Powtórz dla innych pakietów błędów, jeśli którykolwiek z nich może dać rzeczywiste czyszczenie.

I oczywiście, jeśli jeden z nich jest w użyciu; i faktycznie działa ; ten pakiet nie byłby tym, na którym można by spróbować usunąć.

Dodatkowo, sprawdzając, gdzie faktycznie działają skrypty usuwania postów (najwyraźniej nie są wymienione jako część pakietów) locate, wymyśliłem:

cat /var/lib/dpkg/info/linux-image-4.15.0-45-generic.postrm

... przeczytaj ten skrypt i sprawdź system plików, czy w skrypcie brakuje folderów lub czy występują inne dziwne rzeczy, które mogą spowodować awarię.


INFORMACJE OGÓLNE: Radzenie sobie z pakietami jądra
uname -r # wypisuje aktualnie AKTYWNĄ nazwę jądra; nie można go usunąć!

sudo apt-get purge linux-image-x.x.x.x-generic # usuwa jądro

sudo update-initramfs -u# remakes ramdysk rozruchowy
sudo update-grub2 # ponownie tworzy menu rozruchu
Dwa ostatnie są niezbędne, aby przywrócić menu rozruchu i sprawić, aby wpisy faktycznie działały przy następnym restarcie.

Hannu
źródło
Dzięki za odpowiedź sprawdziłem z df zgodnie z twoimi sugestiami i mam 7,2 GB na dysku głównym i po uruchomieniu apt-get purge nie zmieniło to sytuacji.
Świątynia Mateusza
Uruchomiłem oba polecenia i zaktualizowałem powyżej. Pobiegłem to zarówno *** 43 **** 45 i wit żadnej różnicy w wyjściu poza dla numerów wersji..
Matthew Temple
Czy wszystko zostało uporządkowane, co zrobiłeś, aby to osiągnąć? Czy powyższe było pomocne w tym procesie?
Hannu
Cześć. Próbuję teraz. Nie mogę ich uruchomić w ciągu tygodnia, ponieważ serwer służy do tworzenia witryn WP. Dam ci znać, jeśli coś zadziała
Matthew Temple
Używam jądra 44, więc nigdy nie próbowałem tego, ale otrzymuję ten sam błąd skryptu po usunięciu zarówno w 43, jak i 45 z powyższymi poleceniami.
Świątynia Mateusza