У даній статті ми розглянемо варіанти вирішення проблем, коли віртуальний або фізичний сервери на базі 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 - НЕОЧІКУВАНА НЕПОВІДОМЛІСТЬ;  ЗАПУСК fsck ВРУЧНО

Якщо ви не бачите такої помилки, спробуйте ввести (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 не існує

Швидше за все ви тільки що встановили 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

Leave a Reply

Your email address will not be published. Required fields are marked *