zaLinux.ru

Ошибка «Initramfs unpacking failed: invalid magic at start of compressed archive» (РЕШЕНО)


Данная статья покажет как исправить ошибку, в результате которой Linux не загружается. В данном случае решение показано на примере Kali Linux, но указанные действия также применимы к Debian, Ubuntu, Linux Mint и производным дистрибутивам.

Во время загрузки Linux возникла ошибка:

Initramfs unpacking failed: invalid magic at start of compressed archive
Kernel panic — not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Суть в том, что не удалось распаковать Initramfs из-за повреждения архива. Без этого загрузка и работа операционной системы невозможна.

Тем не менее эту проблему можно попытаться решить без загрузки с аварийного диска (например Live CD образа).

Для начала попробуйте загрузиться в Recovery Mode/Root Access в вашем текущем ядре.

Для этого в загрузчике выберите «Advanced options».

Затем выберите пункт с «recovery mode» - обычно это вторая строка.

Если вам удалось это сделать, то выполните следующую команду:

sudo update-initramfs -c -k $(uname -r)

В моём случае сообщение об ошибке изменилось, но система так и не была загружена.

Если не удалось загрузиться в режиме восстановления, то загрузитесь с предыдущей версией ядра.

У меня система успешно загрузилась с предыдущей версией:

Теперь нам нужно пересоздать файл ramdisk. Это можно сделать специальной командой, но нужно знать номер версии ядра. Также файл ramdisk пересоздаётся каждый раз, когда устанавливается пакет с ядром Linux. Рассмотрим оба варианта.

1. Переустановка ядра Linux

Для переустановки ядра выполните команду:


sudo apt install linux-image-amd64

Данная команда походит для 64-битных систем, если у вас 32-битная или ARM компьютер, то используете соответствующее имя пакета ядра linux-image-*


Предыдущая команда не сработала и я получил ошибку:

E: Работа dpkg была прервана, вы должны вручную запустить «sudo dpkg --configure -a» для устранения проблемы.

Для исправления ошибки рекомендуется выполнить следующую команду:

sudo dpkg --configure -a

Она также не сработала и вызвала ошибку:

dpkg: ошибка: fgets прочитал пустую строку из «/var/lib/dpkg/triggers/Unincorp»

Для её исправления:

sudo rm /var/lib/dpkg/triggers/Unincorp
sudo touch /var/lib/dpkg/triggers/Unincorp

Смотрите также: dpkg: ошибка: fgets прочитал пустую строку из «/var/lib/dpkg/triggers/Unincorp» (РЕШЕНО)

Затем команда для исправления проблем с пакетами успешно была выполнена:

sudo dpkg --configure -a

Во время её выполнения был заново создан файл ramdisk (как этап настройки одного из пакетов) то есть переустановка ядра Linux не потребовалась. После этого я перезагрузил Linux, и операционная система загрузилась как обычно.

2. Генерация файла ramdisk

Для генерации initramfs (ramdisk) нужно выполнить команду вида:

sudo update-initramfs -c -k ВЕРСИЯ

Вместо НОМЕР нужно указать последнюю версию ядра Linux, установленного на вашей системе. То есть эта та самая версия, которая вызывает проблемы.

Просмотреть имеющиеся ядра можно командой:


ls -al /boot

Результат выполнения:

итого 149988
drwxr-xr-x  4 root root     4096 ноя 27 06:02 .
drwxr-xr-x 20 root root     4096 ноя 15 03:40 ..
-rw-r--r--  1 root root   254811 окт 10 16:05 config-5.19.0-kali2-amd64
-rw-r--r--  1 root root   257010 ноя  7 16:51 config-6.0.0-kali3-amd64
drwx------  3 root root     4096 янв  1  1970 efi
drwxr-xr-x  6 root root     4096 ноя 27 06:00 grub
-rw-r--r--  1 root root 67132798 ноя  9 03:32 initrd.img-5.19.0-kali2-amd64
-rw-r--r--  1 root root 70411394 ноя 27 06:02 initrd.img-6.0.0-kali3-amd64
-rw-r--r--  1 root root       83 окт 10 16:05 System.map-5.19.0-kali2-amd64
-rw-r--r--  1 root root       83 ноя  7 16:51 System.map-6.0.0-kali3-amd64
-rw-r--r--  1 root root  7703168 окт 10 16:05 vmlinuz-5.19.0-kali2-amd64
-rw-r--r--  1 root root  7788992 ноя  7 16:51 vmlinuz-6.0.0-kali3-amd64

Версия ядра это цифры и последующие слова. Например, на данной системе последней версией ядра является «6.0.0-kali3-amd64». Тогда команда для создания нового файла initramfs следующая:

sudo update-initramfs -c -k 6.0.0-kali3-amd64

После этого перезагрузите компьютер:

reboot

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *