scorpid
Скажите пожалуйста, у вас есть возможность выложить свой VHD с установленной виндой, чтобы не доставать бубен с QEMU?
Теоретически есть, попробую
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
scorpid
Настройки загрузчика можете написать ??
Отвечаю пока что на этот вопрос

Настройки GRUB2

grub.cfg

menuentry "Windows 7 (EFI)" {

   set root='hdX,gptY'
   chainload /bootmgfw.efi
}

где hdX и gptY раздел на котором лежат VHD и виндовый загрузчик bootmgfw.efi. Кроме того, в этом разделе необходимо разместить папку efi/microsoft/boot, которая берется с установочного носителя. Сам загрузчик придется взять из уже установленной системы либо выдрать 7zip-ом из образа install.wim на том же установочном носителе (там он лежит по пути 1/Windows/Boot/EFI)

Размещенный на разделе с образами загрузчик (!!!) следует настроить так



Здесь путь \vhd\win.vhd - путь по которому на разделе лежит образ. Загрузчик винды, который внутри образа, нас совершенно не волнует, пусть остается таким, какой он есть

Важно! Вторичный загрузчик винды в режиме EFI называется winload.efi а не *.exe, что так же следует указать в настройках BCD-контейнера.

И, по идее, если VHD-образ правильный и настройки точны, это будет великолепно работать.

НО! Главная проблема - инсталировать винду в образ через виртуальную машину. Дело в том, что поддержка efi в виртуалбоксе пока кривая. Например, они никак не хочет загружать инсталлятор семерки в EFI-режиме ни с флешки ни с образа CD. Вернее даже понятия "образ загрузочной флешки" для виртуалбокса не существует. С живой флешки пожалуйста, с образа - никак. Воспринимает образ как HDD и начиная грузить моргает разок и останавливается на экране Starting Windows. Для восьмерки и десятки виртуалбокс не имеет этой проблемы и спокойно грузиться в EFI с образа CD - первые эксперименты я проводил на десятке как раз. А с семеркой - никак.

QEMU с этой задачей справляется хорошо, но требуется образ EFI-firmware от тианокоре, которые есть в пакете ovfm.
Однако, qemu что-то делает с образом VHD такое, на что потом плюется загрузчик винды. И вообще, для задачи подходят оригинальные MS-maked образы, созданные утилитой dispart или через управление дисками в винде. Virtualbox и qemu что-то не то видимо пишут в футер образа. Так что задачу я решил с бубном: установил винду через QEMU на raw-образ, а зачем перенес все её файлы командой cp -rva на оригинальный ms-образ. С перечисленными выше настройками загрузилась.

Вопрос с образами требует реверс-инженеринга, благо формат VHD от майкрософта известен и описан ими же подробно. Думаю, вопрос решаем. Пока такая будет инструкция, потом посмотрим, но огонёк копательства эта тема в моей душе зажгла :-D

P.S.: Ларчик с VHD открывается просто

Вот содержимое футера оригинального VHD от майкрософт (созданного с помощью diskpart)


А вот то, что генерирует Virtualbox при создании VHD


Футер VHD это его последние 512 байт, там хранится служебная информация. Так вот, если за точку отсчета брать начало футера, то по смещению +28 лежит поле Creator Application размером 4 байта. Это поле у майкрософта имеет значение zwin, а у виртуалбокса vbox. Других различий нет, учитывая что некоторые поля есть временная метка и uuid которые меняются от образа к образу.

Отсюда вывод: VHD-диски созданые в Virtualbox непригодны для использования в системах на базе hyper-v, к чему относится и загрузка из VHD. Видимо bootmgr читает эти поля и натыкаясь на разницу плюется ошибками.

Отсюда вопросище к Sun/Oracle (а скорее к Oracle, так как поддержка vhd вроде появилась уже при них): господа, вот нахера так делать??? Формат VHD создан майкрософтом, спецификация опубликована. Почему не сделать так же как и у них, для соместимости???!!!??? Смысл таких VHD если они и не VHD вовсе??? Меня переполняют матерные эмоции...
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
TheNovaLive
Пока нету установленного, но если сейчас начну, то в VirtualBOX есть настройки по железу, т.е. не всё моё железо заведётся?! Проц 2 ядерный 6гиг оперативки и видеокарта от ATI?! - Всё это урежется?!
Не совсем понял вопроса. А если понял правильно, и речь идет о том, как "виртуальная" винда будет вести себя при загрузке из образа на реальном железе, то ничего там не урежется, всё прекрасно подцепится при первой же загрузке в реальном аппаратном окружении. Насчет RAM страх вообще детский: разве винда не видит память, когда вы покупаете оперативку в дополнение к уже имеющейся? То то же.

