Недавно такая
история приключилась.
Не так давно,
гражданин Н. купил у nic.ru (RU-CENTER) хостинг,
VDS на базе Hyper-V.
На эту виртуалку
Н. поставил Debian 7.4, в смысле, накатил
подготовленный ру-центром дистр. После
чего попытался обновить его до свежей
версии, 7.7. Обновил, перезапустил и видит
картину:
система не
грузится и выдает сообщение типа
gave up waiting for root device
Хорошо еще, этот хостинг позволяет
подключится к системе по RDP и наблюдать
экран в момент перезапуска. Иначе бы
просто получили не поднявшийся хост
без объяснения причин.
На этом этапе
подключили меня, порешать проблему.
Проблема в том, что Н. хочет регулярно
обновляться, но не хочет ронять систему.
Я почесал репу
и подумал, что, по неясным причинам, ядро
Linux где-то в ходе обновления теряет
драйвер (модуль) работы с hyper-v диском.
Погуглив
некоторое время, я порешал проблему
через прописывание нужных модулей
ручками в initramfs (/etc/initramfs-tools/modules).
Как-то так (на
рабочей системе, до обновления):
lsmod | tail -n +2 | sort | awk '{print $1;}' >> /etc/initramfs-tools/modules update-initramfs -u reboot
Для общения с hyper-v псевдожелезом, нужны
такие модули
-
hid_hyperv
-
hv_blkvsc
-
hv_netvsc
-
hv_storvsc
-
hv_utils
-
hv_vmbus
Если они есть,
система взлетит.
Потом обновили
систему
aptitude update && aptitude upgrade && aptitude full-upgrade
и … чуть не наступили на еще одни грабли.
Хорошо, я
внимательно читал сообщения, выводимые
на экран. Кстати, полезно пользоваться
записью происходящего — перед началом
вот таких стремных действий запустить
script -t 2>~/commands.time -a ~/commands.script
Тогда все выводимое на экран будет
сохранено.
Короче, мое
внимание привлекло вот это:
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64 Generating grub.cfg ... /usr/sbin/grub-probe: error: Couldn't find PV pv1. Check your device.map. Found linux image: /boot/vmlinuz-3.2.0-4-amd64 Found initrd image: /boot/initrd.img-3.2.0-4-amd64 /usr/sbin/grub-probe: error: Couldn't find PV pv1. Check your device.map.
Очевидно, если граб не в порядке,
перезапускать хост нельзя. А что делать?
Я посмотрел,
что там в дивайс.мэпе и вообще с дисками:
less /boot/grub/device.map ls -la /dev/disk/by-id/ fdisk -l mount
Убедился, что в device.map написана какая-то
херня. И переделал его
mv /boot/grub/device.map /boot/grub/device.map_orig grub-mkdevicemap less /boot/grub/device.map update-grub
После чего уже спокойно перезапустил
хост и убедился, что он взлетел, как
положено.
Вот такая
история. Мораль тут простая: не ходите
дети в Африку гулять связывайтесь
с nic.ru. Почему? Да потому, что их техподдержка
на соответствующие ситуации вопросы
ответила кратко и емко, в стиле «Мы
отвечаем только за работоспособность
нашего дистра. Все остальные варианты
нами не обслуживаются, разбирайтесь
сами».
И давайте не
будем спрашивать, зачем вообще нужен
хостинг, где под MS Windows крутятся виртмашины
с Linux, в которых оперативки 512 мегабайт
а дистр 64-х разрядный.
original post http://vasnake.blogspot.com/2014/12/gave-up-waiting.html
Комментариев нет:
Отправить комментарий