Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2014-12-25

gave up waiting

Недавно такая история приключилась.
Не так давно, гражданин Н. купил у 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

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) Klaipeda (14) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)