Busybox ошибка при загрузке

В этом кратком руководстве объясняется, как исправить ошибку Busybox Initramfs на Ubuntu.

Я использую Ubuntu 20.04 LTS в качестве дистриба на моем ноутбуке Dell Inspiron.

Сегодня я включил его, и процесс загрузки упал до оболочки BusyBox, и в итоге я получил сообщение initramfs.

Насколько я помню, я не сделал ничего плохого.

Я не отключал его принудительно.

Вчера все работало отлично!

Когда я его сегодня включил, то попал в оболочку BusyBox:

BusyBox v1.30.1 (Ubuntu 1:1.30.1-4ubuntu6.1) built-in shell (ash) 
Enter 'help' for a list of built-in commands.

(initramfs)

Я не могу пройти дальше этого экрана.

Также он не показывает, в чем именно проблема.

Я вижу только пустую оболочку busybox.

Я не знал, что мне делать в этот момент.

Поэтому я просто передал команду «exit», чтобы посмотреть, что произойдет.

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

(initramfs) exit
/dev/sda1 contains a file system with errors, check forced.
Inode 4326476 extent tree (at level 1) could be narrower, IGNORED.
/dev/sda1: Inode 4326843 extent tree (at level 1) could be narrower, IGNORED.
/dev/sda1: Inode 4327012 extent tree (at level 1) could be narrower, IGNORED.
/dev/sda1: Inode 4329004 extent tree (at level 1) could be narrower, IGNORED.
/dev/sda1: Inodes that were part of a corrupted orphan linked list found.

/dev/sda1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
        (i.e., without -a or -p options) 
fsck exited with status code 4. 
The root filesystem on /dev/sda1 requires a manual fsck. 

BusyBox v1.30.1 (Ubuntu 1:1.30.1-4ubuntu6.1) built-in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs)

Как видно из вышеприведенного вывода, раздел /dev/sda1 поврежден.

В файловой системе этого раздела есть ошибки.

Если вы когда-либо сталкивались с подобной проблемой, просто следуйте инструкциям, приведенным ниже.

Для тех, кто задается вопросом, BusyBox – это программный пакет, который объединяет множество стандартных утилит UNIX в один небольшой исполняемый файл.

Он обеспечивает замену большинства утилит, которые вы обычно найдете в GNU fileutils, shellutils и т. д.

Initramfs – это начальная файловая система RAM, основанная на tmpfs.

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

Исправим ошибку Busybox Initramfs на Ubuntu

Чтобы устранить ошибку initramfs в Ubuntu, вам необходимо восстановить файловую систему в поврежденном разделе с помощью команды «fsck»:

(initramfs) fsck /dev/sda1 -y

Теперь она начнет автоматически исправлять все ломаные блоки в файловой системе.

Через пару минут вы увидите следующий результат:

/dev/sda1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda1: 497733/30531584 files (1.5% non-contiguous), ........

Теперь введите «reboot» и нажмите ENTER, чтобы перезагрузить систему!

(initramfs) reboot

Скрестите пальцы и дождитесь перезагрузки системы!

Если все прошло хорошо, ваша система загрузится без проблем.

В данной статье мы рассмотрим варианты решения проблем, когда виртуальный или физический серверы на базе Ubuntu/Mint/Kali не загружаются и отваливается в busybox в момент инициализации initramfs. При этом Linux не загружается, и пользователю доступна только командная строка initramfs.

Initramfs – это начальная файловая система в ОЗУ, основанная на tmpfs, которая не использует отдельное блочное устройство. Как и initrd, она содержит утилиты и скрипты, требуемые для монтирования файловых систем перед вызовом init, который располагается на корневой файловой системе.

ошибка initramfs BusyBox в Ubuntu / Mint / Kali

Проблема с суперблоком

Если Ubuntu свалилась в busybox при инициализации initramfs, возможно на диске оказался испорченный суперблок. Linux хранит несколько копий суперблоков.

Для восстановления в случае такой проблемы, нам нужно загрузиться с образа/диска и запустить Terminal. После загрузки, в терминале вводим команду:

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

Команда вернет информацию о нашем разделе:

/dev/vda2 4096 83884031 83879936 40G Linux filesystem

Запомните имя раздела и укажите его в следующей команде:

# sudo dumpe2fs /dev/vda2 | grep superblock

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

dumpe2fs /dev/vda2 | grep superblock вывод всех сперблоков

Мы будем использовать второй резервный суперблок для замены поврежденного (можно выбрать любой, кроме Primary). Выполним проверку диска с использованием резевного суберблока для восстановления:

