Bagaimana membuat Windows 7 USB menginstal media flash dari Linux?

105

Saya sudah:

  • Citra ISO dari media instalasi Windows 7
  • 4 GB USB flash drive
  • tidak ada drive DVD
  • Linux terpasang
Ian Kelling
sumber
Jika Anda bisa melakukan semua tugas ini dari dalam desktop linux Anda, Anda akan goyang rumah. Saya pikir bagian terberat akan mengutak-atik semua operasi yang dilakukan Diskpart Windows. Membuat partisi ditandai sebagai 'aktif' dan 'boot', 'primer', dll.
p.campbell
3
Saya pikir GParted ( gparted.sourceforge.net ) dapat menangani semua flag partisi dengan baik. Lihat misalnya gparted.sourceforge.net/screenshots.php . Dan saya belum menguji tetapi sepertinya rsync dapat menggantikan robocopy dalam daftar periksa itu.
Matthew Flaschen
1
Ada banyak jawaban terperinci untuk pertanyaan yang sama di askubuntu.com/q/289559/135671
erik

Jawaban:

181

Oke, setelah gagal mencoba semua metode yang disebutkan di sini, saya akhirnya berhasil. Pada dasarnya, langkah yang hilang adalah menulis sektor boot yang tepat ke stik USB, yang dapat dilakukan dari Linux dengan ms-sysatau lilo -M. Ini bekerja dengan versi ritel Windows 7.

Ini adalah daftar lengkap lagi:

Instal ms-sys - jika tidak ada di repositori Anda, dapatkan di sini . Atau sebagai alternatif, pastikan lilo sudah terinstal (tetapi jangan jalankan langkah liloconfig di kotak lokal Anda jika mis. Grub dipasang di sana!)

Periksa perangkat apa yang ditetapkan oleh media USB Anda - di sini kami asumsikan itu /dev/sdb. Hapus semua partisi, buat yang baru mengambil semua ruang, setel jenis menjadi NTFS (7), dan jangan lupa untuk mengaturnya agar dapat di-boot:

# cfdisk /dev/sdb   atau   fdisk /dev/sdb ( tipe partisi 7 , dan bendera yang dapat di - boot )

Buat sistem file NTFS:

# mkfs.ntfs -f /dev/sdb1

Tulis Windows 7 MBR pada stik USB (juga berfungsi untuk windows 8), beberapa pilihan di sini:

  1. # ms-sys -7 /dev/sdb
  2. atau (mis. pada pemasangan Ubuntu yang lebih baru) sudo lilo -M /dev/sdb mbr( info )
  3. atau (jika syslinux diinstal), Anda dapat menjalankan sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb

Pasang media ISO dan USB:

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

Salin semua file:

# cp -r /mnt/iso/* /mnt/usb/   ... atau gunakan peramban file GUI standar sistem Anda

Panggil syncuntuk memastikan semua file ditulis.

Buka gparted, pilih drive USB, klik kanan pada sistem file, lalu klik "Kelola Bendera". Centang kotak centang boot, lalu tutup.

... dan kamu sudah selesai.

Setelah semua itu, Anda mungkin ingin mencadangkan media USB Anda untuk instalasi lebih lanjut dan menyingkirkan file ISO ... Cukup gunakan dd: # dd if=/dev/sdb of=win7.img

Catatan, ini menyalin seluruh perangkat! - yang biasanya (jauh) lebih besar dari file yang disalin ke sana. Jadi saya malah mengusulkan

# 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

Jadi misalnya dengan 8 M byte tambahan:

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

Seperti biasa, periksa ulang nama perangkat dengan sangat hati-hati saat bekerja dengannya dd.

Metode membuat USB bootable yang disajikan di atas juga berfungsi dengan penginstal Win10. Saya mencoba menjalankan Ubuntu 16,04 menyalin Win10_1703_SingleLang_English_x64.iso (ukuran 4,241,291,264 bytes) ke 8 GB USB-stick - di boot non-UEFI [non-secure] saja. Setelah eksekusi, laporan dd: 8300156 + 0 catatan dalam 8300156 + 0 mencatat 4249679872 byte (4,2 GB, 4,0 GiB) disalin, 412,807 dtk, 10,3 MB / s

