Astra linux initramfs ошибка

Ubuntu не загружается дальше initramfs

Пользователи, которые любят экспериментировать со своей операционной системой время от времени сталкиваются с ошибкой загрузки, когда система выводит приглашение ввода BusyBox с initramfs. Эта ошибка означает, что ядро не может загрузить корневой раздел, та файловая система, к которой у вас есть доступ из этого режима не имеет ничего общего с вашей системой. Это содержимое образа initramfs, которое содержит только самые необходимые компоненты, используемые ядром для загрузки системы.

В этом режиме будет сложно что-то исправить, но можно попытаться понять где находится причина проблемы. В этой статье мы рассмотрим что делать если Linux не загружается с initramfs. Такой проблеме подвержены все дистрибутивы, но мы рассмотрим решения на примере Ubuntu.

Почему Linux не загружается дальше initramfs

Если вы столкнулись с данной ошибкой, то после нескольких десятков секунд загрузки увидите такое сообщение:

Первое, что можно попытаться сделать в таком случае — выполнить команду exit, чтобы система попыталась загрузится и тогда она покажет вам более подробное сообщение об ошибке.

1. Неверный корневой раздел в загрузчике

В данном случае она сообщает, что не может найти раздел /dev/sda10:

Alert: /dev/sda10 does not exist. Dropping to a shell

Очень часто такая ошибка возникает после манипуляций с разделами дисков, особенно изменения их размера. UUID диска меняется и ядро больше не может его найти. Вы можете посмотреть доступные в системе разделы с помощью команды:

В этом окружении есть BusyBox, а значит есть большинство утилит Unix. Вы можете примонтировать каждый из этих разделов с помощью команды mount и узнать где находится ваш новый корневой раздел, например:

mkdir /mnt
mount /dev/sda5 /mnt
ls

Вы также можете узнать здесь же UUID данного раздела диска, для этого выполните:

В данном случае, корневой раздел имеет имя /dev/sda5. Именно это имя можно передать ядру в конфигурации загрузчика Grub, а можно UUID, но если в этом нет крайней необходимости, то короткое имя использовать гораздо проще. Надо перезагрузить компьютер, в меню Grub выбрать нужную загрузочную запись и нажать клавишу E:

Далее найти пункт, начинающейся со слова linux и в нём параметр root. Его значение вместе со словом UUID надо стереть, а вместо него прописать имя корневого раздела:

После этого система загрузится, а вам останется только создать новый конфигурационный файл grub с помощью команды:

Читайте также:  Linux bash расширение файла

2. Повреждённая файловая система

Подобная ошибка может появляться также при серьезных ошибках в файловой системе, которые мешают примонтировать корневой раздел. Обычно, fsck восстанавливает файловую систему автоматически, но если проблема серьезная и грозит потерей данных, утилите надо подтверждение пользователя для работы. Тогда система показывает такую ошибку:

The root filesystem on /dev/sda5 requires a manual fsck

Вы можете прямо здесь же попытаться восстановить файловую систему. Для этого выполните:

Здесь /dev/sda5 — это корневой раздел, его нужно заменить на свой. Опция -y указывает утилите, что на все вопросы надо ли исправлять блок нужно отвечать утвердительно. После успешного восстановления надо перезагрузить компьютер и попытаться загрузить систему снова.

Выводы

В этой статье мы разобрались что делать если в Linux не загружается initramfs, как посмотреть сообщение об ошибке, а также как устранить самые распространённые причины.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Восстанавливаем свалившийся в busybox из-за ошибки initramfs Linux

Недавно при включении компьютера, Ubuntu меня «порадовала» тем, что решила не загружаться и «свалилась» в busybox в момент инициализации пользовательского пространства (userspace) оно же initramfs. Немного ошарашенный начал разбираться. Оказалось, что мой старенький жёсткий диск дал небольшой сбой, и подпортил суперблок файловой системы. Впрочем, оказалось что это не смертельно, и проблема эта, довольно просто и быстро решается.

