Pull to refresh

Comments 45

Если ставить на vhd, то образ должен лежать на разделе с NTFS?
Спасибо за статью, один вопрос только: восстановление GRUB разве не меньшее количество манипуляций и времени займет?
Слишком много телодвижений… не проще ли поставить 7/8/8.1/10 а потом восстановить загрузчик через livecd?
Проще. Может быть приведенный выше материал и походит на троллейбус из буханки хлеба, однако принципиальным в моментом в нем является рассмотрение алгоритма работы инсталлятора ОС данного семейства, что несомненно представляет интерес, хотя бы с теоретической точки зрения
Кроме бухов из-за привязки ко всяким sbis, клиент-банку, и т.д. особо и не нужно ведро. А версии выше win7 вообще не понятно зачем люди устанавливают.
И надо признать winXP ведет себя под VirtualBox лучше чем в чистом железе. И когда попадаются всякие узкие устройства российского попила бюджета помогает именно virtualbox.
Кроме бухов из-за привязки ко всяким sbis, клиент-банку, и т.д. особо и не нужно ведро.

Вы имели ввиду вин? "Ведро" это андроид вроде как.
Photoshop, AutoCAD, Matlab, Chessbase, да тот же Office или Visual Studio. Да у всех этих программ есть опенсорсные аналоги, но не всегда они имеют нужный функционал и ими удобно пользоваться. Так что от дуалбута уже который год уйти не получается никак. А еще игры, с которыми буквально пару лет назад на всём, кроме Windows было никак.


А версии выше win7 вообще не понятно зачем люди устанавливают.

А зачем мне ставить старую версию, когда меня новая устраивает?

Matlab есть нативный под linux и mac. То же самое касается Maple и Mathematica.

Так что от дуалбута уже который год уйти не получается никак

Тут согласен. Мне например, приходится иногда использовать совсем уж специфическое ПО

Да в том то и дело, что совсем специфичного и не надо. Любая профессиональная деятельность, не связанная с IT, обычно требует софт который существует только под Win, в лучшем случае — Mac, а опенсорсные аналоги по функционалу не дотягивают.

А какая информация о железе вообще нужна утилитам BOOTICE / bcdedit? Можно ли их запустить на виртуалке, а потом переписать нужные файлы на реальный диск? Или запустить на виртуалке, но дать доступ к реальному диску? Можно ли их запустить под Wine или под ReactOS?

Навскидку BootICE запускается под wine, но при попытке открытия BCD пишет

Ответ на вопрос почему может дать отладка

bcdedit дает ответ аналогичный
[maisvendoo@arch-host bcdedit]$ wine bcdedit /enum all /store 'Z:\home\maisvendoo\ntfs_part\Boot\BCD' 
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
The boot configuration data store could not be opened.
Файл не является файлом реестра.
Можно ли их запустить на виртуалке, а потом переписать нужные файлы на реальный диск?

Вряд ли, на скриншоте виден OS GUID, который будет отличен на реальном железе.
Неоспоримый плюс статьи в том, что загрузочную флешку можно создать из Linux, что часто вызывает много вопросов и делают это обычно из под самой Windows с помощью windows usb/dvd download tool. Оказалось, там никакой магии и всё вполне выполнимо руками.
загрузочную флешку можно создать из Linux

Для EFI — да, простым копированием файлов. В случае же с MBR все несколько сложнее
Надо поставить GRUB на флешку и написать в конфиге
set root=hdX,Y
ntldr /bootmgr

GRUB умеет грузить винду не через chainloader, а напрямую, изображая из себя загрузчик
Впрочем, в статье это есть.
Я как-то задумался о распаковке install.wim и забыл про очевидный, более простой путь. Спасибо.
Надо поставить GRUB на флешку и написать в конфиге


Да c GRUB проще всего. Вот инструкция

1. Присваиваем разделу на флешке метку

$ sudo fatlabel /dev/sdb1 SETUP


2. Монтируем её и устанавливаем GRUB

$ sudo mount /dev/sdb1 /tmp/flash -o uid=1000,gid=100
$ mkdir /tmp/flash/grub
$ sudo grub-install --target=i386-pc --boot-directory=/tmp/flash /dev/sdb


3. Конфигурируем GRUB, причем корень лучше установить по метке тома

/tmp/flash/grub/grub/grub.cfg
menuentry 'Windows 7 Setup' {

search --label SETUP --set root
ntldr /bootmgr
}


Всё, втыкаем, в биосе выставляем приоритет загрузки и вперед
Да, чтобы не появлялось меню GRUB, ставим в начале конфига