Membalikkan jika / kali Anda ingin menempatkan installer Windows 7 ke USB.

jthurner
sumber
1
Akan menyenangkan untuk menyebutkan jenis partisi numerik untuk digunakan dalam cfdisk juga (7, 86, 87?)
Johan Dahlin
5
Ini bekerja dengan tipe 7
Ropez
3
Sekedar catatan: Jika filesystem ntfs Anda memberikan kesalahan izin aneh saat Anda menulisnya bahkan sebagai root, pastikan Anda telah menginstal ntfs-3g.
Jeremy Salwen
1
Saya mencoba ini langsung ke hard drive, dan saya mendapat kesalahan "windows tidak dapat mengakses sumber instalasi" begitu saya boot dari itu.
Jeremy Salwen
4
panggilan syncsetelah salinan untuk memastikan semua file ditulis
Nicolas Dusart
13

Anda dapat melakukannya dengan dd, jika PC Anda mendukung UEFI, dan, dengan ekstensi, disk GPT.

Buka terminal, Anda harus menemukan perangkat apa yang merupakan pendrive Anda. Jika drive sudah terpasang, Anda dapat menemukan nama perangkat dengan mengetik "mount" dan melihat entri itu. Sesuatu seperti yang berikut ini:

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

Dalam hal ini, partisi pertama dari / dev / sdb sudah terpasang di / media / USBDISK. Buka shell root dan unmount drive.

umount /dev/sdb1

Pergi ke direktori di mana ISO Anda disimpan dalam root shell dan ketik yang berikut ini: (Ganti windows7.iso dengan apa pun iso disebut, dan / dev / sdb dengan id perangkat stik usb Anda).

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

Jika motherboard Anda mendukung booting dari pendrive, motherboard Anda seharusnya bisa mem-boot-nya. Ini akan membuat pemasang pada pendrive bukan OS itu sendiri.

TrueDuality
sumber
21
Tidak bekerja untuk saya.
1
Apakah motherboard Anda mendukung booting dari USB? Itu akan menjadi faktor penentu utama dari apakah pendekatan ini akan berhasil atau tidak.
TrueDuality
11
Juga tidak bekerja untuk saya dan mesin saya mendukung booting USB. Mungkin pendekatan ini dapat bekerja pada mesin yang dapat mem-boot penyimpanan USB bergaya DVD tetapi kebanyakan BIOS menganggap tata letak gaya HDD pada USB (artinya 512 byte MBR dengan kode booting di dalamnya). Satu hal yang patut disebutkan: gambar Fedora CD / DVD, tidak seperti W7, memang memiliki MBR dengan kode boot dan tabel partisi, membuatnya cocok untuk boot HDD / USB juga.
Tronic
9
Ini mengharuskan motherboard Anda untuk melakukan boot USB-CDROM bukan hanya USB-HDD
TrueDuality
12
Solusi ini tidak memiliki langkah instalasi MBR, dan biasanya tidak akan berfungsi kecuali jika sudah ada secara ajaib. Solusi oleh @Gunthers selesai.
stolsvik
5

Saran PCambell bagus tetapi Anda juga ingin menghapus MBR, padanan linux di bawah ini

Saya mencoba ini dan berhasil (saya tidak yakin mengapa metode dd gagal tetapi sepertinya partisi harus ntfs?):

  • tentukan mana / dev / perangkat yang merupakan usb flash drive Anda dan lepaskan pemasangannya
  • hapus MBR: dd if = / dev / zero of = / dev / device bs = 446 count = 1
  • jalankan fdisk / dev / perangkat
  • hapus semua partisi dan buat 1 partisi primer, buat itu bisa di-boot lalu simpan perubahannya
  • jalankan mkfs.ntfs / dev / device1 (partisi 1)
  • salin seluruh konten windows install iso ke partisi yang Anda buat

sumber
-4

Dari pada

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

Anda menulis sebagai root,

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

(TAMBAH 1 di bagian akhir atau apa pun yang menggunakan drive USB Anda.)

gonzo
sumber
3
Tidak, of = sdb sudah benar sesuai jawaban sebelumnya.
James Broadhead
1
Ini benar-benar salah.
lukad
1
-1: ddperlu menulis ke perangkat, bukan ke partisi
ssc