Сервер після оновлення не піднявся. Ви завантажуєте rescue-образ, і перед вами запрошення командного рядка та сотні утиліт. Яку запускати першою? Де взагалі встановлена система: на RAID, на LVM, на якому з дисків? І чому вона не завантажується: GRUB, initramfs без потрібного драйвера, помилка у fstab?

Звичайний rescue-образ дає інструменти, але не відповіді. XServer Live OS влаштована навпаки: одразу після завантаження вона показує меню, де кожна дія — один пункт. Діагностика скаже, що заважає завантаженню. Rescue одним натисканням відкриє шелл усередині вашої системи. А встановлену ОС можна запустити прямо з диска, без перезавантаження сервера.

Інструментів багато, відповіді немає

SystemRescue, Ubuntu Live, збірки на основі WinPE — гарні набори інструментів. У них є все, щоб полагодити систему, якщо ви вже знаєте, що зламалося. Проблема в тому, що найчастіше не знаєте.

Розбір сервера, що не завантажується, зі звичайним rescue-образом виглядає так:

  1. Знайти диски й зрозуміти, що на них: зібрати програмний RAID, активувати LVM, знайти кореневий розділ.
  2. Змонтувати його так, щоб нічого не зіпсувати, а потім і /boot, і розділ EFI.
  3. Прочитати grub.cfg, fstab, список ядер і звірити UUID з тим, що реально є на дисках.
  4. Перевірити, чи є в initramfs драйвер контролера, на якому лежить корінь.
  5. Для ремонту — примонтувати /dev, /proc, /sys і зробити chroot, не забувши про efivars, інакше grub-install на UEFI не спрацює.

Кожен крок — десяток команд і місце для помилки. Досвідчений інженер упорається швидко, а той, хто робить це раз на рік, ризикує втратити на цьому години. Ми самі багато разів проходили цей шлях на серверах клієнтів і зрештою зібрали його в одну систему.

Що таке XServer Live OS

Завантаження повної Live OS: прогрес завантаження і розпакування в пам'ятьПовна Live OS на виділеному сервері Dell PowerEdge R330: шапка з даними сервера і список команд

XServer Live OS — система для обслуговування сервера, яка завантажується мережею і живе цілком в оперативній пам'яті. На диски вона нічого не пише, доки ви самі не попросите. Запустити її можна з панелі керування: достатньо вибрати Live OS у меню завантаження сервера.

Live OS складається з двох ступенів:

  • Базова Live OS — маленька система на BusyBox. Вона завантажується за секунди й одразу відкриває меню на екрані сервера. У ній уже є все для діагностики, відновлення та запуску встановленої ОС.
  • Повна Live OS — Debian 13 із systemd та apt. Близько 150 МБ завантажуються прямо в пам'ять одним пунктом меню. Вона потрібна, коли бракує інструментів: поставити пакет, полагодити Windows, перенести сервер.

Між ступенями можна перемикатися скільки завгодно разів без перезавантаження сервера: команда live переходить у повну, base повертає до меню.

Схема: меню завантаження в панелі або ISO-образ ведуть у базову Live OS; з неї командою live — у повну Live OS і назад командою base; через kexec, без перезавантаження — у встановлену ОС

Робота починається з базової Live OS: звідти одна команда веде в повну, а один пункт меню запускає вашу систему з диска.

Меню: усе головне на одному екрані

Головне меню базової Live OS: конфігурація, диски, завантаження, діагностика та відновлення встановленої ОСПерехід у повну Live OS: що станеться, і підтвердження кнопками Yes і No

Замість порожнього запрошення командного рядка Live OS починається з меню. Кожен пункт вибирається однією клавішею, а під ним у два рядки написано, що саме станеться. Усе, що може щось змінити, просить підтвердження кнопками Yes і No.

