Виртуализация

Виртуальные машины и среды исполнения

Модератор: Olej

Sergey371
Писатель
Сообщения: 60
Зарегистрирован: 06 окт 2011, 19:54
Откуда: Рига, Латвия
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Sergey371 » 22 окт 2011, 17:08

Ali писал(а):Виндовсу нужен прописанный в реестре драйвер дика. Иначе вы получите синий экран.
+1
Есть обходной манёвр: на работающей машине явно устанавливается драйвер стандартного контроллера дисков и тогда при загрузке с клона в виртуальной машине Винда использует именно его(это один из способов цивильной замены материнок).

Sergey371
Писатель
Сообщения: 60
Зарегистрирован: 06 окт 2011, 19:54
Откуда: Рига, Латвия
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Sergey371 » 22 окт 2011, 17:18

К стати на счёт разделов, недавно обратил внимание на изменение поведения fdisk при разбиении дисков, раньше(fc8..fc10) первый раздел по умолчания начинался с 63-го сектора:

Код: Выделить всё

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdc1   *          63     2120579     1060258+  fd  Автоопределение Linux raid
А сейчас(fc15) с 2048-го:

Код: Выделить всё

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdb1            2048     1975994      986973+  fd  Автоопределение Linux raid
И указать 63-й сектор в качестве начального fdisk не даёт.

2Olej: А MBR можно вывести в файл командой:

Код: Выделить всё

dd if=/dev/sda of=mbr.bin bs=512 count=1
Источник: Главная загрузочная запись

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Olej » 22 окт 2011, 19:21

Ali писал(а):Виндовсу нужен прописанный в реестре драйвер дика. Иначе вы получите синий экран.
Для меня такой лаконизм остаётся загадкой ;-) , особенно учитывая, что последний раз я сталкивался с термином "реестр" лет 10 назад ;-) , ну а ... "драйвер дика" - это, должно быть, означает драйвер диска? :shock:

