понедельник, 14 февраля 2011 г.

Создаем загрузочную USB-флешку с Windows 7 из Debian/Ubuntu

У нас есть iso-образ Windows 7, USB-флешка и работающий Debian GNU/Linux (или Ubuntu). Нужно установить Windows на компьютер без DVD-привода. Как создать iso-образ с диска - оставим за пределами этой статьи. Приступим.

1. Форматируем флешку в NTFS. Для этого можно воспользоваться Gparted и не копаться в консоли. Плюс, нужно не забыть установить для раздела флаг boot (правой кнопкой на разделе, пункт "Управление флагами", включаем галочку "boot").

2. Создаем папку, монтируем в нее образ Windows 7 и копируем его содержимое на флешку, отмонтируем образ:
# mkdir -p /mnt/iso
# mount -o loop /path/to/image/windows7.iso /mnt/iso
# cp -r /mnt/iso/* /media/usb-flash/
# umount /mnt/iso
Пути указаны для примера и их нужно поменять на свои:
  • /mnt/iso - папка, куда мы смонтируем образ (если она уже создана, пропустите первую команду)
  • /path/to/image/windows7.iso - путь к образу
  • /media/usb-flash - папка, куда смонтирована флешка

3. Устанавливаем ms-sys. Программа нужна для записи правильного загрузочного сектора на флешку. Судя по списку изменений, нам нужна версия не ниже 2.1.4. Возможно она есть в пакетах вашего дистрибутива, но в репозиториях Debian ее не оказалось, поэтому качаем исходники, распаковываем, переходим в распакованную папку и там выполняем:
$ make
Чтобы не захламлять систему, воспользуемся программой checkinstall, она соберет программу в пакет и установит его. Для этого всё в той же папке выполняем:
# checkinstall
Вам зададут несколько вопросов с очевидными ответами и сделают всю грязную работу за нас.
Но можно воспользоваться и дедовским способом, установить программу по старинке:
# make install

4. Добавляем загрузочную запись на флешку:
# ms-sys -7 /dev/sdb
Здесь нужно заменить /dev/sdb на путь к устройству вашей флешки. Будьте очень осторожны, не перепутайте с жестким диском.

На этом всё, флешка готова к загрузке. Вставляйте ее в компьютер и выбирайте в BIOS загрузку с USB.

Источником вдохновения послужила страница на serverfault.com