У даній статті ми розглянемо варіанти вирішення проблем, коли віртуальний або фізичний сервери на базі Ubuntu / Mint / Kali не завантажуються і відвалюється в busybox в момент ініціалізації initramfs. При цьому Linux не завантажується, і користувачеві доступна тільки командний рядок initramfs.
Initramfs - це початкова файлова система в ОЗУ, заснована на tmpfs, яка не використовує окреме блоковий пристрій. як і initrd, вона містить утиліти і скрипти, необхідні для монтування файлових систем перед викликом init, який розташовується на кореневої файлової системи.Проблема з суперблоком
Якщо 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
Команда поверне список запасних суперблоков:
Ми будемо використовувати другий резервний суперблок для заміни пошкодженого (можна вибрати будь-який, крім 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: Can not 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.Якщо ви не бачите такої помилки, спробуйте ввести (initramfs) exit у вікні терміналу. Помилка може з'явитися після цього ...
В помилку буде вказано те, що вимагає запуску ручний перевірки диска. У командному рядку initramfs виконайте:
# Fsck / dev / sda1 -y
Після повної перевірки, потрібно перезапустити сервер і перевірити чи все в порядку.
Помилка диска: / dev / sda1 does not exist
Проблема з fstab
Якщо при завантаженні сервера ви бачите помилку:
ALERT! / Dev / sda1 does not exist. Dropping to a shell.
Швидше за все ви тільки що встановили 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