Як змусити Windows 7 Flash встановити носій із Linux?


105

Я маю:

  • ISO-образ Windows 7 для встановлення носія
  • 4 Гб флеш-накопичувач USB
  • відсутній привід DVD
  • Linux встановлений

Якщо вам вдасться виконати всі ці завдання з вашого робочого столу Linux, ви будете розгойдувати будинок. Я думаю, що найскладніша частина полягала б у виконанні всіх операцій, які виконує Diskpart Windows. Зробити розділ позначеним як "активний" та "завантажувальний", "первинний" тощо
p.campbell

3
Я думаю, що GParted ( gparted.sourceforge.net ) може добре працювати з усіма прапорами розділу. Див., Наприклад, gparted.sourceforge.net/screenshots.php . І я не тестував, але схоже, що rsync може замінити роботокопію в цьому контрольному списку.
Метью Флашен

1
На те саме питання є багато детальних відповідей на askubuntu.com/q/289559/135671
erik

Відповіді:


181

Гаразд, після невдало спробували всі згадані тут методи, я нарешті спрацював. В основному, пропущеним кроком було написати належний завантажувальний сектор на USB-накопичувач, що можна зробити з Linux за допомогою ms-sysабо lilo -M. Це працює з роздрібною версією Windows 7.

Ось знову повний прокат:

Встановіть ms-sys - якщо його немає у ваших сховищах, знайдіть його тут . Або ж переконайтесь, що lilo встановлено (але не виконуйте крок liloconfig у вашому локальному вікні, якщо, наприклад, там встановлено Grub!)

Перевірте, яким пристроєм призначено USB-носій - тут ми будемо вважати, що він є /dev/sdb. Видаліть усі розділи, створіть новий, займаючи весь простір, встановіть тип NTFS (7) і не забудьте встановити його завантажувальним:

# cfdisk /dev/sdb   або   fdisk /dev/sdb ( тип розділу 7 та прапор завантаження )

Створіть файлову систему NTFS:

# mkfs.ntfs -f /dev/sdb1

Напишіть Windows 7 MBR на USB-накопичувач (також працює для Windows 8), кілька варіантів тут:

  1. # ms-sys -7 /dev/sdb
  2. або (наприклад, про новіші встановлення Ubuntu) sudo lilo -M /dev/sdb mbr( інформація )
  3. або (якщо встановлено syslinux), можна запустити sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb

Підключіть носії ISO та USB:

# mount -o loop win7.iso / mnt / iso
# mount / dev / sdb1 / mnt / usb

Скопіюйте всі файли:

# cp -r /mnt/iso/* /mnt/usb/   ... або використовувати стандартний файловий браузер GUI вашої системи

Зателефонуйте, syncщоб переконатися, що всі файли записані.

Відкрийте gparted, виберіть USB-накопичувач, клацніть правою кнопкою миші файлову систему, а потім натисніть "Manage Flags". Поставте прапорець для завантаження та закрийте.

... і ви закінчили.

Зрештою, ви, ймовірно, хочете створити резервну копію USB-носія для подальшої установки та позбутися від ISO-файлу ... Просто використовуйте dd: # dd if=/dev/sdb of=win7.img

Зауважте, це копіює весь пристрій! - який зазвичай (набагато) більший, ніж файли, скопійовані в нього. Тому замість цього я пропоную

# dd count=[(size of the ISO file in MB plus some extra MB for boot block) divided by default dd blocksize] if=/dev/sdb of=win7.img

Наприклад, наприклад, з 8 М додаткових байтів:

# dd count=$(((`stat -c '%s' win7.iso` + 8*1024*1024) / 512)) if=/dev/sdb of=win7.img status=progress

Як завжди, двічі перевіряйте назви пристроїв дуже ретельно під час роботи dd.

Метод створення завантажувального USB, представлений вище, також працює з установкою установника Win10 iso. Я спробував це запустити Ubuntu 16.04, скопіювавши Win10_1703_SingleLang_English_x64.iso (розмір 4,241,291,264 байт) на USB-накопичувач на 8 ГБ - лише для завантаження не UEFI [незахищеного]. Після виконання dd звітує: 8300156 + 0 записів у 8300156 + 0 записів 4249679872 байтів (4,2 ГБ, 4,0 ГБ) скопійовано, 412.807 с, 10,3 МБ / с

