Одна из идей, в рамках которой развивается облако Селектел, является максимальная свобода администратора при работе с облачной машиной. Различия с реальным сервером должны быть минимальны, а все новые функции не должны нарушать ощущения «настоящей» машины.
Сейчас мы сделали очень крупный шаг для реализации этого — реализовали интерфейс управления загрузкой. До этого момента эксперименты с загрузкой (разные версии ядер, опции загрузки и т.д.) могли привести к нерабочей машине, и исправление этой проблемы было проблемным (отключать диск, подключать его обратно и т.д.).
Теперь эта проблема решена. Я думаю, эти два скриншота объяснят возможности системы больше, чем тестовое описание:
Сразу хочу предупредить, что диалог конфигурирования — далеко не самая безопасная вещь. Отсутствие некоторых опций при загрузке или, наоборот, посторонние опции могут сделать виртуальную машину нерабочей.
Не все ядра совместимы со всеми дистрибутивами. Например, грузить с 2.6.18 современные системы — не самая хорошая идея. Грузить Centos с 3.1 — тоже.
Подробное описание
Выбор начинается с указания откуда грузить ядро. Есть два варианта: «с диска виртуальной машины» и «внешнее ядро». Внешнее ядро предоставляем мы (вместе с initrd), внутреннее читается с загрузочного диска. Если выбрано внутреннее ядро, можно указать с какого диска грузиться и указать пункт меню grub. Пустое поле означает «по-умолчанию».
В этом режиме «Параметры ядра» дописываются к аргументам, которые прописаны в grub.cfg (grub.lst). В частности, это открывает путь к опциям single и init=/bin/sh.
Второй режим — режим загрузки внешнего ядра. Для Centos лучше всего выбирать 2.6.18, для всех остальных — 3.1 (2.6.34 оставлено на всякий случай).
Важно: в режиме внешнего ядра аргументы берутся только из поля «параметры ядра». Если здесь не указать все нужные аргументы, будут проблемы с загрузкой. Ключевые параметры, которые должны быть — barrier=off (для 3.1, без него будут проблемы с ext4), console (без него не будет консоли) и root (без него система не будет знать откуда грузиться). Образец параметров подставляется автоматом при выборе того или иного ядра, однако, нужно понимать, что это всего лишь образец, и вероятнее всего, при внешней загрузке, нужно будет указывать дополнительные параметры (например, изменять настройки консоли на console=xvc0 при загрузке 3.1 на дебиан).
Ядро принимает очень много параметров, часть из них обрабатывается ядром, часть модулями. Полный список возможного (не всё это применимо в условиях виртуализации) находится тут.
Автор: amarao