- IgorKa — Информационный ресурс
- Grub — загрузка Windows со второго жесткого диска
- Настройка запуска меню загрузчика GRUB при установке Linux с Windows на один компьютер с таблицей разделов GPT
- Ручная установка Windows 7/8/8.1/10 в систему с загрузчиком GRUB2
- 1. Создаем загрузочную флешку
- 2. О развертывании Windows из WIM-образа и капризном нраве Sysprep
- 3. Распаковка системы
- 4. Установка и настройка загрузчика
- 5. Скрестим пальцы да вознесем молитвы тебе, о Великий и Ужасный Sysprep.
- 6. Настраиваем GRUB
- Заключение
- Читают сейчас
- Редакторский дайджест
- Похожие публикации
- Установка Windows 98 на современный ПК
- Инструкция по установке Windows 10 на Raspberry Pi 4 от Tom’s Hardware
- Установка и правильная настройка Docker на Windows Subsystem Linux (WSL)
- Минуточку внимания
- Комментарии 45
IgorKa — Информационный ресурс
Немного обо всем и все о немногом, или практический опыт системного администратора.
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
---|---|---|---|---|---|---|
« Июль | Сен » | |||||
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Grub — загрузка Windows со второго жесткого диска
Имеем следующую ситуацию. Есть два жестких диска: диск А, на котором установлены операционные системы Windows и диск Б, на который будет устанавливаться Ubuntu. Если вы только начинаете знакомство с Линуксом, то возможно как и я когда-то поступите следующим образом: отключите диск А (для собственного успокоения, чтобы не напартачить случайно с его разделами) и оставите только диск Б. После установки Ubuntu можно подключить диск А. В моем случае диск Б будет первым диском (с него будет происходить начальная загрузка), диск А будет вторым диском в системе. При таком расположении будет загружаться загрузчик Ubuntu — GRUB. Что такое загрузчик и GRUB в частности я здесь описывать не буду — информации в интернете предостаточно (например, в той же википедии). После загрузки загрузчика можно выбрать какую операционную систему загружать, но сейчас у нас есть возможность загрузить только Ubuntu (GRUB пока ничего не знает о втором диске с Windows). Нужно ему (загрузчику) об этом “сказать”. Загружаю Ubuntu, открываю терминал (Alt+F2, команда gnome-terminal) и открываю для редактирования файл menu.lst:
sudo nano /boot/grub/menu.lst
В файле menu.lst есть пример для загрузки операционной системы Windows:
# title Windows 95/98/NT/2000
# root (hd0,0)
# makeactive
# chainloader +1
Попробую вставить его в конец файла (естественно убрав знаки комментария #). Файл menu.lst будет выглядеть так:
title Ubuntu 9.04, kernel 2.6.28-14-generic
uuid 4bb76281-c423-4983-8957-82f0b03f1009
kernel /boot/vmlinuz-2.6.28-14-generic root=UUID=4bb76281-c423-4983-8957-82f0b03f1009 ro quiet splash
initrd /boot/initrd.img-2.6.28-14-generic
quiet
title Ubuntu 9.04, kernel 2.6.28-14-generic (recovery mode)
uuid 4bb76281-c423-4983-8957-82f0b03f1009
kernel /boot/vmlinuz-2.6.28-14-generic root=UUID=4bb76281-c423-4983-8957-82f0b03f1009 ro single
initrd /boot/initrd.img-2.6.28-14-generic
title Ubuntu 9.04, memtest86+
uuid 4bb76281-c423-4983-8957-82f0b03f1009
kernel /boot/memtest86+.bin
quiet
### END DEBIAN AUTOMAGIC KERNELS LIST
# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other operating systems:
root
title Windows 95/98/NT/2000
root (hd0,0)
makeactive
chainloader +1
Сохраняю файл menu.lst, перегружаю Ubuntu и пробую загрузить Windows, выбрав пункт Windows 95/98/NT/2000. Но ничего не получается, вижу следующую ошибку:
Error 13: Invalid or unsupported executable format
Press any key to contine…
Ну конечно! Ведь диск с Windows не hd0, а hd1 (он же второй в системе)! Поправляю строчку root (hd0,0) на root (hd1,0). И снова перегружаю систему. Ошибка… Обращаюсь к первоисточнику — и нахожу команду map. Дело в том, что Windows умеет загружаться только с первого диска, поэтому с помощью команды map нужно поменять диски местами (как бы виртуально). Открываю снова файл menu.lst и привожу раздел загрузки Windows к следующему виду:
title Windows 95/98/NT/2000
root (hd1,0)
makeactive
chainloader +1
map (hd0) (hd1)
map (hd1) (hd0)
Настройка запуска меню загрузчика GRUB при установке Linux с Windows на один компьютер с таблицей разделов GPT
Привет, Хабр! Сегодня мы рассмотрим ситуацию, когда при двойной установке Linux & Windows загрузчик GRUB не стартует, давая возможность выбрать ОС, а автоматически загружается Windows. Немного теории:
GRUB (GRand Unified Bootloader) — программа-загрузчик операционных систем.
GRUB может загрузить любую совместимую с ней операционную систему. Среди них: Linux, FreeBSD, Solaris и многие другие. Кроме того, GRUB умеет по цепочке передавать управление другому загрузчику, что позволяет ему загружать Windows (через загрузчик NTLDR), MS-DOS, OS/2 и другие системы.
Значит с теорией мы немного разобрались (думаю этого будет достаточно), теперь же рассмотрим, какие бывают подводные камни, при установке Dual Boot Windows и Linux на одном компьютере.
Эксперимент производился на рабочей станции со следующими характеристиками:
Base Board Information
- Manufacturer: Acer
- Product Name: Aspire XC600
Memory Device
- Size: 4096 MB
- Type: DDR3
- Speed: 1333 MHz
- Manufacturer: Kingston
- Rank: 2
HDD
- product: ST500DM002-1BD14
- vendor: Seagate
- physical id: 0.0.0
- bus info: scsi@0:0.0.0
- logical name: /dev/sda
- size: 465GiB (500GB)
- capabilities: gpt-1.00 partitioned partitioned:gpt
Доказано, что проблем с установкой Debian 8.6 Jessie совместно с Windows 10 не обнаружено. Debian корректно прописывается в автозагрузке, GRUB запускается без ошибок и две ОС также работают нормально.
Но, как показала практика, не со всеми дистрибутивами такое происходит. При установке Ubuntu 16.04.1 вместо Debian на ту же рабочую станцию вылез первый подводный камень — GRUB не стартовал, и Windows 10 автоматом шла на загрузку.
Решение проблемы было найдено спустя недели три-четыре (тогда уже надоело считать, сколько времени убито на решение проблемы). Оно оказалось неожиданным, но в тоже время вся система заработала. Значит, если вы столкнулись с такой же проблемой, приведенная ниже инструкция может вам пригодится и сэкономить кучу времени.
Важно! До начала выполнения инструкции нужно подготовить LiveCD с дистрибутивом Linux Mint — все операции мы будем выполнять на нем (я выбрал этот дистрибутив из-за того, что на него спокойно можно установить Midnight Commander, что сложно сделать на LiveCD с Ubuntu, так мы получаем больше пространства для маневров). Также стоит заметить, что команда из под консоли update-grub вам не поможет, так как она рассчитана на случай, когда GRUB запускается, но не видит другие ОС кроме Линукса. Также рекомендую создавать резервные копии файлов/каталогов, над которыми вы осуществляете хоть малейшие изменения.
- Через терминал, с правами root смонтировать раздел с EFI в папку /mnt. В моем случае, это была команда mount /dev/sda2 /mnt.
Введите команду sudo -s и подтвердите пароль (он пустой по умолчанию) для последующих операций (многие советуют не делать этого, а вводить sudo и команду для выполнения — я поддерживаю это мнение, но инструкция рассчитана на опытных пользователей системы Linux, которые понимаю, что делают все на свой страх и риск).
Запустить Midnight Commander командой mc.
Найти в файловой системе следующий каталог: EFI в папке /mnt.
Переименовать каталог Microsoft во что-нибудь другое, например в Microsoft2.
Создаем новый каталог с именем Microsoft.
Заходим в только что созданный каталог Microsoft и частично создаем внутри его иерархию папок аналогичную старому Microsoft (тому, что переименовали). В моем случае он имел такую структуру папок: /boot/, затем куча папок и файл bootmgfw.efi рядом с ними. Нужно воссоздать структуру папок ровно до этого файла. Т.е. всё, что лежит рядом с ним — не нужно, а всё, что идет до него (т.е. родительские папки, соседние с ними тоже не нужны) воссоздаем в нашей новой папке Microsoft. В моем случае понадобилось создать только папку /boot, итоговый путь до нового каталога вышел таким: /EFI/Microsoft/boot. Можно просто скопировать все папки и файлы — проверено, это работает и можно не создавать все вручную.
Находим в каталоге из шага 6 папку с именем нашего дистрибутива Линукса, в нашем случае это Ubuntu. Копируем (оригиналы файлов и папку ubuntu на всякий случай оставляем, не помешают) все файлы из данной в папки в итоговый каталог, созданный на предыдущем шаге: /EFI/Microsoft/boot.
В получившейся файловой системе находим файл grubx.efi или grubx64.efi (будет только один из них: в зависимости от разрядности установленного Линукса). Переименовываем его в bootmgfw.efi.
Также, в этом файле вы можете поменять названия в списке, который выводит GRUB. Например, вместо openSUSE Leap 42.2 27.01 в части кода:
Написать openSUSE The best choice!:):
Хоть мелочь, а приятно! Остальное в коде советую не трогать.
Если трудно разобраться с управлением Midnight Commander (в этом нет ничего страшного, у меня тоже в первый раз были проблемы с этой программой), все операции можно выполнить в файловом менеджере Nautilus (или в другом, не суть важно), но изначально запустив его под правами пользователя root.
После этого идем на перезагрузку и радуемся результату. Но, как оказывается, такая проблема есть и у дистрибутива OpenSUSE Leap 42.2. Как показала практика, если на компьютере установлен дистрибутив OpenSUSE с Windows 10, то приведенная выше инструкция не поможет. Точнее, она поможет, но только ее нужно дополнить. После выполнения основной части выполняем следующие шаги:
- После выполнения всех операций заходим в папку /EFI/opensuse/x86_64-efi/ (название итоговой папки x86_64-efi может быть другим в зависимости от архитектуры ПК)
- Копируем файл grub.efi (если у вас включена опция Secure Boot, там будет еще файл shim.efi, тогда советую скопировать их вместе)
- Заходим в папку /EFI/Boot и удаляем все файлы, которые там есть (при обновлении загрузчика они снова появятся, но в этом нет ничего страшного)
- Вставляем файл (или файлы), которые мы скопировали и спокойно идем на перезагрузку.
Вот и вся инструкция. Думаю, кому-то пригодится…
P.S. Если же у вас все хорошо, GRUB с OpenSUSE запускается, но не видит Windows, радуйтесь — проблема решается всего одной командной: grub2-mkconfig -o /boot/grub2/grub.cfg, а если у вас стоит Ubuntu, нужно выполнить просто update-grub.
Для тех же, кого заинтересовала данная тема, рекомендую прочитать статью: «Начальный загрузчик GRUB 2 — полное руководство».
Ручная установка Windows 7/8/8.1/10 в систему с загрузчиком GRUB2
Наверняка почти у каждого пользователя ОС Linux и ОС Windows, а я имею в виду именно тех, у кого, в силу ряда причин, установлены обе системы, время от времени возникал вопрос: «А нельзя ли, черт возьми, придумать способ, с помощью которого можно было бы устанавливать эти системы в произвольном порядке? Без порчи настроек загрузчика?» Ведь если ставим сначала Windows а потом Linux всё хорошо — линуксовый загрузчик (например GRUB) обычно подхватывает bootmgr. Если ставить в обратном порядке то увы. Даже с использованием GPT + EFI. В случае с EFI нет опасности перезаписи MBR, зато таки есть один нюанс, который лично мне не нравится — установщик Windows в режиме EFI хоть и не перезаписывает сектора диска своим кодом, но зато переопределяет NVRAM, подсовывая туда путь к своему загрузчику. Так что функционал GBUB всё равно приходится восстанавливать. В настройках штатного установщика нет опций для кастомизации процесса установки загрузчика. А что если… не использовать стандартный установщик?! Ну, или почти не использовать…
И такой способ есть. И основан он на технологии установки Windows, которую мы имеем в её дистрибутивах начиная с «семерки». Способ работает для случая Windows версий 7/8/8.1/10, как в случае с MBR + BIOS системы, так в случае с EFI + GPT. Установить систему можно как в раздел HDD, так и на VHD. При этом функционал установщика нужен нам в общем-то для запуска программы настройки BCD-хранилища конфигурации загрузчика. Вместо установочного диска можно использовать загрузочный носитель на основе WinPE. Если бы утилитам bcdedit.exe и BootICE была *nix альтернатива, весь процесс развертывания системы можно было бы вообще выполнить в среде Linux.
Предположим у вас имеется компьютер, с установленным на HDD загрузчиком GRUB2 и свободным разделом, отформатированном в NTFS. Устанавливать будем Windows 7 Ultimate SP1. Для этого потребуются:
- Установочный диск с виндой
- Чистая флешка объемом >= 4 Gb
- Архиватор 7-zip соответствующей разрядности
- Утилита BootICE, желательна, но совершенно не обязательна, можно обойтись и bcdedit.exe, входящим в дистрибутив винды
1. Создаем загрузочную флешку
Дело в том, что семерка не хочет устанавливаться в EFI-режиме с DVD. Вот не хочет и всё. К тому же, на установочном носителе нам понадобятся дополнительные утилиты, которые туда надо поместить, а в случае с флешкой это несколько проще, чем в случае с DVD.
Монтируем установочный образ с виндой, допустим он лежит у нас в /home/$USER/install с именем win7-setup.iso
/iso
$ sudo mount -t udf
Вставляем флешку в USB-порт. Допустим, она получила имя устройства /dev/sdb. Выполним её разметку в формате MBR
$ sudo fdisk /dev/sdb
Создем на флешке один единственный раздел. После чего форматируем её в FAT
$ sudo mkfs.vfat /dev/sdb1
Копируем содержимое дистрибутива винды на флешку
$ mkdir /tmp/flash
$ sudo mount /dev/sdb1 /tmp/flash -o uid=1000,gid=100,fmask=113,dmask=002
$ cp -rv
Скопируем конфиги EFI-загрузчика на уровень выше
Теперь нам нужен EFI-загрузчик винды. Его придется выцарапать из дистрибутива. Это легко сделать с помощью архиватора 7-zip, который имеется в репозитории extra/p7zip. Все содержимое дистрибутива винды сжато в образ wim-формата находится на установочном DVD в файле source/install.wim. Обычно этот образ имеет следующую структуру
В каталогах с именами в виде цифр 1-4 находятся разные редакции винды. Чтобы выбрать нужную надо посмотреть внутрь файла с именем [1].xml. Распакуем его в /tmp
и посмотрим с помощью какого-нибудь браузера, ибо в текстовом редакторе он выглядит ужасно, а специального редактора xml у меня в наличии не оказалось. Каждую редакцию винды описывают структурой вида
где нода EDITIONID указывает на редакцию. Параметр INDEX — как раз номер каталога, в котором валяется нужная редакция. Итак, мне нужна Ultimate, а это индекс 4. Соответсвенно выковыриваем загрузчик оттуда
Оки, теперь перенесем полученный файл на флешку
$ mv bootmgfwm.efi /tmp/flash/efi/boot/bootx64.efi
Порядок, теперь у нас в наличии загрузочная флешка для установки винды. Теперь добавим на неё необходимые для установки утилиты — виндозную версию архиватора 7-zip и утилиту BootICE. Архиватор качаем с официального сайта и распаковываем на флешку в каталог utils
$ mkdir -p /tmp/flash/utils/7-Zip/
$ cd /tmp/flash/utils/7-Zip/
$ 7z x
Туда же помещаем и bootice
Уф, всё, отмонтируем флешку
$ cd
$ sudo umount /tmp/flash/
Перезагружаемся. Если у вас система с EFI и съемные диски стоят в приоритете загрузки, то компьютер загрузится в установку винды автоматом. Если же появилось таки меню GRUB, ничего страшного, жмем «С» и в консоли набиваем команду exit. Вас вывалит в меню EFI, где выбираем загрузку с флешки. Если же ваша система с BIOS, то тут чуть сложнее, ибо мы не стали заморачиваться с настройкой MBR на флешке. Тогда в консоли GRUB даем команду ls — появится список всех дисков и разделов. Находим нашу флешку, она отобразится в виде (hdX, msdosY), где X, Y — номер диска и раздела соответственно. Теперь вбиваем в консоли команды
grub> set root=hdX,Y
grub> ntldr /bootmgr
grub> boot
Начнется загрузка установщика винды. Он то загрузится, но нам он и не нужен — мы всё будем делать руками. Чтобы стало понятно, что к чему, придется рассмотреть некоторую теорию
2. О развертывании Windows из WIM-образа и капризном нраве Sysprep
Начиная с семерки установка Windows заключается в следующих этапах
- Разметка диска в соответствии с архитектурой системы инициализации оборудования. Если BIOS — установщик размечает диск в MBR. При наличии активной EFI — разметка будет GPT.
- Распаковка образа install.wim в выбранный для установки раздел
- Установка загрузчика и перезагрузка
- Инициализация оборудования. Ребут
- Локализация, ввод ключа, окончание настройки системы
Это стандартный путь. У нас же диск уже размечен. И нам не нужна автоматическая установка загрузчика — мы поставим его вручную. Разметка диска должна удовлетворять следующим требованиям
- Если система с EFI на диске должен присутствовать FAT-раздел с типом 0xEF. Если у нас уже установлен линукс с EFI-загрузчиком, то таковой раздел уже имеется
- Если система с BIOS, то раздел, в котором располагается загрузчик, а это наш NTFS-раздел должен быть активным. Это очень важно! Почему, будет объяснено ниже.
Таким образом, перед распаковкой системы мы должны убедится в том, что перечисленные требования выполнены. После того, как мы распакуем все файл системы и установим загрузчик, система перезагрузиться. После перезагрузки запустится утилита Sysprep, среди прочего настраивающая оборудования и проверяющая конфигурацию системы. Так вот, если в режиме EFI Sysprep не найдет загрузчик и его конфигурацию в EFI-разделе по пути EFI/microsof/boot, а в системе с BIOS каталог \Boot и bootmgr будут лежать в неактивном разделе, то Sysprep завершится с ошибкой sysprep generalize error, а в лог, расположенный по адресу \Windows\Panther\sysperr.log выплюнет что-то похожее на
2015-03-11 16:55:42, Error [0x0e00b3] TOOL Sysprep_Specialize_Bcd: There was an error opening the system store. Status=[0xC0000098]
2015-03-11 16:55:42, Error [0x0f0082] SYSPRP LaunchDll:Failure occurred while executing ‘c:\Windows\System32\spbcd.dll,Sysprep_Specialize_Bcd’, returned error code 1006
2015-03-11 16:55:42, Error [0x060435] IBS Callback_Specialize: An error occurred while either deciding if we need to specialize or while specializing; dwRet = 0x3ee
и никакие танцы с бубном нам уже не помогут. Винда требует, чтобы загручик лежал в загрузочном разделе и точка. В случае с BIOS просто делаем активным раздел NTFS в котором лежит винда и туда же кладем и загрузчик. Грузится будем всё равно с помощью GRUB, а ему все равно, какой раздел будет активным. В случае с EFI загрузчик придется положить рядом с GRUB в EFI-разделе.
3. Распаковка системы
Итак, определимся, куда мы хотим ставить винду. Можно поставить в NTFS-раздел, а можно и в VHD-диск. Это уж как вам хочется. Я буду показывать процесс на примере с виртуальной машиной EFI, имеющей следующую разметку
The protective MBR’s 0xEE partition is oversized! Auto-repairing.
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): p
Disk /dev/loop1: 104857600 sectors, 50.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 0D217C93-6699-435A-9BBB-61DFAA6F30B7
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 104857566
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 206847 100.0 MiB EF00 EFI system partition
2 206848 104855551 49.9 GiB 0700 Basic data partition
На этом диске нет линукса, установлен только GRUB в раздел с EFI. Если мы ставим систему непосредственно в NTFS-раздел, то загружаемся с флешки, дожидаемся запуска программы установки и жмем Shift + F10, чтобы вызвать консоль. Запускаем утилиту diskpart и смотрим список подключенных томов
X:\sources> diskpart
DISKPART> list vol
Видим, что флешка (объемом 8 Гб) подключена как диск C:, а раздел для установки вовсе не смонтирован. Непорядок. Делаем так
DISKPART> sel vol 3
DISKPART> remove
DISKPART> assign letter=E
DISKPART> sel vol 1
DISKPART> assign letter=C
DISKPART> list vol
DISKPART> sel vol 2
DISKPART> assign letter=F
Вот теперь порядок, диск на который будем ставить винду стал диском C:, флешка — диском E:, а EFI-раздел — диском F:
Если же мы хотим поставить систему на VHD, то делаем так
DISKPART> sel vol 3
DISKPART> remove
DISKPART> assign letter=E
DISKPART> sel vol 1
DISKPART> assign letter=G
DISKPART> exit
Для порядка создаем каталог с образами
X:\sources> md G:\vhd
X:\sources> diskpart
Создаем виртуальный диск, создаем на нем разметку GPT и раздел NTFS и монтируем его к C:
DISKPART> create vdisk file=»G:\vhd\win7.vhd» maximum=25600 type=fixed
DISKPART> attach vdisk
DISKPART> clean
DISKPART> convert gpt
DISKPART> create part primary
DISKPART> format fs=ntfs quick
DISKPART> assign letter=C
EFI-раздел монтируем к F:
DISKPART> sel vol 2
DISKPART> assign letter=F
Получаем такую картину
Очень важно! Убеждаемся в том, что EFI-раздел отформатирован именно в FAT, а не в FAT32. Иначе Sysprep не простит нам этой ошибки. Если на компе уже есть линукс, то настройки будут верны.
Теперь распаковываем дистрибутив на диск C:
X:\sources> E:
E:\> utils\7-Zip\7zFM.exe
Откроется GUI архиватора 7-zip. В нем открываем каталог E:\sources, находим там файл install.wim
Правой кнопкой на этом файле вызываем контектстное меню и переходим по 7-zip -> Открыть архив. Появится содержимое образа.
Лезем в папку 4 — там лежит Ultimate
Выделяем всё Ctrl + A и жмем кнопку «Извлечь». Появится окно, где нам предложат указать путь распаковки
Указываем корень диска C: и жмем ОК.
Ну и теперь, как говорится: «Откиньтесь на спинку кресла и. »
4. Установка и настройка загрузчика
Итак, после некоторого время ожидания распаковка окончена. И вот тут, вот в этом месте винда обчно делает бяку, а именно портит MBR или перенастраивает NVRAM. Но мы не дадим ей этого сделать — мы установим загрузчик вручную.
В случае с EFI, переходим на раздел EFI, смонтированный к F: и создаем необходимые пути и копируем файлы загрузчика
E:\> F:
F:\> mkdir EFI\microsoft\boot
F:\> xcopy C:\Windows\Boot\EFI\* F:\EFI\microsoft\boot /s /e
F:\> mkdir EFI\microsoft\boot\Fonts
F:\> xcopy C:\Windows\Boot\Fonts\* F:\EFI\microsoft\boot\Fonts\ /s /e
F:\> copy C:\Windows\System32\config\BCD-Template F:\EFI\microsoft\boot\BCD
Отлично, загрузчик скопирован. Теперь настроим его
Открываем файл F:\EFI\Microsoft\Boot\BCD. В случае установки на раздел, его параметры задаются так
Если же мы устанавливали систему на VHD, то настройки будут такими
Важно! Имя вторичного загрузчика для EFI-системы winload.efi, для BIOS-системы — winload.exe.
В случае, если мы устанавливаем BIOS-систему установка загрузчика будет выглядеть так
F:\> mkdir C:\Boot
F:\> xcopy C:\Windows\Boot\PCAT\* C:\Boot /s /e
F:\> mkdir C:\Boot\Fonts
F:\> xcopy C:\Windows\Boot\Fonts\* C:\Boot\Fonts /s /e
F:\> copy C:\Boot\bootmgr C:\bootmgr
F:\> copy C:\Windows\System32\config\BCD-Template C:\Boot\BCD
Важно! Раздел, смонтированный к C: (там где размещен загрузчик) обязан быть активным! Убедитесь в этом перед перезагрузкой!
Настройку выполняем так же точно, используя BootICE.
Ну, вроде все. Закрываем все окна и идем в ребут. Флешку можно вытащить из компа.
5. Скрестим пальцы да вознесем молитвы тебе, о Великий и Ужасный Sysprep.
GRUB у нас еще не настроен пункта для винды в меню нет. Как только появится меню GRUB жмем «C». В консоли набираем
grub> set root=hdX,Y
grub> chainloader /EFI/Microsoft/Boot/bootmgfw.efi
grub> boot
X, Y — соответственно диск и раздел, где лежит загрузчик. Это в случае EFI. В случае с BIOS делаем так
grub> set root=hdX,Y
grub> ntldr /bootmgr
grub> boot
X, Y — диск и раздел с NTFS. Там где распакована винда и лежит её загрузчик.
В режиме EFI вместо логотипа винды я увидел черный экран, так как не нашел в дистрибутиве билиотеки bootres.dll, которую надо поместить в папку EFI\Mictosoft\Boot\Resourses. В случае с BIOS всё в порядке — знакомая эмблема «семерки». А потом в обоих случаях увидим это
Это работает Sysprep. На 57% моргнет экран — настраивается видяха. И если мы все сделали верно, то надпись «Применение параметров системы» повисит довольно долго, потом система сообщит, что установка будет продолжена после перезагрузки. Если мы где-то напортачили с установкой загрузчика — неправильный EFI раздел или неактивный NTFS, то тогда будет ошибка 🙁 Но мы молодцы и у нас все получится, и после очередной перезагрузки мы увидим это
а потом, наконец вот это
Дальше все как при обычной, штатной установке.
6. Настраиваем GRUB
Обратили внимание на то, что каждый раз мы грузим систему из консоли GRUB руками. Это очень хорошо — значит ни MBR ни NVRAM не перезаписаны коварным майкрософтом. Настало время грузится в арч и добавить в меню GRUB новый пункт
menuentry ‘Windows 7 Ultimate SP1 (EFI)’ <
set root=hdX,Y
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
>
в случае EFI. Или
menuentry ‘Windows 7 Ultimate SP1’ <
set root=hdX,Y
ntldr /bootmgr
>
в случае BIOS. Применяем настройки GRUB и перезагружаемся и видем систему в пункте меню загрузки
после выбора которого получаем загруженную Windows
Заключение
Упреждая гнев профессиональных win-админов, скажу сразу — я знаю о DISM. Именно информация об этой системе и привела меня к описанному решению. Цель была одна — выяснить сколько нужно возможностей собственно Windows для установки Windows.
Оказалось вот что — для установки Windows её среда необходима только для одного — настройки BCD-хранилища. Всё. Остальное можно сделать из среды любой другой операционной системы.
Если написать аналог bcdedit.exe под Linux, то установить Windows можно будет с линуксового Live-носителя.
Читают сейчас
Редакторский дайджест
Присылаем лучшие статьи раз в месяц
Скоро на этот адрес придет письмо. Подтвердите подписку, если всё в силе.
Похожие публикации
Установка Windows 98 на современный ПК
Инструкция по установке Windows 10 на Raspberry Pi 4 от Tom’s Hardware
Установка и правильная настройка Docker на Windows Subsystem Linux (WSL)
AdBlock похитил этот баннер, но баннеры не зубы — отрастут
Минуточку внимания
Комментарии 45
Кроме бухов из-за привязки ко всяким 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 дает ответ аналогичный
Или запустить на виртуалке, но дать доступ к реальному диску?
Так работает, если ставить на VHD под виртуалкой. Я именно так и делал.
А вот в случае с использованием Sysprep может и не получится
Можно ли их запустить на виртуалке, а потом переписать нужные файлы на реальный диск?
загрузочную флешку можно создать из Linux
Надо поставить GRUB на флешку и написать в конфиге
set root=hdX,Y
ntldr /bootmgr
GRUB умеет грузить винду не через chainloader, а напрямую, изображая из себя загрузчик
Впрочем, в статье это есть.
Надо поставить GRUB на флешку и написать в конфиге
Да c GRUB проще всего. Вот инструкция
1. Присваиваем разделу на флешке метку
2. Монтируем её и устанавливаем GRUB
3. Конфигурируем GRUB, причем корень лучше установить по метке тома
/tmp/flash/grub/grub/grub.cfg
menuentry ‘Windows 7 Setup’ <
search —label SETUP —set root
ntldr /bootmgr
>
Всё, втыкаем, в биосе выставляем приоритет загрузки и вперед
Да, чтобы не появлялось меню GRUB, ставим в начале конфига
Опробовал, работает. Информация о 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