Назад | Перейти на главную страницу

Бросил ожидание корневого устройства после обновления до 12.04 в Hyper-v

У меня есть виртуальная машина Ubuntu 11.10, которую я только что обновил до 12.04. Установка прошла нормально, но теперь при использовании ядра 3.2.0 происходит сбой при загрузке с

Gave up waiting for root device.

...

ALERT! /dev/mapper/uvm-root does not exist. Dropping to a shell!

Если я загружаюсь с использованием предыдущего ядра Linux uvm 3.0.0-17-server #30-Ubuntu SMP Thu Mar 8 22:15:30 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux все работает. В предыдущем ядре я вручную включил модули hyper-v, как описано здесь (http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/10/21/installing-ubuntu-server-10-10-on-hyper-v.aspx) - в основном они добавлены в /etc/initramfs-tools/modules.

Как я могу отладить проблему? У меня сейчас есть машина под управлением Ubuntu 12.04 с ядром 3.0, так что я могу разобраться. Ничто не кажется подозрительным, глядя на /boot/grub/grub.cfg Я вижу, как передаются одни и те же идентификаторы; Я также пробовал update-initramfs -u -v и я вижу, что hv_storvsc.ko включается.

Мой ответ Вот, скопированный ниже, скорее всего, также применим к вам и объясняет, почему обновление ядра и модуль ядра (storvsc) устранили вашу проблему. Вот как получить стандартный компьютер Ubuntu 12.04, работающий на Hyper-V:

Скопировано из моего ответа здесь: https://serverfault.com/a/522332/72237

Самый простой способ заставить Ubuntu 12.04 нормально работать под Hyper-V на платформе 2012 - это загрузить образ Windows Azure Cloud - к ​​сожалению, как я проверял сегодня (10 июля 2013 г.), образы недоступны на Образы Ubuntu Cloud магазин изображений. Я задал вопрос об их сайт ответов за которыми вы можете следить, чтобы увидеть, восстанавливают ли они облачные образы.

Тем не менее, давайте обсудим, почему у вас возникла проблема: 12.04.2 имеет более старое ядро ​​без последней интеграции Hyper-V (модули ядра), которые были встроены в 12.10, а также в 13.04. Лекарство - получить более новое ядро. Как я сказал ранее, самый простой способ получить правильный образ - это создать образ, созданный для Windows Azure - публичное облако Azure и ваш частный сервер Hyper-V работают. по существу тот же гипервизор, поэтому к вам применимы все инструкции, применимые к Azure.

Для работы на платформе Azure, также известной как гипервизор Hyper-V 2012, Microsoft рекомендует в своем списке одобренные дистрибутивы Linux чтобы вы выполнили ряд шагов по обновлению дистрибутивов 12.04.x, чтобы использовать ядро ​​и модули ядра с обратным переносом. Вам не нужно устанавливать walinuxagent или перенастраивать GRUB, что необходимо только для Windows Azure.. В полные инструкции воспроизводятся здесь с удаленными инструкциями walinuxagent и GRUB:

  1. sudo sed -i "s,archive.ubuntu.com,azure.archive.ubuntu.com,g" /etc/apt/sources.list

    На этом этапе зеркала обновляются, чтобы они указывали на размещенное в Azure зеркало.

  2. sudo apt-add-repository ‘http://archive.canonical.com/ubuntu precise-backports main’

    На этом шаге добавляется репозиторий, необходимый для получения изменений ядра и агента.

  3. sudo apt-get update
  4. sudo apt-get install linux-backports-modules-hv-precise-virtual

    На этом этапе добавляется ядро ​​обновления и связанные модули.

  5. sudo apt-get install hv-kvp-daemon-init

    На этом шаге добавляется обновленный агент.

    НОТА: Я удалил walinuxagent из этой команды. Это не нужно для частных облаков, но для Windows Azure. Однако это обновление устанавливает обмен парами ключ-значение, который может использоваться для синхронизации времени и других вещей, но я не совсем уверен.

  6. Этот шаг удален, поскольку он относится к модификации GRUB для более эффективной работы в Windows Azure.
  7. (рекомендуемые) sudo apt-get dist-upgrade
  8. sudo reboot

Последнее замечание: эти инструкции добавляют новый репозиторий на ваши машины с Ubuntu, и вы должны знать, какой эффект это имеет. Убедитесь, что первая команда выполняется правильно (я не тестировал ее на прошлой неделе), чтобы заменить archive.ubuntu.com с участием azure.archive.ubuntu.com. Я сам выполнил эти шаги, но не могу сказать, что они будут работать в будущем. Просто имейте в виду, что цель первого шага - указать вашему дистрибутиву Ubuntu использовать новый набор репозиториев по умолчанию, предназначенных для поддержки резервного копирования для Windows Azure и гипервизора Hyper-V 2012.