Системное администрирование
Рекомендация: подборка платных и бесплатных курсов монтажа видео — https://katalog-kursov.ru/
Наверняка почти у каждого пользователя ОС 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
$ mkdir ~/iso
$ sudo mount -t udf ~/install/win7-setup.iso ~/iso
Вставляем флешку в 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 ~/iso/* /tmp/flash/
Скопируем конфиги EFI-загрузчика на уровень выше
$ cp -rv ~/tmp/flash/efi/microsoft/* ~/tmp/flash/efi/
Теперь нам нужен EFI-загрузчик винды. Его придется выцарапать из дистрибутива. Это легко сделать с помощью архиватора 7-zip, который имеется в репозитории extra/p7zip. Все содержимое дистрибутива винды сжато в образ wim-формата находится на установочном DVD в файле source/install.wim. Обычно этот образ имеет следующую структуру
В каталогах с именами в виде цифр 1-4 находятся разные редакции винды. Чтобы выбрать нужную надо посмотреть внутрь файла с именем [1].xml. Распакуем его в /tmp
$ cd /tmp
$ 7z e ~/iso/sources/install.wim [1].xml
и посмотрим с помощью какого-нибудь браузера, ибо в текстовом редакторе он выглядит ужасно, а специального редактора xml у меня в наличии не оказалось. Каждую редакцию винды описывают структурой вида
где нода EDITIONID указывает на редакцию. Параметр INDEX — как раз номер каталога, в котором валяется нужная редакция. Итак, мне нужна Ultimate, а это индекс 4. Соответсвенно выковыриваем загрузчик оттуда
$ 7z e ~/iso/sources/install.wim 4/Windows/Boot/EFI/bootmgfw.efi
Оки, теперь перенесем полученный файл на флешку
$ 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 ~/downloads/7z1602-x64.exe
Туда же помещаем и bootice
$ cp ~/install/BOOTICEx64.exe /tmp/flash/utils
Уф, всё, отмонтируем флешку
$ 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, а в лог, расположенный по адресу WindowsPanthersysperr.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:WindowsSystem32spbcd.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:vhdwin7.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:> utils7-Zip7zFM.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 EFImicrosoftboot
F:> xcopy C:WindowsBootEFI* F:EFImicrosoftboot /s /e
F:> mkdir EFImicrosoftbootFonts
F:> xcopy C:WindowsBootFonts* F:EFImicrosoftbootFonts /s /e
F:> copy C:WindowsSystem32configBCD-Template F:EFImicrosoftbootBCD
Отлично, загрузчик скопирован. Теперь настроим его
F:> E:utilsBOOTICEx64.exe
Открываем файл F:EFIMicrosoftBootBCD. В случае установки на раздел, его параметры задаются так
Если же мы устанавливали систему на VHD, то настройки будут такими
Важно! Имя вторичного загрузчика для EFI-системы winload.efi, для BIOS-системы — winload.exe.
В случае, если мы устанавливаем BIOS-систему установка загрузчика будет выглядеть так
F:> mkdir C:Boot
F:> xcopy C:WindowsBootPCAT* C:Boot /s /e
F:> mkdir C:BootFonts
F:> xcopy C:WindowsBootFonts* C:BootFonts /s /e
F:> copy C:Bootbootmgr C:bootmgr
F:> copy C:WindowsSystem32configBCD-Template C:BootBCD
Важно! Раздел, смонтированный к 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, которую надо поместить в папку EFIMictosoftBootResourses. В случае с 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-носителя.
Установка из iso образа Windows 7, Windows 8 с USB или внешнего жесткого диска HDD, используя загрузчик Grub4dos.
Установка Windows 7или Windows 8 с USB или внешнего жесткого диска HDD особых проблем не вызывает, при условии, что вам нужно установить только какую либо определенную систему, а не иметь полный комплект установочных дистрибутивов.
Для этого достаточно сделать загрузочную флешку или внешний HDD , извлечь все файлы из образа архиватором в корень вашего загрузочного устройства, а в menu.lst вставить строки:
title Установка Windows 7 — 8
map —unmap=0:0xff
map —unhook
root (hd0,0)
chainloader /bootmgr
Ну а если вы часто ходите в гости, или у вас на балансе предприятие с кашей из операционных систем, и начальник знающий о лицензиях и последствиях не соблюдения данных, а в корень загрузочного диска вы не можете закинуть больше одного дистрибутива, вот тут и возникает потребность иметь установочный дистрибутив в виде iso.
Так Windows 7 имеет шесть редакций:
1) Начальная (Starter; обычно предустановлена на нетбуках),
2) Домашняя базовая (Home Basic),
3) Домашняя расширенная (Home Premium),
4) Профессиональная (Professional),
5) Корпоративная (Enterprise; для продажи крупным корпоративным клиентам),
6) Максимальная (Ultimate).
Теперь умножайте на 2 (х86, х64) получаем 12 установочных дистрибутивов.
Известны четыре редакции Windows 8
1) Windows 8 (Windows 8 Core)
2) Windows 8 Профессиональная (Windows 8 Pro)
3) Windows 8 Корпоративная (Windows 8 En terprise)
4) Windows RT
Умножайте на 2 (х86, х64) получаем ещё 8 установочных дистрибутивов.
На самом деле смонтировать ISO образ для загрузки не составляет труда, достаточно положить в корень загрузочного диска образ win8.iso прописать в menu.lst
title Windows 8
map /win8.iso (hd32)
map —hook
chainloader (hd32)
Но здесь сталкиваемся с 2 проблемами:
1 При попытке инсталляции Windows 7 или Windows 8, установка ругается что не может найти CDROM
2 Нельзя разбить диск на который устанавливается система.
В общем, решению этих 2 проблем и посвящена эта статья.
Решение с драйвером DVD-ROM
1.Качаем файл imdiskinst.exe драйвер виртуального CDROM imdisk (http://www.ltr-data.se/opencode.html/#ImDisk).
2.Создаем в корне на загрузочном USB носителе папку imdisk
3.При помощи архиватора извлекаем содержимое из файла imdiskinst.exe в папку imdisk
4.В корне USB создаем папки “_ISO” в ней папку “BOOT”
5.В папку BOOT ложем образы установочных дисков ISO (в названиях образов должны отсутствовать пробелы, кириллица, и спец символы, для примера WIN7.iso WIN8.iso)
6.Чтобы не засорять загрузочное меню grub4dos в файле menu.lst пишем переход в дополнительное меню menu_w.lst
title Меню установки Windows 7 Windows 8 из ISO файлов >>>
configfile /_ISO/BOOT/menu_w.lst
7.В папке /_ISO/BOOT/ создаем файл menu_w.lst и вставляем в него
timeout 30
default 0
title <<< Возврат в «Главное меню»
configfile /menu.lst
title 1 WIN7.ISO Setup Microsoft Windows 8
map /_ISO/BOOT/WIN7.ISO (hd32)
map (hd0) (hd1)
map (hd1) (hd0)
map —hook
chainloader (hd32)
title 2 WIN8.ISO Setup Microsoft Windows 8
map /_ISO/BOOT/WIN8.ISO (hd32)
map (hd0) (hd1)
map (hd1) (hd0)
map —hook
chainloader (hd32)
8.И последнее создаем в корне USB файл w7.bat и вставляем в него текст:
:: старт драйвера imdisk при установке Win 7/8 из ISO
@echo off
cd /D %~dp0
cd imdisk
rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 132 .imdisk.inf
set file_iso=0
for %%y in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%y:imdiskWin78.TXT set disk_iso_boot=%%y:
if «disk_iso_boot»==»» exit /b
:: — для лтладки
del /Q %disk_iso_boot%_isobootWin78.bat
if exist %disk_iso_boot%_isobootWin78.bat goto oldWin78bat
set file_out=%disk_iso_boot%_isobootWin78.bat
@echo :: после изменений отредактируйте этот список> %file_out%
@echo :: или удалите этот файл — он будет создан автоматически>> %file_out%
@echo :: (after changes edit this list>> %file_out%
@echo :: or delete this file — it will be created automatically)>> %file_out%
@echo echo off >> %file_out%
@echo cls >> %file_out%
@echo echo ———— Выберите подключаемый образ (Select image) —————>> %file_out%
set /A nn=0
For %%i in («%disk_iso_boot%_isoboot*.iso») Do Call :files1 «%%i»
@Echo echo. >> %file_out%
@Echo Enter the number or name of the file:>> %file_out%
@Echo set /P file_iso=Введите номер или имя файла: >> %file_out%
set /A nn=0
For %%i in («%disk_iso_boot%_isoboot*.iso») Do Call :files2 «%%i»
:oldWin78bat
:find_file_iso
cls
echo.
@echo —- В папке %disk_iso_boot%_isoboot найдены файлы (files found) —-
dir %disk_iso_boot%_isoboot*.iso /B
@echo ———— Выберите подключаемый образ (Select image): —————
echo.
if not exist %disk_iso_boot%_isobootWin78.bat goto noWin78bat
call %disk_iso_boot%_isobootWin78.bat
goto yesWin78bat
:noWin78bat
echo.
set /P file_iso=Введите имя файла (Enter name of the file):
:yesWin78bat
if not exist %disk_iso_boot%_ISOBOOT%file_iso% cls&echo. &echo ! НЕ найден файл (File NOT found) «%file_iso%»&echo. &pause&goto find_file_iso
@echo.
@echo — подключение образа (connection image) %file_iso% … —
@echo.
imdisk -a -f %disk_iso_boot%_ISOBOOT%file_iso% -m #:
for %%y in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%y:bootboot.sdi set install=%%y:
cd
%install%
cd sources
setup.exe
exit
:files1
set /A nn+=1
@Echo Echo %nn%) %~nx1 >> %file_out%
goto :EOF
:files2
set /A nn+=1
@Echo if %%file_iso%%==%nn% set file_iso=%~nx1>> %file_out%
goto :EOF
Теперь можно переходить к установки системы.
После загрузки GRUB попадаем в меню файла menu.lst, из него переходим в меню файла menu_w.lst, в котором выбираем установку Windows 7 или Windows 8.
Запускаем установку нашей системы, далее всем знакомая процедура, до момента появления вот такой картинки
На этом этапе нажимаем Обзор и смотрим, каким диском у нас определился наш USB носитель D: E: F: запоминаем букву диска.
Нажимаем сочетание клавиш Shift + F10, которая вызывает консоль, вводим букву нашего загрузочного диска и нажимаем Enter. Перейдя в корень нашего USB носителя вводим 7w и нажимаем Enter.
После обработки файла w7.bat вы увидите меню выбора образа, который необходимо смонтировать в виртуальный CDROM
На данном слайде у меня в папке /_ISO/BOOT/ находилось 9 образов установочных систем.
Введите номер образа который вы запускали из меню файла menu_w.lst, если WIN7.ISO то нажмите 1, если WIN8.ISO то 2
В папке /_ISO/BOOT/ после данной процедуры автоматически создастся файл Win78.bat. Если у вас в папке /_ISO/BOOT/ с десяток образов, то согласно этого файла вы сможете отредактировать файл menu_w.lst для отображения всех образов добавляя их по аналоги согласно пункта 7 данной статьи.
Проблема с невозможностью разбить диск для установки Windows связана с тем, что установка определяет USB диск как первым, а встроенный, как второй.
Если вы устанавливаете Windows из образа, и пользуетесь горячей клавишей с какого диска грузиться, то файл menu_w.lst должен выглядеть как
map /_ISO/BOOT/ win7.iso (hd32)
map —hook
chainloader (hd32)
Если вы в БИОСе устанавливаете грузиться с USB, то файл menu_w.lst
map /_ISO/BOOT/WIN7.ISO (hd32)
map (hd0) (hd1)
map (hd1) (hd0)
map —hook
chainloader (hd32)
Для кого лениво создавать файлы, выкладываю архив, распаковав который в корень вашего USB вы получите готовый вариант установки Windows7 и Windows8 из ISO образов.
Что бы избежать Error 60 образ ISO должен быть дефрагментирован. Осуществить можно дефрагментацию образа ISO программой WinConting (http://wincontig.mdtzone.it/ru/index.htm)
- Главная
- Форум
- Загрузчики.
- Grub4DOS
|
Вариант 1 (WINBLOCK) conty9:Качаем драйвер WINBLOCK >> Вариант 2 (интеграция в образ FiraDisk) AtlantКачаем интегратор «FiraDisk_integrator.exe» >> Эта информация для общего развития. У меня работает. Мне не интересна загрузка из образа, поэтому лично я на вопросы ваши ответить не смогу. |
Отправлено: 25-Апр-2015 14:38
(спустя 5 месяцев 15 дней)
Отправлено: 25-Апр-2015 14:38
(спустя 5 месяцев 15 дней)
sergeytramp |
|
Отправлено: 25-Апр-2015 16:20
(спустя 1 час 42 минуты)
Отправлено: 25-Апр-2015 16:20
(спустя 1 час 42 минуты)
zxen |
|
Отправлено: 01-Сен-2016 08:16
(спустя 1 год 4 месяца)
Отправлено: 01-Сен-2016 08:16
(спустя 1 год 4 месяца)
Евгений |
|
Отправлено: 01-Сен-2016 16:23
(спустя 8 часов)
Отправлено: 01-Сен-2016 16:23
(спустя 8 часов)
zdoba |
|
Отправлено: 02-Сен-2016 05:24
(спустя 13 часов)
Отправлено: 02-Сен-2016 05:24
(спустя 13 часов)
Евгений |
|
Отправлено: 02-Сен-2016 06:24
(спустя 1 час)
Отправлено: 02-Сен-2016 06:24
(спустя 1 час)
zdoba |
|
Отправлено: 02-Сен-2016 10:07
(спустя 3 часа)
Отправлено: 02-Сен-2016 10:07
(спустя 3 часа)
Heckfy |
|
Отправлено: 02-Сен-2016 12:43
(спустя 2 часа 35 минут)
Отправлено: 02-Сен-2016 12:43
(спустя 2 часа 35 минут)
Евгений |
Отправлено: 02-Сен-2016 13:43
(спустя 1 час)
Отправлено: 02-Сен-2016 13:43
(спустя 1 час)
sergeysvirid |
28187
Нужна установка из iso FiraDisk_integrator Пример использования:FiraDisk_integrator.exe Пример добавления пункта меню установки Windows из образа в menu.lst:title Windows Install …где Boot — имя папки для размещения образов Windows, |
Отправлено: 05-Сен-2016 03:52
(спустя 2 дня 14 часов)
Отправлено: 05-Сен-2016 03:52
(спустя 2 дня 14 часов)
Евгений |
|
Отправлено: 05-Сен-2016 04:14
(спустя 21 минута)
Отправлено: 05-Сен-2016 04:14
(спустя 21 минута)
KaSpieC 666 |
title Windows Xp/2003 …где Boot — имя папки для размещения образов Windows, |
Отправлено: 05-Сен-2016 04:29
(спустя 15 минут)
Отправлено: 05-Сен-2016 04:29
(спустя 15 минут)
Евгений |
|
Отправлено: 05-Сен-2016 04:43
(спустя 13 минут)
Отправлено: 05-Сен-2016 04:43
(спустя 13 минут)
Евгений |
|
Отправлено: 05-Сен-2016 10:48
(спустя 6 часов)
Отправлено: 05-Сен-2016 10:48
(спустя 6 часов)
Heckfy |
26758
Нужен memdisk от Linux Более подробно см. http://www.syslinux.org/wiki/index.php?title=MEMDISK |
Страница 1 из 4
Текущее время: 07-Фев 07:38
Часовой пояс: UTC + 3
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы
Наверняка почти у каждого пользователя ОС 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
$ mkdir ~/iso
$ sudo mount -t udf ~/install/win7-setup.iso ~/iso
Вставляем флешку в 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 ~/iso/* /tmp/flash/
Скопируем конфиги EFI-загрузчика на уровень выше
$ cp -rv ~/tmp/flash/efi/microsoft/* ~/tmp/flash/efi/
Теперь нам нужен EFI-загрузчик винды. Его придется выцарапать из дистрибутива. Это легко сделать с помощью архиватора 7-zip, который имеется в репозитории extra/p7zip. Все содержимое дистрибутива винды сжато в образ wim-формата находится на установочном DVD в файле source/install.wim. Обычно этот образ имеет следующую структуру
В каталогах с именами в виде цифр 1-4 находятся разные редакции винды. Чтобы выбрать нужную надо посмотреть внутрь файла с именем [1].xml. Распакуем его в /tmp
$ cd /tmp
$ 7z e ~/iso/sources/install.wim [1].xml
и посмотрим с помощью какого-нибудь браузера, ибо в текстовом редакторе он выглядит ужасно, а специального редактора xml у меня в наличии не оказалось. Каждую редакцию винды описывают структурой вида
где нода EDITIONID указывает на редакцию. Параметр INDEX — как раз номер каталога, в котором валяется нужная редакция. Итак, мне нужна Ultimate, а это индекс 4. Соответсвенно выковыриваем загрузчик оттуда
$ 7z e ~/iso/sources/install.wim 4/Windows/Boot/EFI/bootmgfw.efi
Оки, теперь перенесем полученный файл на флешку
$ 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 ~/downloads/7z1602-x64.exe
Туда же помещаем и bootice
$ cp ~/install/BOOTICEx64.exe /tmp/flash/utils
Уф, всё, отмонтируем флешку
$ 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, а в лог, расположенный по адресу WindowsPanthersysperr.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:WindowsSystem32spbcd.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:vhdwin7.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:> utils7-Zip7zFM.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 EFImicrosoftboot
F:> xcopy C:WindowsBootEFI* F:EFImicrosoftboot /s /e
F:> mkdir EFImicrosoftbootFonts
F:> xcopy C:WindowsBootFonts* F:EFImicrosoftbootFonts /s /e
F:> copy C:WindowsSystem32configBCD-Template F:EFImicrosoftbootBCD
Отлично, загрузчик скопирован. Теперь настроим его
F:> E:utilsBOOTICEx64.exe
Открываем файл F:EFIMicrosoftBootBCD. В случае установки на раздел, его параметры задаются так
Если же мы устанавливали систему на VHD, то настройки будут такими
Важно! Имя вторичного загрузчика для EFI-системы winload.efi, для BIOS-системы — winload.exe.
В случае, если мы устанавливаем BIOS-систему установка загрузчика будет выглядеть так
F:> mkdir C:Boot
F:> xcopy C:WindowsBootPCAT* C:Boot /s /e
F:> mkdir C:BootFonts
F:> xcopy C:WindowsBootFonts* C:BootFonts /s /e
F:> copy C:Bootbootmgr C:bootmgr
F:> copy C:WindowsSystem32configBCD-Template C:BootBCD
Важно! Раздел, смонтированный к 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, которую надо поместить в папку EFIMictosoftBootResourses. В случае с 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-носителя.
Автор: maisvendoo
Источник
Архив номеров / 2019 / Выпуск №01-02 (194-195) / Загрузочный носитель на основе GRUB2 for Windows
ИГОРЬ ОРЕЩЕНКОВ, инженер-программист, iharsw@tut.by
Загрузочный носитель
на основе GRUB2 for Windows
В статье рассматривается подготовка мультизагрузочного носителя для BIOS/EFI компьютеров на основе загрузчика GRUB2 в среде операционной системы Windows. Он может быть пригоден для первичной инициализации компьютера или восстановления работоспособности операционной системы компьютера
Технические требования к загрузочному носителю
Сменный загрузочный носитель, как правило, предназначен для первоначальной установки операционной системы или восстановления работоспособности компьютера. Для первого варианта использования на носителе должен находиться инсталляционный образ операционной системы с возможностью запуска процедуры установки. Во втором случае вероятно использование носителя в среде, пораженной компьютерными вирусами, откуда следует необходимость защиты его от записи на аппаратном уровне.
С учетом высказанных предпосылок в качестве загрузочного носителя удобно выбрать SD-карту. Оптические диски практически вышли из широкого обращения, а USB-флешки с аппаратной защитой от записи не везде можно встретить в продаже, и цена на них не всегда оправдана. В то же время любая SD-карта имеет переключатель защиты от записи, что в комплекте с кардридером превращает ее в недорогой, но функциональный носитель (см. рис. 1).
Рисунок 1. Из SD-карты и кардридера можно собрать функциональный носитель с аппаратной защитой от записи
Чтобы носитель можно было использовать как на компьютерах с загрузчиком BIOS, так и на платформах со схемой загрузки EFI, создадим на носителе три раздела MBR:
- Раздел FAT32 – для загрузчика GRUB2, ISO-образов специализированных дистрибутивов для восстановления работоспособности системы и Windows-утилит.
- Раздел с ISO-образом дистрибутива Mageia-6.1-Live-DVD-Xfce-i586-DVD.iso, который, будучи не требовательным к ресурсам компьютера, предоставляет полноценный рабочий стол с офисным пакетом и веб-браузером.
- Раздел с инсталляционным ISO-образом дистрибутива Mageia-6-i586-DVD.iso, который содержит в себе набор программного обеспечения, достаточный для организации как автоматизированного рабочего места офисного работника, так и для построения сервера организации.
Разметка носителя
Для хранения перечисленных выше данных будет достаточно накопителя емкостью 8 Гб. Его разметку можно выполнить под Windows с помощью штатной утилиты diskpart. Сначала нужно с помощью команды list disk вывести таблицу подключенных к компьютеру накопителей, чтобы определить, над каким выполнять операции.
По значению в колонке «Размер», которое должно равняться 7580 Мбайт, определяем номер носителя для дальнейшей работы. Допустим, что в колонке «Диск ###» интересующему носителю соответствует номер 9. Очистим его содержимое.
В соответствии с принципом осмотрительности администраторов баз данных «Семь раз SELECT – один UPDATE» убедимся в правильности нашего выбора нужного сменного носителя.
В выводе команды detail disk должна содержаться следующая надпись:
и информация о единственном пока что разделе:
Если сомнений больше не осталось, выполняем очистку носителя:
После успешного выполнения команды должно появиться сообщение:
Если же появилось сообщение об ошибке, например:
то команду нужно повторить.
Снова выводим таблицу со списком носителей:
Для инициализированного носителя «Диск 9» будет выведено:
Свободное пространство нужно разметить на три раздела:
- Один раздел – для ISO-образа Mageia-6-i586-DVD.iso размером 3,921,674,240 байт или 3740 Мб (если дважды разделить количество байтов на 1024).
- Второй раздел – для ISO-образа Mageia-6.1-LiveDVD-Xfce-i586-DVD.iso размером 2,028,994,560 байт или 1935 Мб.
- Третий раздел, который займет оставшееся свободным пространство, будет предназначен для загрузчика, Windows-утилит и вспомогательных загрузочных образов. Его размер составит 7579 – (3740 + 1935) = 1904 Мб.
Разделы лучше располагать на носителе в порядке, обратном перечисленному, – сначала загрузочный раздел, а после него – с ISO-образами дисков. Поэтому создадим сначала раздел размером 1904 Мб. Поскольку загрузочный носитель планируется максимально универсальным, попытаемся сделать этот раздел загрузочным по спецификации EFI:
Эта команда завершится с ошибкой и сообщением о том, что EFI-разделы поддерживаются только для GPT-дисков. К сожалению, один накопитель может быть размечен либо по схеме MBR, которую поддерживают загрузчики BIOS, либо по схеме GPT, которую поддерживают загрузчики EFI, и совместить эти схемы в пределах одного накопителя согласно разделу 5 спецификации UEFI 2.7 [8] никак не возможно.
Тем не менее практика показывает, что в большинстве случаев реальные реализации загрузчиков EFI без особых проблем распознают в качестве загрузочных разделы FAT32 с шестнадцатеричным кодом файловой системы EF, размещенные на дисках MBR. Воспользуемся этим фактом и создадим первичный MBR-раздел, после чего отформатируем его с присвоением метки BOOTDISK:
Если между командами create partition и format по каким-то причинам пришлось завершить утилиту diskpart, то восстановить контекст после ее запуска можно командами:
При выполнении же команд в непрерывной последовательности вновь созданный раздел становится текущим автоматически, поэтому выполнять команду select partition для переключения фокуса нет необходимости.
Теперь можно создать остальные разделы. В качестве идентификатора файловой системы им нужно назначить шестнадцатеричное значение 17 (ISO 9660).
Каждая команда create partition должна завершаться сообщением:
а команда set сообщением:
Результат работы можно просмотреть с помощью команды list partition. А с помощью команды list disk можно убедиться, что на носителе не осталось неиспользованного пространства:
После этого можно завершить работу с программой diskpart:
Запись ISO-образов в разделы накопителя
К сожалению, в операционной системе Windows нет средства, позволяющего с такой же легкостью, как утилита dd в мире UNIX, записывать файлы на устройства и обратно. Вероятно, по этой причине появился Windows-клон этой программы, которым мы воспользуемся для записи ISO-образов на разделы загрузочного накопителя.
Может возникнуть вопрос: «Зачем записывать образы ISO-дисков как «сырые данные» логических разделов и почему не записать их в виде файлов на обычный раздел, например FAT32?»
Дело в том, что образы Mageia [6] не поддерживают «петлевой» запуск из файла, как это уже давно умеют делать другие дистрибутивы, например Ubuntu и Fedora. Но поскольку они все же являются «гибридными» (то есть позволяют записывать себя как на DVD-матрицу, так и на USB-флешку), то есть шанс заставить их работать с раздела создаваемого носителя.
Для дальнейшей работы потребуется загрузить дистрибутивный архив dd-0.6beta3.zip [1] и извлечь из него программу dd.exe. Предполагается, что файлы с ISO-образами уже лежат в текущей папке.
Выясним способ адресации разделов создаваемого загрузочного носителя программой dd:
В секции NT Block Device Objects нужно отыскать группу строк, сопровождаемых текстом Removable media other than floppy («Сменный носитель, отличный от гибкого диска»). Сведения о размерах найденных разделов подтверждают предположение о том, что записи «Ошибка! Недопустимый объект гиперссылки.» относятся к недавно созданным разделам на накопителе «Ошибка! Недопустимый объект гиперссылки.».
Теперь можно выполнять команды записи ISO-образов:
С помощью параметра if= программе передается имя записываемого файла ISO-образа, через параметр of= указывается раздел накопителя, в который будет произведена запись, параметр bs= задает размер единовременно копируемого блока, а параметр —progress позволяет интерактивно наблюдать в консоли количество записанных данных (из-за большого размера файлов процесс занимает продолжительное время, которое зависит от класса SD-карты и версии интерфейса кардридера).
Успешная запись должна завершиться следующими сообщениями:
для первого и второго образа соответственно, которые говорят о равенстве количества прочитанных и записанных данных.
Установка и проверка загрузчика
Для установки на носитель загрузчика GRUB2 нужно загрузить дистрибутивный пакет grub-2.02-for-windows.zip [2], извлечь из него папку grub-2.02-for-windows и сделать ее текущей. Для продолжения работы нужно выяснить, под какой буквой подключен в операционной системе раздел FAT32 настраиваемого носителя. Это можно сделать в программе diskpart с помощью команды list volume. Строка таблицы с нужным разделом будет содержать:
Допустим, что искомому разделу соответствует буква «R». Установка загрузчика может быть произведена командой:
Параметр —boot-directory задает путь, где будет создана папка grub с файлами загрузчика, параметр —target указывает тип загрузки (в рассматриваемом случае это BIOS), а последний параметр задает накопитель, загрузочный сектор которого будет модифицирован. Об успешной установке должны сообщить надписи:
Поскольку было принято решение о создании универсального загрузочного носителя, можно установить загрузчики для 32- и 64-битных EFI:
Параметр —efi-directory указывает, где будет создана папка EFI с модулями, необходимыми для загрузки в режиме EFI, а параметр —removable информирует инсталлятор о том, что установка производится на сменный носитель.
На этом установка загрузчика завершена. Можно проверить созданный носитель на реальных компьютерах или с помощью специализированного эмулятора QemuBootTester. Последний позволяет выбрать носитель, с которого будет произведена загрузка виртуальной машины, и полный спектр режимов загрузки: BIOS, EFI-IA32 и EFI-x64 (см. рис. 2).
Рисунок 2. Эмулятор QemuBootTester позволяет выбрать загрузочный носитель (1) и режим загрузки (2). Для тестирования загрузчика достаточно 128 Мб (3) виртуальной памяти, а виртуальный жесткий диск можно отключить. Запуск осуществляется кнопкой Run QEMU (4)
Отметим, что при подключении носителя к компьютеру под управлением Windows система отображает диалоговые окна с предложением отформатировать нераспознанные разделы, на которые записаны образы дистрибутивов Linux. Естественно, делать этого не нужно.
При выборе носителя в качестве загрузочного управление системой возьмет на себя GRUB2. Его работа должна управляться с конфигурационным файлом, который пока что отсутствует. Поэтому на экране отобразится приглашение командного режима (см. рис. 3). В нем можно сразу опробовать команды:
- grub> help – отображение списка команд;
- grub> help команда – отображение подсказки по использованию команды.
Рисунок 3. В командном режиме загрузчика GRUB2 можно проанализировать конфигурацию компьютера и выполнить загрузку операционной системы в аварийном режиме
Зачастую выводится больше информации, чем может уместиться на экране. Чтобы вывод на экран приостанавливался перед прокруткой и выдачей очередной порции сведений, нужно включить режим постраничного вывода:
Очистить экран можно командой clear. Для завершения работы GRUB2 предусмотрены команды:
- grub> reboot – перезагрузка;
- grub> halt – выключение компьютера.
В компьютерах на основе Phoenix BIOS может возникнуть трудность, связанная с выбором загрузочного носителя. В предлагаемых вариантах присутствуют USB-FDD, USB-ZIP, USB-CDROM – и не ясно, какой является правильным. На самом деле – ни один из перечисленных.
Нужно через пункт меню Advanced BIOS Features → Boot Seq&Floppy Setup установить в качестве первичного устройства загрузки First Boot Device значение Hard Disk (вероятно, оно и так установлено), а в пункте меню Advanced BIOS Features → Hard Disk Boot Priority на первое место переместить значение USB-HDD0: USB Mass Storage Device. Если такой вариант для выбора отсутствует, нужно убедиться, что загрузочный носитель подключен, после чего выполнить «теплую» перезагрузку по + + и повторить процедуру.
Настройка загрузчика
Как уже было отмечено, в своей работе загрузчик GRUB2 руководствуется командами, записанными в конфигурационном файле /grub/grub.cfg на загрузочном носителе.
Язык конфигурирования очень напоминает язык командного интерпретатора bash, однако для включения поддержки некоторых конструкций нужно явным образом подключить соответствующие модули. Например, для проверки условий требуется модуль test, а для использования регулярных выражений – модуль regexp. Скомпилированные модули в файлах с расширением .mod на этапе установки GRUB2 уже были записаны в подкаталоги i386-pc, i386-efi и x86_64-efi, соответствующие режимам загрузки.
Загрузчик GRUB2 можно русифицировать. Для этого необходимо:
- записать из дистрибутива файл с русифицированными сообщениями grub-2.02-for-windowslocalerugrub.mo на загрузочный носитель под именем grublocaleru.gmo;
- записать из дистрибутива файл со шрифтом UNICODE grub-2.02-for-windowsunicode.pf2 на загрузочный носитель в подкаталог grubfonts;
- подключить модули поддержки локализации, установки графических режимов и графической консоли для отображения символов кириллицы:
- загрузить шрифт UNICODE, установить русский язык, задать графический режим и активировать графическую консоль:
После выполнения приведенных настроек GRUB2 «заговорит» по-русски. Помимо этого открывается возможность использования файлов с заранее подготовленными подсказками на русском языке, которые можно записать на носитель в кодировке UTF-8, а в нужный момент вывести на экран с помощью команды cat:
Ключ —dos предписывает трактовать двухбайтовые последовательности DA как символы перевода строки.
При запуске GRUB2 инициализирует некоторые переменные среды окружения, полный список которых можно вывести на экран командой set.
Так, переменная $prefix содержит путь к папке с файлами GRUB2, а переменная $grub_platform содержит идентификатор способа загрузки:
- efi – если загрузка выполнена в режиме EFI-IA32 или EFI-x64;
- pc – если загрузка выполнена в режиме BIOS.
Этот факт можно использовать для условной загрузки блоков конфигурации из файлов /grub/efi.cfg или /grub/pc.cfg для учета специфики режима или подключения пунктов меню:
Система меню и загрузка операционных систем
В конфигурационном файле grub.cfg можно описать меню с вариантами выбора, которые будут отображаться после загрузки вместо режима командной строки:
При этом сохраняется возможность выхода в командную строку с помощью клавиши .
Для работы с файлами, находящимися на ISO-образах, удобно использовать файловый менеджер 7ZipFM [3] с подключенным в его настройках (через пункт меню «Сервис → Настройки → Редактор») текстовым редактором AkelPad [4] (см. рис. 4).
Рисунок 4. Файловый менеджер из пакета 7Zip позволяет исследовать содержимое ISO-образов и извлекать из них необходимые файлы, а текстовый редактор AkelPad дает возможность «на месте» просматривать содержимое текстовых файлов
Если требуется выполнять загрузку с ISO-образа дистрибутива Linux, который поддерживает «петлевой» запуск, то пункты меню для этих целей можно извлечь из самого конфигурационного файла загрузчика нашего дистрибутива Linux.
Например, в случае Ubuntu это будет ubuntu-18.10-desktop-amd64.isobootgrubloopback.cfg (еще потребуется указать путь к файлу с ISO-образом на загрузочном носителе в переменной окружения $iso_path).
Для дистрибутива Fedora можно воспользоваться блоком меню из файла Fedora-Workstation-Live-x86_64-29-1.2.isoEFIBOOTgrub.cfg в качестве основы, но к параметрам ядра нужно дописать указание пути к файлу образа в виде «iso-scan/filename=. ».
Множество примеров пунктов меню для «петлевого» запуска различных дистрибутивов Linux можно найти в файле grub-2.02docsautoiso.cfg дистрибутивного пакета grub-2.02.tar.gz.
Описанным способом были сформированы пункты меню для запуска модулей дистрибутива System Resque CD [7], ISO-образ которого размещен в файле /ISO/systemrescuecd-x86-5.3.2.iso загрузочного носителя.
Стоит отметить метод подключения корневой файловой системы модуля NTPASSWD, предназначенного для сброса пароля администратора Windows. Она состоит из двух блоков: основного initrd.cgz и вспомогательного scsi.cgz с драйверами устройств SCSI. Их совместное использование реализовано командой:
Дистрибутивы Mageia не поддерживают «петлевую» загрузку, из-за чего их ISO-образы были записаны в разделы загрузочного носителя.
К сожалению, попытка выполнить запуск путем установки фокуса на содержащий дистрибутив раздел и передачи управления загрузчику командой chainloader +1 не увенчалась успехом. Это не удивительно, потому что загрузчик рассчитан на размещение в MBR, а не в загрузочный сектор раздела.
На помощь пришла команда GRUB2 syslinux_configfile, обнаруженная в эталонном конфигурационном файле grub-2.02docsosdetect.cfg, который входит в состав дистрибутивного пакета grub-2.02.tar.gz. Она позволяет подключить к текущему меню GRUB2 блок, записанный в формате загрузчика isolinux. Так это выглядит для дистрибутивов Mageia:
Команды search в приведенных примерах осуществляют поиск на доступных носителях разделов с указанными в параметрах —fs-uuid уникальными идентификаторами и делают их текущими.
Узнать значения идентификаторов разделов можно с помощью команды ls -l, введенной в командном режиме GRUB2:
Команды syslinux_configfile подключают блоки меню из файлов isolinux.cfg на найденных разделах. Эстетический недостаток этого способа состоит в том, что вместо описаний пунктов меню на экране будут отображаться их метки. Но зато сохраняется функциональность.
Образ LiveDVD работает без замечаний – так, как будто был использован обычный загрузочный носитель. А для образа инсталляционного диска придется указать местонахождение установочных файлов. Для этого:
- в окне с сообщением I can’t access a Mageia Installation disc in your CDROM drive нажать кнопку No;
- в окне запроса носителя с установочными файлами (Please select the disk containing the copy of the Mageia Distribution install source) выбрать устройство USB Mass Storage Device;
- в окне запроса раздела (Please select the partition containing the copy of the Mageia Distribution install source) выбрать третий раздел размером 3740 Мбайт;
- в окне ввода пути к установочным файлам поле Please select directory оставить пустым – просто нажать .
Установочные файлы будут найдены, запустится инсталлятор, и установка продолжится в штатном режиме.
Заключение
В результате выполнения приведенных в статье рекомендаций в среде операционной системы Windows с использованием штатных средств и минимального набора стороннего программного обеспечения может быть создан универсальный мультизагрузочный носитель на базе GRUB2, пригодный для первичной инициализации компьютера или восстановления работоспособности операционной системы компьютера.
В статье рассмотрен способ подключения блоков загрузочного меню из конфигурационных файлов загрузчиков SysLinux/IsoLinux с помощью команды syslinux_configfile.
На сайте журнала http://samag.ru приведен рабочий вариант конфигурационного файла GRUB2 для загрузочного носителя BIOS/EFI с возможностью запуска модулей SystemResqueCD, получения рабочей среды на базе GNU/Linux Mageia 6 и установки этой операционной системы, который содержит.
- grub.cfg – основной конфигурационный файл GRUB2;
- pc.cfg – блок меню, специфичный для загрузки в режиме BIOS;
- efi.cfg – блок меню, специфичный для загрузки в режиме EFI;
- help.txt – файл с подсказкой о процедуре загрузки Windows;
- helpefi.txt – файл с описанием особенностей использования SystemRescueCD в режиме EFI.
При изучении возможностей GRUB2, помимо интернет-источников [5], целесообразно использовать справочную информацию, имеющуюся в папке grub-2.02docs дистрибутивного пакета grub-2.02.tar.gz:
- grub.info – документация на английском языке, которая может быть просмотрена в любом текстовом редакторе;
- grub.cfg – конфигурационный файл, содержащий основные примеры загрузки операционных систем;
- autoiso.cfg – конфигурационный файл, содержащий примеры загрузки операционных систем в «петлевом» режиме из файлов ISO-образов;
- osdetect.cfg – конфигурационный файл, содержащий сценарии поиска загрузочных разделов для множества операционных систем с последующей их загрузкой.
В ходе подготовки загрузочного носителя следует сконцентрировать внимание на выполняемых действиях. Ошибка в набранной команде может привести к необратимой потере информации, хранящейся на компьютере.
Ключевые слова: Linux, rescue.
Adblock
detector
Рубрика: Администрирование / Инструменты | Дополнительные материалы
- Печать
Страницы: [1] Вниз
Тема: Установка Windows из под Grub загрузчика (Прочитано 1031 раз)
0 Пользователей и 1 Гость просматривают эту тему.
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
kamenkadze
Добрый день, помогите! Все эти Lunix и grub для меня страшные слова, но общею в будущем тратить больше времени на изучения этих систем.
Для чего вообще устанавливать Windows с grub спрашивается…
Дело в том что я честь имею, работать каждый день с новым диском, и процесс моей работы начинается с того что я вставляю флешку и пошло поехало накатывать Wondows, каждый день по 10-20 раз.
Я хочу автоматизировать более менее процесс установки используя Nvme и образы системы Windows на нем, все это нужно сделать из под загрузчик Grub. Желательно автоматически.
1. Я не могу использовать Nvme на стадии запуска системы, так как моя система не имеет поддержки Uefi boot, то-есть Nvme не определяется в Bios и не может использоваться как загрузочный диск. Более простое объяснение: на стадии boot можно забыть о его существовании, до загрузки какой либо системы (grub’а к примеру).
2. В моей среде, есть проблемы с провайдером и технические с Lan Pxe (в следствии проблем с провайдером). То-есть я не могу использовать развертку систем с помощью внешних машин.
3. После загрузки через среду посредника (grub к примеру) я уже могу обратиться к Nvme и извлечь нужные мне файлы, по этому без посредника не как не обойтись.
Подозреваю что это довольно просто, для тех кто знаком с Grub. Для меня же это большая проблема, так как я просто не могу сформулировать верный запрос для поиска ответов на мои вопросы.
Интересуют: Статья или же ваша неоценимая готовая помощь.
« Последнее редактирование: 22 Сентября 2020, 15:53:49 от kamenkadze »
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
kamenkadze
Тебе не нужен ни груб ни линукс. Обращайся в Микрософт, чтобы они научили тебя пользоваться средствами автоматического развертывания системы.
Но как мне подключиться к Nvme, если нет поддержки Uefi?
Было бы все так просто, я бы не писал в этот форум. Прежде чем пытаться выставить меня дураком, нужно немного обращать внимания на детали.
Касательно Windows Deployment Services, не всегда возможно пользоваться Lan или Ethernet.
« Последнее редактирование: 22 Сентября 2020, 15:17:55 от kamenkadze »
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
kamenkadze
как мне загрузиться в Nvme
Nvme это та же самая флешка. Как ты работал с флешкой, точно так-же будет с nvme.
А вот если Виндовс закобенится, и начнет искать непонятные для нее устройства или драйвера, как нередко случается и с флешками, так это полностью проблема Виндовс.
Так стоп. Давайте разбираться примером, потому что, читая это люди будут думать что ответ на поверхности (хотя это совершенно не так)
Так надеюсь все мы знаем что Nvme не определяются в оболочке bios в системах без поддержки Uefi, то-есть я не могу использовать Nvme напрямую без посредника загрузчика (а самым быстрым является grub)
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
andytux
Nvme не определяется в Bios
Не уверен, что груб поможет грузиться с устройства, которое не определено БИОС-ом.
И здесь не важно, БИОС или УЕФИ. Устройство либо есть, либо его нет.
Если достаточно, чтобы груб запустил систему с другого устройства, то посмотри здесь.
Или посмотри «super grub disk». Грузит все, что только возможно загрузить.
« Последнее редактирование: 22 Сентября 2020, 17:59:43 от andytux »
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
ALiEN175
Более простое объяснение: на стадии boot можно забыть о его существовании, до загрузки какой либо системы (grub’а к примеру).
А с какого устройства тогда груб на установленной системе грузиться будет?
ASUS P5K-C :: Intel Xeon E5450 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
vladimirzhuravlev
Для чего вообще устанавливать Windows / Nvme и образы системы Windows на нем
Устанавливать это одно, клонировать единожды установленный и настроенный образ другое. При этом понятно, что железо там, куда ты всунешь диск с клонированной на него системой, должно быть однотипным с тем, на котором устанавливал. Не путай понятия установочного исошника винды и образа установленной системы.
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
kamenkadze
Для чего вообще устанавливать Windows / Nvme и образы системы Windows на нем
Устанавливать это одно, клонировать единожды установленный и настроенный образ другое. При этом понятно, что железо там, куда ты всунешь диск с клонированной на него системой, должно быть однотипным с тем, на котором устанавливал. Не путай понятия установочного исошника винды и образа установленной системы.
ах… Ну честно слово ребята.У вас так не когда не будет нормального общества. Какая разница какая у меня система =))) Windows 10 подберет все при старте. Запускать готовую систему можно через VHD и Grub4dos + драйвер FiraDisk или Vdos, моя проблема одна, я просто не знаю где найти статью по управлению Grub2 или Grub4dos (приоритетнее grub2).
Ну как у вас так получилось, что заядлые форумчани отвечающие на вопрос, знают меньше чем автор вопроса…
Могу помочь! Не знаешь ответа, не понимаешь —- Не отвечай друг.
« Последнее редактирование: 23 Сентября 2020, 13:44:53 от kamenkadze »
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
vladimirzhuravlev
моя проблема одна, я просто не знаю где найти статью по управлению Grub2
А что… поиск в инете отменили ? ТЫНЦ
![Оффлайн](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
ALiEN175
cтатью по управлению Grub2 или Grub4dos
А что там управлять? Для windows груб просто передаёт управление bootmgr или как его там…
GRUB2/Chainloading
Пользователь добавил сообщение 23 Сентября 2020, 15:24:23:
И да, груб не загрузит непосредственно исошник windows (он не iso-hybrid), его нужно сначала распаковать.
« Последнее редактирование: 23 Сентября 2020, 15:24:41 от ALiEN175 »
ASUS P5K-C :: Intel Xeon E5450 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE
- Печать
Страницы: [1] Вверх