Недавно я установил Xen на новый сервер и столкнулся с одной очень интересной проблемой — при загрузке случайно выбирались sda и sdb с двух винтов, несмотря на то, что в биосе все было жестко запрограммировано.
Таким образом получилось, что сервер загружался через раз.
И тогда я начал думать, как можно решить эту проблему :) Все было несложно, если бы не одно обстоятельство: один из дисков был зашифрован :) Итак, сначала краткое описание ситуации: У нас был сервер с установленным Xen и два IDE HDD: 160 Гб — система и 400 Гб — зашифрованный диск с гостевыми доменами Xen. Все работало отлично, системный диск был главным, доменный диск - подчиненным.
Но в один прекрасный день раб решил, что так жить больше не может и тихо умер :).
Было решено не заморачиваться и заменить его на новый SATA диск на 400 Гб.
В биосе было строго прописано кто есть кто, то есть какой диск первый, а какой второй, и было решено продолжить загрузку.
Появился экран GRUB, завис на три секунды и начал загружаться.
Правда недалеко, как говорится, музыка играла недолго, парень танцевал недолго, потому что после загрузки initrd-образа система мне сказала свое "фи" со словами, что не может t найти корневой раздел.
Посмотрев друг на друга (имеется в виду я и Зен), я решил, что мне так показалось и нажал три волшебные кнопки, после чего система, видимо, поняв намек, пошла на перезагрузку.
Перепроверка биоса показала, что я ничего не напутал и было решено попробовать еще раз.
«Еще раз здравствуйте, то есть хотелось бы узнать, где МОЙ корневой разделЭ» - сказала мне система.
Просматривая вывод сообщения, я с удивлением обнаружил, что мой диск IDE стал sdb, а диск SATA стал sda. Что-то не так в этой сказке, подумал колобок, доедая лису, я подумал и решил, ну, если ты так решил, нет проблем, сейчас мы сделаем это за тебя, как ты хочешь.
Опять три кнопки и при загрузке заходим в меню GRUB и там редактируем sdb, потом кнопка б и начался процесс загрузки.
Я откинулся на спинку стула, но как оказалось, это было напрасно и ненадолго, так как система снова меня спросила: «Где яЭ» На что я мог только ответить: «Кто здесьЭ» На этот раз диски уже определились нормально и мне не следовало указывать GRUB, что корневой раздел находится на sdb. Плюнув на все, еще раз нажав три кнопки, оставил все как было и «О, чудо!» система загрузилась как положено.
:) Вроде бы я мог успокоиться, списав всё на неподходящее расположение звёзд на небе и Рака в созвездии Девы, но неоднократные перезагрузки показали, что я вменяем, но система по какому-то известному только ей алгоритму (хотя я подозреваю, что это просто /dev/rand), решил, кто сегодня в доме хозяин, и кто должен мыть посуду :) О том, что можно использовать UUID, я знал давно, но была одна штука, в виде второго винта с зашифрованными данными и парочки скриптов, которые автоматизировали подключение и запуск гостевых доменов, и они при инициализирован с помощью cryptsetup create, используются жесткие указатели на устройства (что-то вроде /dev/sdb1).
Пришлось придумать что-нибудь, чтобы сделать это элегантно и максимально быстро :) Проблема с загрузкой решилась быстро благодаря UUID. Выяснив, какой раздел какому принадлежит, поправили menu.lst для GRUB и fstab. Сделано примерно так: # Tune2fs -l /dev/sda3 | grep -i uuid UUID файловой системы: 269f023a-bf30-4a6e-a866-6c414dec0ef6 в меню.
lst: название Xen 3.2-1-amd64 / Debian GNU/Linux, ядро 2.6.26-2-xen-amd64 корень (hd0,0) ядро /xen-3.2-1-amd64.gz модуль /vmlinuz-2.6.26-2-xen-amd64 root=UUID=269f023a-bf30-4a6e-a866-6c414dec0ef6 ro console=tty0 модуль /initrd.img-2.6.26-2-xen-amd64 и фрагмент из fstab: UUID=269f023a-bf30-4a6e-a866-6c414dec0ef6 / ошибки ext3=remount-ro 0 1 И тут возник вопрос с разделом подкачки.
Многие не знают, как назначить раздел UUID для подкачки (по умолчанию установщик создает его без него).
Для этого просто создадим его заново, предварительно отключив: # замена # mkswap /dev/gde_swap # vol_id /dev/gde_swap | grep UUID ID_FS_UUID=c52042d0-8527-48bd-812c-d51000059098 ID_FS_UUID_ENC=c52042d0-8527-48bd-812c-d51000059098 Берем отсюда UUID и записываем его в fstab. А как насчет зашифрованного винта? UUID вы там не увидите :( Пришлось зайти на irc-канал Debian (irc.debian.org) и спросить совета там :) Вот мне и рассказали про /dev/disk/by-id/ :) Заглянув туда, я нашел того, чего мне тоже оказалось вполне достаточно для дальнейшего комфортного существования, а именно необходимую ссылку на устройство: scsi-SATA_ST3400633AS_9NF0BZ3B-part1. Редактирование скриптов прошло быстро и безболезненно, и тут наступил момент истины - контрольный выстрел перезагрузки :) Всем хвала и, на всякий случай, Святому Патрику тоже (сладководам привет ;)) все прошло на ура :) Так что, как говорится, терпение и труд все перетрут :) И главное не стесняйтесь и поспрашивайте у знающих :) PS: Еще раз спасибо дружелюбным ребятам с irc.debian.org. УПД: С перемычками все в порядке:) Перепроверил, так как это тоже первое, что пришло в голову:) Теги: #настройка Linux #диск #.
dev #grub uuid #by-id
-
Что Означает Уставный Капитал Для Компании?
19 Oct, 24 -
Paypal Получила Банковскую Лицензию В Европе
19 Oct, 24 -
Выпущен Языковой Сервер Pylance
19 Oct, 24