Суперблок — это часть на диске, отведенная под служебную информацию файловой системы. В нем хранится информация о разделе: тип файловой системы, размер, статус и информацию о других структурах метаданных. В случае потери информации с суперблока, велик риск потерять всю информацию с раздела. Поэтому Linux хранит несколько копий этой информации — т.е. несколько суперблоков.

Перед тем, как продолжить, я должен предупредить, что не обязательна причина в суперблоке. Такая проблема может возникать и по другим причинам, установить которые можно только имея определенный опыт, либо опытным путем. В любом случае, вся суть проводимых ниже действия, лишь в проверке диска на ошибки, поэтому как минимум ничем не повредит.

Для восстановления нам понадобится загрузочный диск или флэшка с Linux. Загружаемся, и запускаем терминал. В терминале пишем:

sudo fdisk -l|grep Linux|grep -Ev 'swap'

В результате выполнения команды, будет выведен список всех разделов:

/dev/sda2 371306496 976771071 605464576 288.7G 83 Linux

В моем случае это был один раздел. В этом списке нужно найти нужный раздел, и запомнить его. Он понадобится нам дальше. Далее посмотрим список доступных запасных суперблоков:

sudo dumpe2fs /dev/sda2 | grep superblock

В команде выше, /dev/sda2 необходимо заменить на полученный ранее, нужный раздел. В результате выполнения команды, будет выведен список всех суперблоков:

Primary superblock at 0, Group descriptors at 1-19 Backup superblock at 32768, Group descriptors at 32769-32787 Backup superblock at 98304, Group descriptors at 98305-98323 Backup superblock at 163840, Group descriptors at 163841-163859 Backup superblock at 229376, Group descriptors at 229377-229395 Backup superblock at 294912, Group descriptors at 294913-294931 Backup superblock at 819200, Group descriptors at 819201-819219 Backup superblock at 884736, Group descriptors at 884737-884755 Backup superblock at 1605632, Group descriptors at 1605633-1605651 Backup superblock at 2654208, Group descriptors at 2654209-2654227 Backup superblock at 4096000, Group descriptors at 4096001-4096019 Backup superblock at 7962624, Group descriptors at 7962625-7962643 Backup superblock at 11239424, Group descriptors at 11239425-11239443 Backup superblock at 20480000, Group descriptors at 20480001-20480019 Backup superblock at 23887872, Group descriptors at 23887873-23887891 Backup superblock at 71663616, Group descriptors at 71663617-71663635

Из списка запасных суперблоков, выбираем любой кроме Primary и запускаем проверку диска с указанием запасного суперблока:

sudo fsck -b 32768 /dev/sda2 -y

Параметр -y необходим для того, чтобы fsck не спрашивал что делать с каждой найденной ошибкой, а вместо этого ее автоматически исправлял если это возможно. После того, как fsck закончит, результат выполнения будет примерно таким:

fsck 1.40.2 (23-March-2016) e2fsck 1.40.2 (23-March-2016) /dev/sda2 was not cleanly unmounted, check forced. Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Free blocks count wrong for group #241 (32254, counted=32253). Fix? yes Free blocks count wrong for group #362 (32254, counted=32248). Fix? yes Free blocks count wrong for group #368 (32254, counted=27774). Fix? yes . /dev/sda2: ***** FILE SYSTEM WAS MODIFIED ***** /dev/sda2: 59586/605464576 files (0.6% non-contiguous), 3604682/605464576 blocks

После этого перезагружаемся, отключаем флэшку/вынимаем диск из привода, и всё должно работать. 🙂

Читайте также:  Linux git clone https

Источник

Ошибка «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-*

Читайте также:  Сервер для postgresql linux

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

E: Работа dpkg была прервана, вы должны вручную запустить «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

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

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

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

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

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

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

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

итого 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

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

Источник

Оцените статью
Adblock
detector