# sudo fsck -b 98304 /dev/vda2 -y

Если вы получите вывод:

fsck from util-linux 2.31.1
e2fsck 1.44.1 (24-Mar-2018)
/dev/vda2 is mounted.
e2fsck: Cannot continue, aborting

Нужно отмонтировать раздел:
# umount /dev/vda2

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

fsck from util-linux 2.31.1
e2fsck 1.44.1 (24-Mar-2018)
/dev/vda2 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 #231 (32254, counted=32253).
Fix? yes
 Free blocks count wrong for group #352 (32254, counted=32248).
Fix? yes
Free blocks count wrong for group #358 (32254, counted=27774).
Fix? yes
..........
/dev/vda2: ***** FILE SYSTEM WAS MODIFIED *****
/dev/vda2: 85986/905464576 files (0.2% non-contiguous), 3904682/905464576 blocks

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

Ошибка диска fsck

Второй вариант ошибки, наличие следующей строки в окне терминала:

/dev/sda1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY
The root filesystem on /dev/sda1 requires a manual fsck.

busybox initramfs - UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY

Если вы не видите такой ошибки, попробуйте ввести (initramfs) exit в окне терминала. Ошибка может появиться после этого..

В ошибке будет указан том, который требует запуска ручной проверки диска. В командной строке initramfs выполните:

# fsck /dev/sda1 -y

После полной проверки, нужно перезапустить сервер и проверить все ли в порядке.

Ошибка диска: /dev/sda1 does not exist

Проблема с fstab

Если при загрузке сервера вы видите ошибку:

ALERT! /dev/sda1 does not exist. Dropping to a shell.

initramfs в busybox /dev/sda1 does not exist

Скорее всего вы только что установили Linux или то на вашем сервере есть проблемы в fstab. Чаще всего проблема возникает при установке системы с usb-накопителя. Раздел на который ругается система, может быть какой угодно. Как и в первом случае, нам нужно загрузиться с образа системы и выполнить некоторые действия. Проверьте UUID диска командой:

# sudo blkid

Система выдаст что-то подобное:

/dev/sda2: UUID="36cce3d5-cbdb-46f4-adbf-3f9aaa01d729" TYPE="ext4" PARTUUID="fea4dab1-4e12-4327-85c6-76ade18f64e1"

Отсюда уже видно, что система должна загружаться с sda2, а по факту загружается с sda1.

Монтируем наш раздел в любую директорию, например:

# sudo mount /dev/sda2 /mnt

Получаем в директории /mnt весь наш раздел /dev/sda2, находим там файл /etc/fstab и изменяем строку, содержащую /dev/sda1 на:

UUID=36cce3d5-cbdb-46f4-adbf-3f9aaa01d729 / ext4 errors=remount-rw 0 1

Сохраняем файл. Отмонтируем раздел от /mnt и перезагрузимся, если проблема была связана с не неправильным адресом разделе, сервер загрузится.

Так же данный вариант можно решить, загрузившись в emergency. Перемонтируйте корень для записи:

# sudo mount -o remount,rw /

После чего измените fstab и перезапустите сервер.

Проблема с железом

На некоторых материнских платах порты SATA могут получать произвольные номера. Это также может вызвать описанную в предыдущем пункте ошибку. Для исправления ошибки нужно изменить загрузчик grub.

Загрузитесь в режиме emergency или с live-cd и измените файл /boot/grub/grub.cfg

В строке где происходит загрузка раздела, например:

Linux /boot/vmlinuz-4.15.0-70-generic root=/dev/sda1 rw quiet elevator=noop fsck.repair=yes

Измените путь до диска на UUID:

Linux /boot/vmlinuz-4.15.0-70-generic root=UUID=36cce3d5-cbdb-46f4-adbf-3f9aaa01d729 ro quiet elevator=noop fsck.repair=yes

укажите UUID диска в grub.cfg

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

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

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

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

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

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

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

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

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

ls /dev/ | grep sd

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

mkdir /mnt
mount /dev/sda5 /mnt
ls

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

blkid /dev/sda5

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

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

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

update-grub

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

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

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

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

fsck -y /dev/sda5

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

Выводы

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

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

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

The “initramfs boot problem” on Ubuntu or Linux Mint is a situation when a computer does not boot up properly and instead of going straight to the login screen, drops you to the BusyBox shell with the initramfs command-line prompt.

This error usually occurs when the partition containing the operating system got corrupted.

Luckily this problem has a very easy and straightforward solution and in this note i will show how to fix it.