Зворотний, якщо / наступного разу, коли ви хочете встановити інсталятор Windows 7 на USB.


1
Було б добре згадати числовий тип розділів, який слід використовувати і в cfdisk (7, 86, 87?)
Йохан Далін

5
Він працював з типом 7
Ropez

3
Лише зауваження: Якщо ваша файлова система ntfs дає дивні помилки дозволу, коли ви пишете їй навіть як root, переконайтеся, що ви встановили ntfs-3g.
Джеремі Салвен

1
Я спробував це безпосередньо на жорсткому диску, і я отримав помилку "Windows не може отримати доступ до джерел установки", коли я завантажився з нього.
Джеремі Салвен

4
зателефонуйте syncпісля копії, щоб переконатися, що всі файли написані
Nicolas Dusart

13

Ви можете досягти цього з dd, якщо ваш ПК підтримує UEFI, а в розширенні - GPT диски.

Відкрийте термінал, вам потрібно буде знайти, який пристрій - ваш маятник. Якщо у вас встановлений накопичувач, ви можете знайти назву пристрою, набравши "mount" і переглянувши його запис. Щось таке:

/dev/sdb1 on /media/USBDISK type vfat (rw,nosuid,nodev,uhelper=hal,uid=1000,utf8,shortname=mixed)

У цьому випадку перший розділ / dev / sdb монтується на / media / USBDISK. Відкрийте кореневу оболонку та відключіть диск.

umount /dev/sdb1

Перейдіть до каталогу, де зберігається ваш ISO в кореневій оболонці, і введіть наступне: (Замініть windows7.iso на те, що називається iso, та / dev / sdb на ідентифікатор пристрою вашого USB-накопичувача).

dd if=windows7.iso of=/dev/sdb

Якщо ваша материнська плата підтримує завантаження з маятника, вона повинна мати можливість завантажуватися. Це отримає інсталятор на маятнику, а не саму ОС.


21
Не працює для мене.

1
Чи підтримує ваша материнська плата завантаження з USB? Це буде головним вирішальним фактором того, працюватиме цей підхід чи ні.
TrueDuality

11
Не працює і для мене, і моя машина просто підтримує завантаження через USB. Можливо, цей підхід може працювати на машинах, які можуть завантажувати USB-накопичувач у стилі DVD, проте більшість BIOS передбачає розкладку в стилі HDD на USB (мається на увазі 512 байт MBR з завантажувальним кодом). Про щось, що варто згадати: CD / DVD-зображення Fedora, на відміну від W7, насправді мають такий MBR із завантажувальним кодом та таблицею розділів, що робить їх придатними і для завантаження HDD / USB.
Tronic

9
Для цього потрібно, щоб ваша материнська плата могла завантажувати USB-CDROM не лише USB-HDD
TrueDuality

12
У цьому рішенні відсутній крок встановлення MBR, і він, як правило, не спрацює, якщо він вже не магічно. Рішення від @Gunthers завершено.
stolsvik

5

Пропозиція PCambell хороша, але ви також хочете очистити MBR, еквівалент linux нижче

Я спробував це, і він спрацював (я не впевнений, чому метод DD не вдався, але, здається, розділ повинен бути ntfs?):

  • визначте, який / dev / пристрій - це ваша USB-флешка та відключіть її
  • очистіть MBR: dd, якщо = / dev / zero of = / dev / device bs = 446 count = 1
  • запустити fdisk / dev / device
  • видаліть усі розділи та створіть 1 основний розділ, зробіть його завантажувальним та збережіть зміни
  • запустити mkfs.ntfs / dev / device1 (розділ 1)
  • скопіюйте весь вміст вікна, встановленого iso, на створений вами розділ

-4

Замість

dd if=windows7.iso of=/dev/sdb

ти пишеш як root,

dd if=windows7.iso of=/dev/sdb1 

(ДОДАТИ 1 в кінці або все, що знаходиться на вашому USB-накопичувачі.)


3
Ні, значення = sdb правильне, як і в попередніх відповідях.
Джеймс Броудхед

1
Це просто неправильно.
лукад

1
-1: ddпотрібно писати на пристрої, а не на розділи
ssc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.