КлавішаПунктЩо робить
1Server configurationМодель, серійний номер, процесор, модулі пам'яті, контролери, диски, мережеві порти з MAC-адресами
2Disks and healthКожен диск, зокрема за RAID-контролером: здоров'я, температура, напрацювання
3Boot the installed OSЗнаходить систему на дисках і запускає її без перезавантаження
4Diagnose the installed OSПояснює, чому система може не завантажуватися, нічого не змінюючи
5Rescue the installed OSВідкриває шелл усередині встановленої системи (chroot)
6Install an operating systemВстановлює ОС, вибрану в панелі за QR-кодом
LSwitch to the full Live OSЗавантажує повну Live OS на Debian
SOpen a shellВідкриває командний рядок зі списком команд Live OS
PReboot or power offПерезавантажує або вимикає сервер

Поки ви читаєте меню, Live OS уже збирає відомості про залізо у фоні. Тому перші два пункти зазвичай відкриваються одразу, без очікування опитування дисків.

Діагностика: що зламалося і що з цим робити

Діагностика: перевірки сервера, програмного RAID і встановленого DebianДіагностика знайшла у fstab диск, якого немає на сервері; решту перевірок пройдено

Пункт Diagnose перевіряє все, що стоїть між увімкненням сервера і працюючою системою, і пише за кожним пунктом вердикт: OK, WARN (варто подивитися) або FAIL (саме це заважає завантаженню). Поруч із кожною проблемою написано, чим її виправити.

Діагностика тільки читає. Файлові системи монтуються без відтворення журналу, програмний RAID збирається в режимі лише для читання, а після завершення все відмонтовується. Запускати її можна скільки завгодно разів і без ризику.

Для Linux перевіряється:

  • режим завантаження встановленої системи проти режиму прошивки (BIOS або UEFI);
  • GRUB у MBR або завантажувач на розділі EFI і запис про нього в прошивці;
  • grub.cfg і fstab: чи всі UUID, на які вони посилаються, є на сервері;
  • ядра, їхні initramfs і модулі, а також чи є в initramfs драйвер контролера, на якому лежить корінь;
  • стан файлових систем і вільне місце;
  • мережеві налаштування системи проти портів сервера та адреси, яку йому видано.

Для Windows — завантажувальний код і активний розділ або bootmgfw.efi із записом у прошивці, куди вказує BCD, чи запускає Windows драйвер свого дискового контролера, прапорець «брудного» NTFS і гібернація (швидкий запуск). Для самого сервера — чи видно диски, їхнє здоров'я за SMART і стан програмного RAID.

Так виглядає звіт щодо системи, яку перенесли на сервер з іншим RAID-контролером (приклад):

Linux: Debian GNU/Linux 12 (bookworm) on sda2
[ OK ] UEFI loader on the ESP (sda1): grubx64.efi, shimx64.efi.
[ OK ] fstab: all 3 entries are on this server.
[ OK ] Default entry: Debian GNU/Linux
[FAIL] initrd.img-6.1.0-26-amd64 lacks megaraid_sas: the kernel will not
       find the root disk. Rebuild it with the driver (rescue).

Summary: 1 problem(s) that keep it from booting, 0 warning(s)

Без діагностики така система просто зупиняється на завантаженні з незрозумілою помилкою про кореневий розділ. З нею причина і спосіб ремонту видно одразу: зайти в rescue і перезібрати initramfs із потрібним драйвером.

Відновлення одним натисканням

Rescue: що буде зроблено, і підтвердження запускуRescue зібрав RAID, змонтував систему й відкрив chroot; зайвий рядок видалено з fstab

Пункт Rescue робить усю підготовку сам і відкриває шелл уже всередині вашої системи. Він:

  1. Збирає програмний RAID, навіть якщо масив створювався на іншій машині, і активує LVM.
  2. Знаходить кореневу файлову систему: ext4, XFS або Btrfs, зокрема в підтомі.
  3. Монтує її разом з іншими розділами з fstab: /boot, розділ EFI.
  4. Підключає /dev, /proc, /sys і змінні UEFI, щоб усередині працювали grub-install та efibootmgr.
  5. Відкриває шелл у chroot.

Далі ви працюєте зі своєю системою як зазвичай: переставляєте GRUB, перезбираєте initramfs, виправляєте fstab або скидаєте пароль. Після exit Live OS сама відмонтує все в правильному порядку, щоб зміни точно лягли на диск.

Якщо базова Live OS не впорається з файловою системою, вона запропонує перейти в повну. Rescue там запуститься сам, на тій самій консолі. Для Windows у повній Live OS є окрема утиліта win-rescue. Вона без запуску Windows виправляє типові причини помилки INACCESSIBLE_BOOT_DEVICE, пошкоджений BCD і завислі оновлення, а перед будь-якою правкою робить резервну копію реєстру.

Запуск встановленої ОС без перезавантаження

Запуск встановленої ОС: запис GRUB, ядро, initramfs і параметри перед запуском без перезавантаження

Пункт Boot the installed OS знаходить Linux на дисках і запускає його прямо з Live OS, без перезавантаження сервера. Він читає конфігурацію GRUB, вибирає той самий запис, що вибрав би сам GRUB, і стартує його ядро з тими самими параметрами через kexec. Перед запуском меню показує, що саме завантажиться: запис, ядро, initramfs і командний рядок.

Це корисно у двох ситуаціях:

  • Зламаний лише завантажувач. Система ціла, але GRUB або запис у прошивці втрачено. Сервер можна повернути в роботу одразу, а завантажувач полагодити потім, із працюючої системи.
  • Обслуговування завершено. Замість перезавантаження з довгою перевіркою обладнання, яка на серверах триває хвилинами, система стартує одразу.

У такий самий спосіб повна Live OS повертається до базової командою base. Windows так запустити не можна: її стартує лише прошивка. Якщо на дисках Windows, Live OS скаже про це й запропонує перезавантаження.

Залізо і диски без спеціальних утиліт

Конфігурація Dell PowerEdge R330: процесор, модулі пам'яті, MegaRAID, диски та мережеві порти з MAC-адресамиДиски за RAID-контролером: два SAS-диски зі зростаючими дефектами, два SSD зі здоров'ям 93% і 91% та напрацюванням понад чотири роки

Server configuration показує конфігурацію сервера на одному екрані. Пам'ять описано так, як її замовляють: «32 GB · 2x 16 GB DDR4 2400». Для кожного мережевого порту — його MAC-адреса, для контролерів — модель і налаштовані RAID-томи. На віртуальному сервері все коротше: ядра, обсяг пам'яті та диски.

Disks and health розповідає про кожен диск, зокрема про ті, що сховані за апаратним RAID-контролером Dell PERC або HP Smart Array. Зазвичай для цього потрібні утиліти виробників, тут — ні. Для кожного диска видно модель, обсяг, тип (HDD, SSD, NVMe), температуру і два числа, зрозумілі без розшифрування SMART:

  • здоров'я у відсотках — «health 93%» замість сирих атрибутів зносу;
  • напрацювання в роках і днях — «4y 119d» замість 37 896 годин.

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

Встановлення ОС за QR-кодом

Встановлення ОС: QR-код відкриває панель, Live OS чекає на завдання і запустить його сама

Перевстановити систему можна, не йдучи з консолі сервера. Пункт Install an operating system показує QR-код прямо у вікні меню:

  1. Ви скануєте код телефоном — відкривається діалог встановлення в панелі саме для цього сервера.
  2. Вибираєте систему та параметри.
  3. Live OS помічає завдання протягом кількох секунд і одразу його виконує.

Якщо ви підключені по SSH, поруч із QR-кодом є клікабельне посилання. Так само за QR-кодом наші інженери запускають інвентаризацію заліза нових серверів.

Для тих, хто звик до консолі

Шелл базової Live OS на виділеному сервері: шапка з даними сервера і список командВстановлення пакета через apt у повній Live OS із дзеркала XServer

Меню нічого не замикає. Клавіша S відкриває шелл, і в його шапці одразу перелічено команди Live OS. Та сама шапка зустрічає під час входу по SSH, у базовій і в повній Live OS:

  menu        the console menu
  live        switch to the full Live OS
  local-boot  boot the installed OS
  diagnose    check why the installed OS does not boot
  rescue      mount the installed OS and chroot into it to repair it
  hardware    server configuration; hardware disks: disk health

Кожен пункт меню — це звичайна команда. Її можна запустити вручну, наприклад передати rescue потрібний розділ або подивитися, що завантажить local-boot -n, нічого не запускаючи.

У повній Live OS доступний увесь Debian: потрібний інструмент ставиться через apt прямо в пам'ять. На відміну від образів «на всі випадки життя», вам не потрібно заздалегідь завантажувати гігабайти утиліт: ставиться лише те, що потрібно зараз.

Чим Live OS відрізняється від звичайного rescue-образу

Звичайний rescue-образ — це набір інструментів для того, хто знає, що робити. Live OS сама робить те, що інженер повторює на кожному сервері, який не завантажується.

ЗавданняЗвичайний rescue-образXServer Live OS
Завантажити на серверіЗавантажити ISO і підключити його до сервераВибрати Live OS у меню завантаження в панелі
Почати роботуПорожній командний рядок або робочий стілМеню з описом кожної дії
Зрозуміти, чому ОС не завантажуєтьсяВручну: логи, конфіги, завантажувачДіагностика з вердиктом і підказкою, що робити
Увійти в систему для ремонтуRAID, LVM, монтування і chroot вручнуОдин пункт меню
Запустити ОС з дискаПерезавантаження і перевірка обладнанняОдразу, без перезавантаження
Перевірити диски за RAID-контролеромsmartctl з потрібними ключами або утиліти виробникаЗдоров'я і напрацювання в загальному списку
Перевстановити ОСОкремий образ інсталятораQR-код у меню
Інструмент, якого бракуєЛише те, що вже є в образіapt у повній Live OS

SystemRescue і схожі образи залишаються гарним вибором для домашнього комп'ютера і для завдань, яким потрібен графічний інтерфейс. Live OS зроблена для серверів: для консолі, SSH і ситуації, коли сервіс лежить і кожна хвилина на рахунку.

Не лише для наших серверів

Live OS — основа для інших наших інструментів. На ній працює reloca.to — утиліта, яка переносить встановлений Linux-сервер на іншу машину мережею. Обидві машини на час переїзду завантажені в Live OS, тому диски старого сервера ніхто не змінює під час копіювання.

Для серверів за межами нашої мережі є ISO-образ: xserver-live.iso, близько 270 МБ. У ньому та сама Live OS із драйверами та прошивками під чуже залізо:

  • віртуальні машини Hyper-V, Xen і VMware;
  • мережеві карти Realtek, Intel, Broadcom, QLogic та інших виробників;
  • завантаження з CD, флешки або віртуального носія в режимі BIOS і UEFI.

Образ цілком читається з носія, тому мережа для завантаження не потрібна. Адреса за замовчуванням береться по DHCP, статичну можна задати в меню завантажувача. Secure Boot на час роботи з образом потрібно вимкнути.

З чого почати

Якщо сервер не завантажується:

  1. У панелі керування виберіть Live OS у меню завантаження сервера і перезавантажте його.
  2. Відкрийте консоль сервера або підключіться по SSH і введіть menu.
  3. Запустіть діагностику (пункт 4). Вона нічого не змінює і покаже, що саме не так.
  4. Виправте проблему в rescue (пункт 5) або одразу запустіть систему з диска (пункт 3).

Якщо діагностика показала щось незрозуміле, надішліть звіт у підтримку. За ним ми швидше зрозуміємо, що відбувається, ніж за скриншотом завислого завантаження.