Меню відновлення Ubuntu: демістифікація відновлення системи Linux

Не намагайтеся переконати себе в протилежному: поряд з усіма хорошими речами, у вас будуть погані дні з Linux.

  • Ви (або користувачі, яких ви підтримуєте) збираєтеся неправильно вводити команди та назавжди знищувати документи.
  • Ви відчуєте це відчуття занурення, коли зрозумієте, що якийсь справді важливий апаратний чи програмний продукт щойно пішов з ладу. Це вдячність після всього, що ти зробив за це всі ті роки.

Якщо правильно створити резервну копію, це означає, що ви можете відійти від непрацюючої ОС або комп’ютера і відновити все це десь ще. Але це завжди буде план Б. План А - це відновлення.

Використання режиму відновлення на Ubuntu

Linux не дозволяє нормально входити (можливо, процес завантаження несподівано зупиняється перед тим, як відображати екран входу, наприклад)? Вам знадобляться деякі основні інструменти системного адміністрування.

Але почекайте: якщо Linux не завантажиться, як ви збираєтеся запускати ці інструменти? Ну, навіть якщо Linux не завантажується до звичайного командного рядка, часто це переходить до меню GRUB. Звідти ви можете скористатися клавішами зі стрілками вгору та вниз, а потім Enter, щоб вибрати ядро ​​Linux, що працює в режимі відновлення, яке, як ви скоро побачите, відкриє цілий пакет хитрощів.

Як видно з малюнка нижче, після завантаження Ubuntu в режимі відновлення вам буде показано меню інструментів, які вирішують деякі загальні проблеми під час завантаження. Варто спробувати кожен з них, який, здається, може вирішити вашу кореневу проблему. Наприклад, "Clean" видалить невикористані файли, якщо ви підозрюєте, що проблема виникає з повного диска. "Dpkg" спробує виправити будь-які непрацездатні програмні пакети, що базуються на apt. (Інструмент “dpkg” може вимагати спочатку увімкнення мережі.)

Опція “root” відкриє для вас сеанс оболонки командного рядка, де ви будете мати у своєму розпорядженні Bash. Загалом, використання простого сеансу оболонки для відновлення, а не повного робочого столу з графічним інтерфейсом, має сенс, оскільки чим менше складних служб у вас запущено, тим більша ймовірність того, що ви зможете принаймні отримати свою систему біг. Після цього вдалося отримати робочу командний рядок, ви можете почати колупатися , щоб побачити , якщо ви можете визначити і усунути проблему.

Але принаймні, ви будете виглядати надзвичайно круто, роблячи це.

Але що це за інструменти? У вас працює машина Ubuntu? Ідіть, подивіться самі. Код, що запускає меню, вже повинен існувати десь у файловій системі Ubuntu. Використовуйте “locate”, щоб знайти його.

locate recovery-mode /lib/recovery-mode /lib/recovery-mode/l10n.sh /lib/recovery-mode/options /lib/recovery-mode/recovery-menu /lib/recovery-mode/options/apt-snapshots /lib/recovery-mode/options/clean /lib/recovery-mode/options/dpkg /lib/recovery-mode/options/failsafeX /lib/recovery-mode/options/fsck /lib/recovery-mode/options/grub /lib/recovery-mode/options/network /lib/recovery-mode/options/root /lib/recovery-mode/options/system-summary

Зверніть увагу, що сценарій “l10n.sh” встановлює відповідні змінні середовища для меню. Якщо ви перейдете до каталогу / lib / recovery-mode /, ви побачите, що файл “recovery-menu” - це скрипт, що відображає інтерфейс меню, який ви бачили вище. Каталог / lib / recovery-mode / options / містить файли для виконання кожного з пунктів меню ... як “fsck”, який перевірить і, якщо можливо, виправить будь-які пошкоджені файлові системи.

Оскільки, виходячи з попередніх розділів книги, ви тепер досвідчений фахівець із сценаріїв Bash, чому б не поглянути на кожен із сценаріїв у каталозі options /, щоб дізнатися, чи можете ви зрозуміти, як вони працюють. Ось вміст сценарію “fsck”, який допоможе вам розпочати роботу. Зверніть увагу на те, як сценарій добре документований (з використанням символу "#"), щоб допомогти вам зрозуміти, що відбувається.

cat /lib/recovery-mode/options/fsck #!/bin/sh . /lib/recovery-mode/l10n.sh  if [ "$1" = "test" ]; then echo $(eval_gettext "Check all file systems") exit 0 fi # Actual code is in recovery-menu itself  exit 0

Ось кілька речей, які ви можете спробувати самостійно:

  • Вручну запустіть «чистий» сценарій на машині Debian / Ubuntu. Що сталося?
  • Потім спробуйте ретельно відредагувати сценарій меню / lib / recovery-mode / recovery-menu (спочатку зробіть резервну копію). Можливо, просто змініть щось просте, наприклад, заголовок меню або один з описів сценарію. Потім перезавантажте машину та перейдіть із меню GRUB у режим відновлення, щоб побачити, як це виглядає.

За деякими варіаціями та винятками, ви мали б змогу використати ці приклади в інших місцях.

Ця стаття адаптована з глави 6 (Надзвичайні інструменти: побудуйте пристрій для відновлення системи) моєї книги Меннінга “Linux in Action” . Звідки це з’явилося набагато більше задоволення, включаючи гібридний курс під назвою Linux in Motion, який складається з більш ніж двох годин відео та близько 40% тексту Linux в дії . Хто знає ... Ви також можете насолодитися моїм веб-сервісом Learn Amazon за місяць обіду .