set timeout=0
Меня больше всего настораживает распаковка WIM через 7-zip. Как это переживут ACL, потоки NTFS, симлинки и хардлинки?
я через gimagex распаковывал всегда. бегло погуглив, нашел такую штуку — WIMLIB: IMAGEX / DISM ALTERNATIVE TO MANIPULATE WIM FILES IN LINUX. Заинтересовало, нужно потестить.
Весьма ценно. В AUR есть пакет

Опробовал, работает. Информация о wim

[maisvendoo@arch-host win7-efi]$ wimlib-imagex info ~/iso/sources/install.wim


Вывод команды
WIM Information:
— Path: /home/maisvendoo/iso/sources/install.wim
GUID: 0xd2cd8e1cb9c7144483bad0dac385534d
Version: 68864
Image Count: 4
Compression: LZX
Chunk Size: 32768 bytes
Part Number: 1/1
Boot Index: 0
Size: 2850077531 bytes
Attributes: Integrity info, Relative path junction

Available Images:
— Index: 1
Name: Windows 7 HOMEBASIC
Description: Windows 7 HOMEBASIC
Display Name: Windows 7 Домашняя базовая
Display Description: Windows 7 Домашняя базовая
Directory Count: 13976
File Count: 66508
Total Bytes: 11529408728
Hard Link Bytes: 4376878446
Creation Time: Вс ноя 21 04:39:25 2010 UTC
Last Modification Time: Вс ноя 21 13:14:41 2010 UTC
Architecture: x86_64
Product Name: Microsoft® Windows® Operating System
Edition ID: HomeBasic
Installation Type: Client
HAL: acpiapic
Product Type: WinNT
Product Suite: Terminal Server
Languages: ru-RU
Default Language: ru-RU
System Root: WINDOWS
Major Version: 6
Minor Version: 1
Build: 7601
Service Pack Build: 17514
Service Pack Level: 1
Flags: HomeBasic
WIMBoot compatible: no

Index: 2
Name: Windows 7 HOMEPREMIUM
Description: Windows 7 HOMEPREMIUM
Display Name: Windows 7 Домашняя расширенная
Display Description: Windows 7 Домашняя расширенная
Directory Count: 14226
File Count: 67569
Total Bytes: 12042784908
Hard Link Bytes: 4792628161
Creation Time: Вс ноя 21 04:39:25 2010 UTC
Last Modification Time: Вс ноя 21 13:15:42 2010 UTC
Architecture: x86_64
Product Name: Microsoft® Windows® Operating System
Edition ID: HomePremium
Installation Type: Client
HAL: acpiapic
Product Type: WinNT
Product Suite: Terminal Server
Languages: ru-RU
Default Language: ru-RU
System Root: WINDOWS
Major Version: 6
Minor Version: 1
Build: 7601
Service Pack Build: 17514
Service Pack Level: 1
Flags: HomePremium
WIMBoot compatible: no

Index: 3
Name: Windows 7 PROFESSIONAL
Description: Windows 7 PROFESSIONAL
Display Name: Windows 7 Профессиональная
Display Description: Windows 7 Профессиональная
Directory Count: 14314
File Count: 68104
Total Bytes: 11945156754
Hard Link Bytes: 4667733545
Creation Time: Вс ноя 21 04:39:25 2010 UTC
Last Modification Time: Вс ноя 21 13:16:43 2010 UTC
Architecture: x86_64
Product Name: Microsoft® Windows® Operating System
Edition ID: Professional
Installation Type: Client
HAL: acpiapic
Product Type: WinNT
Product Suite: Terminal Server
Languages: ru-RU
Default Language: ru-RU
System Root: WINDOWS
Major Version: 6
Minor Version: 1
Build: 7601
Service Pack Build: 17514
Service Pack Level: 1
Flags: Professional
WIMBoot compatible: no

Index: 4
Name: Windows 7 ULTIMATE
Description: Windows 7 ULTIMATE
Display Name: Windows 7 Максимальная
Display Description: Windows 7 Максимальная
Directory Count: 14350
File Count: 68286
Total Bytes: 12107983977
Hard Link Bytes: 4828481537
Creation Time: Вс ноя 21 04:39:25 2010 UTC
Last Modification Time: Вс ноя 21 13:17:22 2010 UTC
Architecture: x86_64
Product Name: Microsoft® Windows® Operating System
Edition ID: Ultimate
Installation Type: Client
HAL: acpiapic
Product Type: WinNT
Product Suite: Terminal Server
Languages: ru-RU
Default Language: ru-RU
System Root: WINDOWS
Major Version: 6
Minor Version: 1
Build: 7601
Service Pack Build: 17514
Service Pack Level: 1
Flags: Ultimate
WIMBoot compatible: no



