понедельник, 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

8 комментариев:

Unknown комментирует...

Спасибо!

Unknown комментирует...
Этот комментарий был удален автором.
Unknown комментирует...

Да, спасибо!
ms-sys можно не собирать, просто установить из PPA-репозитория https://launchpad.net/~lenski/+archive/ms-sys
Для Ubuntu 13.04 Просто качаем и ставим deb-пакет https://launchpad.net/~lenski/+archive/ms-sys/+files/ms-sys_2.2.0-1ubuntu1_amd64.deb

Анонимный комментирует...

Выдает такое сообщение: has no x86 boot sector
У меня ubuntu 13.10 64-разрядная версия.

Анонимный комментирует...

Если на этапе "make" сыпет ошибками, значит, скорее всего что-то не установлено, в моём случае "checkintall" (Kubuntu 15.10). Не забывайте что многие команды требуют sudo.

valet комментирует...

Спасибо, чуть не единственный рабочий способ, а перепробовал я многие. Подозреваю что из-за особенностей виндового MBR (видимо другие программы неправильно его пишут)

Кстати советую сменить в статье
ms-sys -7 /dev/sdb
на что-то вроде
ms-sys -7 /dev/sdX
а то кто-то тупо скопирует и благополучно затрет MBR винчестера и угробит загрузчик своей ОС.

Айнур комментирует...
Этот комментарий был удален администратором блога.
Unknown комментирует...

в случае проблем с установкой ms-sys:
1. проверяем, установлен ли checkinstall
2. установлен ли gettext
3. внимательно просмотрите "результаты установки" если checkinstall выкинул ошибку:
Если пишет, что нет каких-либо папок по нужным путям, то создайте их сами