Uuid И /Dev/Disk/By-Id Приходят На Помощь

Недавно я установил 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

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.