[maisvendoo@arch-host win7-efi]$ mkdir /tmp/wim
[maisvendoo@arch-host win7-efi]$ wimlib-imagex mount ~/iso/sources/install.wim 4 /tmp/wim
[maisvendoo@arch-host win7-efi]$ ls /tmp/wim -l
итого 0
lrwxrwxrwx 1 maisvendoo users 0 июл 14  2009 'Documents and Settings' -> /tmp/wim/Users
drwxrwxrwx 1 maisvendoo users 0 июл 14  2009 PerfLogs
drwxrwxrwx 1 maisvendoo users 0 июл 14  2009 ProgramData
drwxrwxrwx 1 maisvendoo users 0 ноя 21  2010 'Program Files'
drwxrwxrwx 1 maisvendoo users 0 июл 14  2009 'Program Files (x86)'
drwxrwxrwx 1 maisvendoo users 0 ноя 21  2010 '$Recycle.Bin'
drwxrwxrwx 1 maisvendoo users 0 ноя 21  2010 Users
drwxrwxrwx 1 maisvendoo users 0 ноя 21  2010 Windows
Если вы уже используете командную строку инсталлятора, то wim-образ обычно распаковывается
Dism /apply-image /imagefile:install.wim /index:1 /ApplyDir:C:\

Загрузчик устанавливается после распаковки
c:\Windows\System32\bcdboot C:\Windows /l ru-RU /s F: /F UEFI
Загрузчик устанавливается после распаковки

Вы неверно меня поняли. Мне как не нужна установка загрузчика средствами инсталлятора.

Про DSIM я в курсе
Я кстати так и делал — распаковывал install.wim в C:\newwin под установочным диском через консоль по Shift+F10, а потом грузился с линуксового Live-CD, монтировал том через ntfs-3g и переносил все содержимое в c:\oldwin, а c:\newwin — в корень C:. Атрибуты сохранялись, винда грузилась.
Есть ещё wimlib.net
Оно вроде корректно поддерживает всё вышеперечисленное.
Вроде, должен нормально распаковывать, по крайней мере, интеграция с ntfs-3g заявлена. А сам ntfs-3g поддерживает все атрибуты ntfs, даже сжатие (но нужен ключик для монтирования). Вот здесь есть архив tools.zip, а в нем файлики ntfscp.sh и ntfscp2.sh — ими можно скопировать винду с одного тома на другой со всеми атрибутами. Только осторожнее со вторым файлом — ключи rsync в нем удаляют в целевой папке все файлы, которых нет на исходном томе.
Как-то всё слишком сложно. Есть ведь способ проще. EasyBCD.
Есть. Равно как есть Visual BCD, BootICE и прочие редакторы конфигурации bootmgr. Как это помогает против затирания MBR и перезаписи NVRAM штатным инсталлятором win?
grub4dos не работает с GPT, насколько мне известно
Загрузочная флешка прикрасно работает в режиме uefi.
И опять таки — как grub4dos решает проблему с перезаписью MBR?
Поставил grub4dos настроил меню загрузки какое хочешь и все работает.
С любого диска.
Зачем бороться с BCD, но и там можно все настроить.
У меня грузится Windows 10,Windows 7, Opensuse, flashcd и т.д.
Поставил grub4dos настроил меню загрузки какое хочешь и все работает.


Ещё раз — grub4dos не работает с разметкой GPT необходимой для запуска Windows на платах с EFI. Как не настраивай. Не верите, смотрите исходники

И ещё раз повторю свой вопрос — как grub4dos позволит избежать перезаписи MBR, происходящей при штатной установке Windows?
Загрузочная флешка прикрасно работает в режиме uefi.

Не надо путать загрузочную флешку с установленной на HDD системой
А у меня нет UEFI, и GPT тоже нет. Зато прекрасно работает Win7 + Linux в дуалбуте через Grub2.
Кстати, если говорить о Windows 10, то ее инсталлятор при разметке диска создает еще и раздел восстановления.

Это тоже несложно сделать вручную. Нужно просто создать еще один раздел (500 Мб, NTFS), на нем создать папку Recovery\WindowsRE\, скопировать туда WinRE.wim (он находится в install.wim в папке Windows\System32\Recovery\) и зарегистрировать при помощи команды вида: C:\Windows\System32\Reagentc /setreimage /path R:\Recovery\WindowsRE /target C:\Windows.

В результате получим работающий Push-button reset. Впрочем, это конечно опционально.
Спасибо за статью, познавательно.
Может кто-то и напишет аналог bcdedit, ведь драйвера ntfs-3g же написали кому было нужно.
А почему нельзя сразу из live линукса (или где ты там делал загрузочную флешку) сразу скопировать дистрибутив на диск C: (то есть в ntfs раздел)? и затем оттуда же скопировать что надо в EFI раздел? Зачем мы загружаемся с флешки?
Или я чего то недопонял.

навскидку — install.wim больше 4гб, а EFI-раздел может быть максимум FAT32

Only those users with full accounts are able to leave comments. Log in, please.