The BusyBox shell with the initramfs prompt usually appears after booting the computer if the partition containing the operating system got corrupted:

BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.3) built-in shell (ash) 
Enter 'help' for a list of built-in commands.

(initramfs)

Type exit to find out the exact name of the corrupted partition:

(initramfs) exit
/dev/mapper/ubuntu--vg-root contains a file system with errors, check forced.
Inodes that were part of a corrupted orphan linked list found.

/dev/mapper/ubuntu--vg-root: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
        (i.e., without -a or -p options) 
fsck exited with status code 4. 
The root filesystem on /dev/mapper/ubuntu--vg-root requires a manual fsck. 

BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.3) built-in shell (ash) 
Enter 'help' for a list of built-in commands.

(initramfs)

To solve the “initramfs boot problem” on Ubuntu or Linux Mint, you need to fix the filesystem errors on the corrupted partition using the fsck command:

(initramfs) fsck /dev/mapper/ubuntu--vg-root -y

Once the filesystem is repaired, reboot the computer:

...
/dev/mapper/ubuntu--vg-root: ***** FILE SYSTEM WAS MODIFIED *****
/dev/mapper/ubuntu--vg-root: 725778/7512064 files (0.8% non-contiguous), 1160813/3002163 blocks

(initramfs) reboot

Was it useful? Share this post with the world!

(@mial)

Участник Admin

Присоединился: 5 лет назад

Записи: 267

Создатель темы 27/07/2019 5:17 пп  

Вопрос: Что делать если при запуске выскакивает надпись BusyBox v1.30.1 (Debian 1:1.30.1-4) built-in shell (Bash) Enter ‘help’ for a list of built-in commands

Проблема в том, что не получается смонтировать корневую файловую систему. Чтобы лучше понять причину, нужно ответить на вопрос: До этого система работала или эта ошибка сразу после установки?

Если раньше система работала, а потом перестала

Если раньше система работала, а потом перестала, значит по каким-то причинам повредилась файловая система — нужно выполнить проверку диска.

Для этого в консоли наберите

exit

То есть:

BusyBox v1.17.1 (Ubuntu 1:1.17.1-10ubuntu1) built-in shell (ash)
Enter 'help' for a list of built-in commands
(initramfs) exit

После этого будет показано что-то вроде:

/dev/sda1: Unexpected …

fsck exited ….

The root filesystem on /dev/sda1 requires manual fsck.

После этого используйте следующую команду:

fsck /dev/sda1

Обратите внимание, что если у вас другое имя раздела или его номер, то замените данные на свои. Например на /dev/sdb1 или /dev/sdc1.

Если система не загружается сразу после установки

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

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

Для этого наберите

exit

и посмотрите, какой диск система пытается загрузить.

Затем измените параметры загрузки ядра. Для этого:

1. Начните перезагружать систему.

2. Чтобы прервать загрузку GRUB (первый шаг) во время запуска компьютера нажмите и удерживайте клавишу SHIFT.

3. Затем нажмите клавишу «e» и вы перейдёте к редактированию настроек загрузки.

4. Если на экране отсутствует нужная нам строка, пролистните курсорными клавишами вниз и найдите строку, начинающуюся с linux.

5. Найдите строку, содержащую root=/dev/sdxX. В этой строке sdxX должна быть вашим /, то есть корневым разделом. Вам нужно исправить текущее значение на верное, которое мы узнали чуть ранее. Если вы совершенно не представляете, какая буква и какой номер у вашего раздела, то попробуйте варианты:

  • root=/dev/sda1
  • root=/dev/sdb1
  • root=/dev/sdc1
  • root=/dev/sdd1
  • root=/dev/sda2
  • root=/dev/sdb2
  • root=/dev/sdc2
  • root=/dev/sdd2

6. Когда всё готово нажмите Ctrl+x или F10, чтобы загрузка продолжилась с установленными опциями.

После успешной загрузки в систему поменяйте имя загружаемого диска. Например, в моём случае имя диска оказалось /dev/sdс1 (с буквой c). Тогда команда для изменения загрузочного диска будет выглядеть так:

sudo grub-install --recheck /dev/sdc
sudo grub-mkconfig -o /boot/grub/grub.cfg

Вместо /dev/sdc подставьте имя вашего диска или флэшки.

Пример решения подобной проблемы: https://hackware.ru/?p=2801#7

Понравилась статья? Поделить с друзьями:
  • C0034 ошибка abs гранта
  • Bwsa 71052 ошибки
  • C0033 ошибка гранта
  • C0031 ошибка форд фокус 3
  • C0032 codesys ошибка