Главное - после установки виртуальной винды сразу же перед её первой загрузкой на реальном железе заменить контролер IDE/SATA на стандартный. Иначе при загрузке словите BSOD c ошибкой 0x7B. После успешной загрузки из VHD убираем все желтые восклицательные знаки в диспетчере устройств путем установки родных железу драйверов и всё. Можно работать как с нормальной виндой.

scorpid
Может снова попробовать :). Сейчас стоит на железе WIn7, раздел EFI есть. Настройки загрузчика можете написать ??
Проведу один эксперимент и отпишусь уже будучи уверенным

scorpid
GPT лучше
Спору нет, безусловно лучше
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
scorpid
2) На хосте загруженном в режиме UEFI, с помощью GRUB2 загружаю bootmgr.efi из образа VHD ?
Не из образа. В раздел efi на винте нужно скопировать каталог Boot/ с настройками загрузчика и bootmgr.efi. Контейнер Boot/BCD конфигурируется на загрузку из VHD

scorpid
Т.е получается VHD будет состоять из двух разделов: 1-EFI, 2-система.
Совсем не страшно. Bootmgr сам разберется, где в образе лежит winload32.exe
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
scorpid
винду я так понимаю в виртуалке ты тоже ставишь на GPT в UEFI режиме?
Да, в этом то и сложность, ибо виртуалки не очень пока эмулируют EFI
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
scorpid
Надо иметь ввиду, что на UEFI GRUB2 на загружает VHD, у меня так :(.
Загружает. Я делал такое, правда на эмуляторе. Всё не доходят руки перепроверить и написать мануал.

Принцип в общем тот же самый, только grub2 запускает не bootmgr, а bootmgr.efi, ну и настройка menuentry соответствует GPT-разметке.

Тут надо четко понимать, что винду из VHD загружает не grub2, а её же самый, виндовый родной загрузчик. А ему пофигу, как он запущен, главное чтобы работал и мог найти свой Boot/BCD-контейнер с настройками а затем и VHD-образ корректного формата. Grub2 в этой схеме предназначен исключительно для запуска bootmgr в его Legasy/EFI варианте и на полет кирпича в принципе не влияет.

При загрузке винды в legacy-режиме реализуется цепочка MBR --> PBR --> bootmgr --> winload32.exe. Grub заменяет собой первые два этапа, то есть имеем MBR --> Grub2 --> bootmgr --> winload32.exe. Аналогичным образом делается и при использовании efi-режима.

P.S.:

В принципе, я бы уже давно решил бы эту задачу целиком и описал бы, но у меня всего одное живое устройство с EFI + GPT - мой ноутбук. И "железная" винда там бы мне тоже нужна была бы для некоторых задач. Но ноут у меня рабочая лошадка, не для экспериментов, к тому же там маленький винт всего на 320 Гб. Поэтому обкатку технологии загрузки VHD-контейнеров с EFI я проводил на QEMU - единственный эмулятор, более-менее адекватно эмулирующий EFI. Но там тоже есть свои нерегулярные косяки, поэтому процесс этот несколько застопорился. На хабре статья об этом так и висит пока в черновиках.
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
Wejur
и не послушаться вашего совета очень глупо
Вполне себе нормально и не послушаться
lampslave
В сторону улучшения профессиональных навыков и как можно дальше от того, что отнимает, а не экономит время.
Честно говоря, немного надоело слушать подобные нравоучения, особенно на тематическом форуме. "Ах посмотрите, какой я молодец, перестал заниматься х@рней, а стал профессионально расти!"
Уже до боли в зубах надоели высказывания эти в духе "не тем занимаешься, не ту профессию выбрал, не то покупаешь, не то читаешь.."

У Вас есть личное мнение? Великолепно! Высказали его, предельно четко обозначив свою позицию? Здорово! Этим можно и ограничится, а не вставлять по поводу и без едкие замечания. Здесь вроде как форум, где разбираются конкретные вопросы по конкретному дистрибутиву, а не тренинг личностного роста им. Д. Карнеги. Или нет?
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
vasek
Извиняюсь за вмешательство, но немного подкорректирую.....
О, а вот об этом я не знал. Спасибо, очень полезная информация
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
lampslave
Или мешает "мы не переустанавливаем, мы чиним, потому что мы не нубы-виндузятники какие-нибудь"?
Именно так

По сабжу

$ strace <программа> | grep open
покажет к каким файлам обращается приложение. Это будут строки вида (пример взят от фонаря)

open("../cfg/solver.xml", O_RDONLY)     = 3

Зачастую вычислить где валяются конфиги бывает сложно, я тут с одной прогой недавно мучался
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
urxvt
иногда roxterm
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org