Драйвер именно физического диска? или контроллера? ... мне всё равно это мало что подсказывает :-( :
- я "снимаю" образ того диска/раздела, с которого нативно физически грузится Windows этот...
- в виртуале именно этот диск предполагался быть загрузочным... (когда QEMU использует не образ-файл, а реальный тот же диск в качестве образа)...
- что поменялось?
- QEMU использовал какой-то свой доступ к реальному диску?

И последнее:
Ali писал(а):Виндовсу нужен прописанный в реестре драйвер дика.
- это констатация, пусть ... диагноз...
- но проделать это (прописать требуемое) в составе существующего образа - невозможно?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Olej » 22 окт 2011, 19:30

Sergey371 писал(а):К стати на счёт разделов, недавно обратил внимание на изменение поведения fdisk при разбиении дисков, раньше(fc8..fc10) первый раздел по умолчания начинался с 63-го сектора:

Код: Выделить всё

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdc1   *          63     2120579     1060258+  fd  Автоопределение Linux raid
А сейчас(fc15) с 2048-го:

Код: Выделить всё

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdb1            2048     1975994      986973+  fd  Автоопределение Linux raid
И указать 63-й сектор в качестве начального fdisk не даёт.
Это настолько неожиданно (для меня, IMHO), а также там есть ряд сопутствующих интересностей, что я, с вашего позволения, отнесу это обсуждение в отдельную тему.
Вот эту: viewtopic.php?f=5&t=1526

Sergey371
Писатель
Сообщения: 60
Зарегистрирован: 06 окт 2011, 19:54
Откуда: Рига, Латвия
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Sergey371 » 22 окт 2011, 20:35

Olej писал(а):Драйвер именно физического диска? или контроллера? ... мне всё равно это мало что подсказывает :-( :
- я "снимаю" образ того диска/раздела, с которого нативно физически грузится Windows этот...
- в виртуале именно этот диск предполагался быть загрузочным... (когда QEMU использует не образ-файл, а реальный тот же диск в качестве образа)...
- что поменялось?
- QEMU использовал какой-то свой доступ к реальному диску?
Поясни: Винда нативно с реального диска в QEMU грузится, а с образа нет? Если да то не понятно, а вот в случае если физическая машина грузится, а виртуальная нет я могу объяснить.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Olej » 22 окт 2011, 20:43

Sergey371 писал(а):Поясни: Винда нативно с реального диска в QEMU грузится, а с образа нет? Если да то не понятно, а вот в случае если физическая машина грузится, а виртуальная нет я могу объяснить.
Так я об этом и спрашиваю:

1. есть 2-й диск /dev/sdb с которого винда успешно грузится ...
sic!: без вот этих 2-х строчек map в grub.conf она не грузится, и так же впадает в ступор:

Код: Выделить всё

title Windows XP
        map (hd0) (hd1)
	map (hd1) (hd0)
	rootnoverify (hd1,0)
	chainloader +1
2. при попытке подсунуть в качестве образов те же физические диски QEMU:

Код: Выделить всё

[olej@nvidia ~]$ sudo qemu -hda /dev/sda -hdb /dev/sdb -boot c -localtime
...
- начинается загрузка через меню GRUB, винда даже выводит свои ругательные сообщения о плохой предыдущей загрузке, довольно долго после этого грузится и ... синий экран :twisted:

Ali
Писатель
Сообщения: 57
Зарегистрирован: 08 окт 2011, 08:00
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Ali » 22 окт 2011, 21:01

Подробности для NT4*
М.Руссинович, Д.Соломон

2.Внутреннее устройство Microsoft Windows (главы 5-7)
http://modernlib.ru/books/russinovich_m ... 57/read_1/
Затем Ntldr начинает загружать необходимые для инициализации ядра файлы. Загрузочным является том, соответствующий разделу, на котором находится системный каталог (обычно \Windows) загружаемой системы. Ниже описываются операции, выполняемые Ntldr.
1. Загружает соответствующие образы ядра и HAL (по умолчанию – Ntoskrnl.exe и Hal.dll). Если Ntldr не удается загрузить какой-либо из этих файлов, он выводит сообщение «Windows could not start because the following file was missing or corrupt» («He удается запустить Windows из-за испорченного или отсутствующего файла»), за которым следует имя файла.
2. Для поиска драйверов устройств, которые нужно загрузить, считывает в память содержимое куста реестра SYSTEM, \Windows\System32\Config\ System. Куст – это файл, содержащий поддерево реестра. Подробнее о реестре см. главу 4.
3. Сканирует загруженный в память куст реестра SYSTEM и находит все загрузочные драйверы устройств (это драйверы, обязательные для запуска системы). Они отмечены в реестре флагом SERVICEBOOTSTART (0). Каждому драйверу устройства в реестре соответствует подраздел HKLM\ SYSTEM\CurrentControlSet\Services. Например, драйверу диспетчера логических дисков (Logical Disk Manager) в разделе Services соответствует подраздел Dmio, показанный на рис. 5-2. (Подробное описание содержимого Services см. в разделе «Сервисы» главы 4.)
4. Вносит в список загрузочных драйверов устройств драйвер файловой системы, отвечающий за реализацию кода для конкретного типа раздела (FAT, FAT32 или NTFS), на котором находится системный каталог. Ntldr должен загрузить этот драйвер именно сейчас, иначе ядро будет требовать от драйверов их же загрузки, и получится замкнутый круг.
5. Загружает драйверы, обязательные для запуска системы. Ход загрузки отражается индикатором «Starting Windows». Полоска на индикаторе продвигается вперед по мере загрузки драйверов (число загрузочных драйверов считается равным 80, поэтому после успешной загрузки каждого драйвера полоска продвигается на 1,25%). Если в Boot.ini указан параметр /SOS, то вместо индикатора Ntldr выводит имя файла каждого загрузочного драйвера. Учтите, что на этом этапе драйверы лишь загружаются, а их инициализация происходит позже.
6. Подготавливает регистры процессора для выполнения Ntoskrnl.exe.
Ha этом участие Ntldr в процессе загрузки заканчивается. Для инициализации системы Ntldr вызывает главную функцию из Ntoskrnl.exe.
В простом случае это драйвер конкретного ide-контроллера, иногда вплоть до последней буквы в названии.
Есть обходной манёвр: на работающей машине явно устанавливается драйвер стандартного контроллера дисков и тогда при загрузке с клона в виртуальной машине Винда использует именно его(это один из способов цивильной замены материнок).
Или устанавливается драйвер будущего контроллера дисков насильно.
Перед процедурой настоятельно рекомендуется создать контрольную точку.


Кроме того, Вы перемапливали диски в грубе, возможно нужно править boot.ini ..

Sergey371
Писатель
Сообщения: 60
Зарегистрирован: 06 окт 2011, 19:54
Откуда: Рига, Латвия
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Sergey371 » 22 окт 2011, 21:43

Olej писал(а):

Код: Выделить всё

[olej@nvidia ~]$ sudo qemu -hda /dev/sda -hdb /dev/sdb -boot c -localtime
...
- начинается загрузка через меню GRUB, винда даже выводит свои ругательные сообщения о плохой предыдущей загрузке, довольно долго после этого грузится и ... синий экран :twisted:
По идее должна заработать такая комбинация:

Код: Выделить всё

$ sudo qemu -hda  /dev/sdb -boot c -localtime

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Olej » 22 окт 2011, 22:05

Sergey371 писал(а):
Olej писал(а):

Код: Выделить всё

[olej@nvidia ~]$ sudo qemu -hda /dev/sda -hdb /dev/sdb -boot c -localtime
...
- начинается загрузка через меню GRUB, винда даже выводит свои ругательные сообщения о плохой предыдущей загрузке, довольно долго после этого грузится и ... синий экран :twisted:
По идее должна заработать такая комбинация:

Код: Выделить всё

$ sudo qemu -hda  /dev/sdb -boot c -localtime
Это было первое, что я тоже подумал ;)
Вложения
XP.png
XP.png (11.6 КБ) 10061 просмотр

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Olej » 22 окт 2011, 22:15

Ali писал(а):
Есть обходной манёвр: на работающей машине явно устанавливается драйвер стандартного контроллера дисков и тогда при загрузке с клона в виртуальной машине Винда использует именно его(это один из способов цивильной замены материнок).
Или устанавливается драйвер будущего контроллера дисков насильно.
Перед процедурой настоятельно рекомендуется создать контрольную точку.

Кроме того, Вы перемапливали диски в грубе, возможно нужно править boot.ini ..
Спасибо... да ладно, Бог с ней, с виндой:

- она мне не сильно нужна, как вариант - с CD в VM (VirtualBox) ставится быстро и без проблем: viewtopic.php?f=9&t=1503&start=10 - в той теме ещё можно немного порассуждать про винду, и её производительности в разных вариантах выполнения...

- ясно ... что ничего неясно ;-) , по крайней мере, там где Linux (и думаю любая нормальная POSIX система, то же имеет место с MINIX 3, например) ведёт себя объяснимо и предсказуемо: загрузка со 2-го, 3-го, ... диска; загрузка в VM с реального диска; создание файла-образа клонированием диска ... - все эти дела в Windows ... могут идти, а могут и не идти, с равным успехом :-?

-

Ответить

Вернуться в «Виртуализация»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей