XServer Live OS: rescue-система, яка знає, що робити

Сервер після оновлення не піднявся. Ви завантажуєте rescue-образ, і перед вами запрошення командного рядка та сотні утиліт. Яку запускати першою? Де взагалі встановлена система: на RAID, на LVM, на якому з дисків? І чому вона не завантажується: GRUB, initramfs без потрібного драйвера, помилка у fstab?
Звичайний rescue-образ дає інструменти, але не відповіді. XServer Live OS влаштована навпаки: одразу після завантаження вона показує меню, де кожна дія — один пункт. Діагностика скаже, що заважає завантаженню. Rescue одним натисканням відкриє шелл усередині вашої системи. А встановлену ОС можна запустити прямо з диска, без перезавантаження сервера.
Інструментів багато, відповіді немає
SystemRescue, Ubuntu Live, збірки на основі WinPE — гарні набори інструментів. У них є все, щоб полагодити систему, якщо ви вже знаєте, що зламалося. Проблема в тому, що найчастіше не знаєте.
Розбір сервера, що не завантажується, зі звичайним rescue-образом виглядає так:
- Знайти диски й зрозуміти, що на них: зібрати програмний RAID, активувати LVM, знайти кореневий розділ.
- Змонтувати його так, щоб нічого не зіпсувати, а потім і /boot, і розділ EFI.
- Прочитати grub.cfg, fstab, список ядер і звірити UUID з тим, що реально є на дисках.
- Перевірити, чи є в initramfs драйвер контролера, на якому лежить корінь.
- Для ремонту — примонтувати /dev, /proc, /sys і зробити chroot, не забувши про efivars, інакше grub-install на UEFI не спрацює.
Кожен крок — десяток команд і місце для помилки. Досвідчений інженер упорається швидко, а той, хто робить це раз на рік, ризикує втратити на цьому години. Ми самі багато разів проходили цей шлях на серверах клієнтів і зрештою зібрали його в одну систему.
Що таке XServer Live OS


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

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


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


Пункт 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 робить усю підготовку сам і відкриває шелл уже всередині вашої системи. Він:
- Збирає програмний RAID, навіть якщо масив створювався на іншій машині, і активує LVM.
- Знаходить кореневу файлову систему: ext4, XFS або Btrfs, зокрема в підтомі.
- Монтує її разом з іншими розділами з fstab: /boot, розділ EFI.
- Підключає /dev, /proc, /sys і змінні UEFI, щоб усередині працювали grub-install та efibootmgr.
- Відкриває шелл у chroot.
Далі ви працюєте зі своєю системою як зазвичай: переставляєте GRUB, перезбираєте initramfs, виправляєте fstab або скидаєте пароль. Після exit Live OS сама відмонтує все в правильному порядку, щоб зміни точно лягли на диск.
Якщо базова Live OS не впорається з файловою системою, вона запропонує перейти в повну. Rescue там запуститься сам, на тій самій консолі. Для Windows у повній Live OS є окрема утиліта win-rescue. Вона без запуску Windows виправляє типові причини помилки INACCESSIBLE_BOOT_DEVICE, пошкоджений BCD і завислі оновлення, а перед будь-якою правкою робить резервну копію реєстру.
Запуск встановленої ОС без перезавантаження

Пункт Boot the installed OS знаходить Linux на дисках і запускає його прямо з Live OS, без перезавантаження сервера. Він читає конфігурацію GRUB, вибирає той самий запис, що вибрав би сам GRUB, і стартує його ядро з тими самими параметрами через kexec. Перед запуском меню показує, що саме завантажиться: запис, ядро, initramfs і командний рядок.
Це корисно у двох ситуаціях:
- Зламаний лише завантажувач. Система ціла, але GRUB або запис у прошивці втрачено. Сервер можна повернути в роботу одразу, а завантажувач полагодити потім, із працюючої системи.
- Обслуговування завершено. Замість перезавантаження з довгою перевіркою обладнання, яка на серверах триває хвилинами, система стартує одразу.
У такий самий спосіб повна Live OS повертається до базової командою base. Windows так запустити не можна: її стартує лише прошивка. Якщо на дисках Windows, Live OS скаже про це й запропонує перезавантаження.
Залізо і диски без спеціальних утиліт


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-кодом

Перевстановити систему можна, не йдучи з консолі сервера. Пункт Install an operating system показує QR-код прямо у вікні меню:
- Ви скануєте код телефоном — відкривається діалог встановлення в панелі саме для цього сервера.
- Вибираєте систему та параметри.
- Live OS помічає завдання протягом кількох секунд і одразу його виконує.
Якщо ви підключені по SSH, поруч із QR-кодом є клікабельне посилання. Так само за QR-кодом наші інженери запускають інвентаризацію заліза нових серверів.
Для тих, хто звик до консолі


Меню нічого не замикає. Клавіша 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 на час роботи з образом потрібно вимкнути.
З чого почати
Якщо сервер не завантажується:
- У панелі керування виберіть Live OS у меню завантаження сервера і перезавантажте його.
- Відкрийте консоль сервера або підключіться по SSH і введіть
menu. - Запустіть діагностику (пункт 4). Вона нічого не змінює і покаже, що саме не так.
- Виправте проблему в rescue (пункт 5) або одразу запустіть систему з диска (пункт 3).
Якщо діагностика показала щось незрозуміле, надішліть звіт у підтримку. За ним ми швидше зрозуміємо, що відбувається, ніж за скриншотом завислого завантаження.
