Làm cách nào để tạo USB flash Windows 7 cài đặt phương tiện từ Linux?


105

Tôi có:

  • Hình ảnh ISO của phương tiện cài đặt Windows 7
  • Ổ đĩa flash USB 4 GB
  • không có ổ đĩa DVD
  • Đã cài đặt Linux

Nếu bạn có thể quản lý để thực hiện tất cả các tác vụ này từ trong máy tính để bàn linux của mình, bạn sẽ khuấy động ngôi nhà. Tôi nghĩ phần khó nhất sẽ thay đổi tất cả các hoạt động mà Diskpart của Windows thực hiện. Tạo phân vùng được đánh dấu là 'hoạt động' và 'khởi động', 'chính', v.v.
p.campbell

3
Tôi nghĩ GParted ( gparted.sourceforge.net ) có thể xử lý tất cả các cờ phân vùng tốt. Xem ví dụ: gparted.sourceforge.net/sc Greensshots.php . Và tôi chưa thử nghiệm nhưng có vẻ như rsync có thể thay thế cho bản sao trong danh sách kiểm tra đó.
Matthew Flaschen

1
Có rất nhiều câu trả lời chi tiết cho cùng một câu hỏi trên Askubfox.com/q/289559/135671
erik

Câu trả lời:


181

OK, sau khi thử không thành công tất cả các phương pháp được đề cập ở đây, cuối cùng tôi đã làm cho nó hoạt động. Về cơ bản, bước còn thiếu là viết một khu vực khởi động thích hợp vào thanh USB, có thể được thực hiện từ Linux bằng ms-syshoặc lilo -M. Điều này hoạt động với phiên bản bán lẻ Windows 7.

Đây là danh sách hoàn chỉnh một lần nữa:

Cài đặt ms-sys - nếu nó không có trong kho của bạn, hãy lấy nó ở đây . Hoặc cách khác, đảm bảo lilo đã được cài đặt (nhưng không chạy bước liloconfig trên hộp cục bộ của bạn nếu ví dụ Grub được cài đặt ở đó!)

Kiểm tra xem thiết bị nào phương tiện USB của bạn được chỉ định - ở đây chúng tôi sẽ cho rằng đó là thiết bị /dev/sdb. Xóa tất cả các phân vùng, tạo một phân vùng mới chiếm toàn bộ dung lượng, đặt loại thành NTFS (7) và nhớ đặt nó có khả năng khởi động:

# cfdisk /dev/sdb   hoặc   fdisk /dev/sdb ( loại phân vùng 7 và cờ khởi động )

Tạo một hệ thống tập tin NTFS:

# mkfs.ntfs -f /dev/sdb1

Viết Windows 7 MBR trên thanh USB (cũng hoạt động cho windows 8), nhiều tùy chọn tại đây:

  1. # ms-sys -7 /dev/sdb
  2. hoặc (ví dụ: trên các bản cài đặt Ubuntu mới hơn) sudo lilo -M /dev/sdb mbr( thông tin )
  3. hoặc (nếu syslinux được cài đặt), bạn có thể chạy sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb

Gắn phương tiện truyền thông ISO và USB:

# mount -o vòng lặp win7.iso / mnt / iso
# gắn kết / dev / sdb1 / mnt / usb

Sao chép trên tất cả các tệp:

# cp -r /mnt/iso/* /mnt/usb/   ... hoặc sử dụng trình duyệt tệp GUI tiêu chuẩn của hệ thống của bạn

Gọi syncđể đảm bảo tất cả các tập tin được viết.

Mở gparted, chọn ổ USB, nhấp chuột phải vào hệ thống tệp, sau đó nhấp vào "Quản lý cờ". Kiểm tra hộp kiểm khởi động, sau đó đóng lại.

... và bạn đã hoàn thành.

Sau tất cả những điều đó, có lẽ bạn muốn sao lưu phương tiện USB của mình để cài đặt thêm và thoát khỏi tệp ISO ... Chỉ cần sử dụng dd: # dd if=/dev/sdb of=win7.img

Lưu ý, điều này sao chép toàn bộ thiết bị! - thường là (nhiều) lớn hơn các tập tin được sao chép vào nó. Vì vậy, thay vì tôi đề xuất

# 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

Vì vậy, ví dụ với 8 M byte bổ sung:

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

Như mọi khi, kiểm tra kỹ tên thiết bị khi làm việc với dd.

Phương pháp tạo USB có thể khởi động được trình bày ở trên cũng hoạt động với iso trình cài đặt Win10. Tôi đã thử nó chạy Ubuntu 16.04 sao chép Win10_1703_SingleLang_English_x64.iso (kích thước 4.241.291.264 byte) vào thẻ nhớ USB 8 GB - chỉ trong khởi động không phải UEFI [không bảo mật]. Sau khi thực hiện dd báo cáo: 8300156 + 0 bản ghi trong 8300156 + 0 bản ghi ra 4249679872 byte (4.2 GB, 4.0 GiB) được sao chép, 412.807 s, 10.3 MB / s

Đảo ngược nếu / của lần tiếp theo bạn muốn đặt trình cài đặt Windows 7 vào USB.


1
Sẽ rất hay khi đề cập đến loại phân vùng số cũng được sử dụng trong cfdisk (7, 86, 87?)
Johan Dahlin

5
Nó hoạt động với loại 7
Ropez

3
Chỉ cần một lưu ý: Nếu hệ thống tập tin ntfs của bạn có lỗi cấp phép kỳ lạ khi bạn ghi vào nó ngay cả khi đã root, hãy đảm bảo bạn đã cài đặt ntfs-3g.
Jeremy Salwen

1
Tôi đã thử điều này trực tiếp trên một ổ đĩa cứng và tôi đã gặp lỗi "windows không thể truy cập các nguồn cài đặt" khi tôi khởi động từ nó.
Jeremy Salwen

4
gọi syncsau khi sao chép để đảm bảo tất cả các tệp được viết
Nicolas Dusart

13

Bạn có thể thực hiện điều này với dd, nếu PC của bạn hỗ trợ UEFI và, bằng cách mở rộng, các đĩa GPT.

Mở một thiết bị đầu cuối, bạn sẽ cần tìm thiết bị nào là ổ đĩa của bạn. Nếu bạn đã gắn ổ đĩa, bạn có thể tìm tên của thiết bị bằng cách nhập "mount" và xem mục nhập của nó. Một cái gì đó như sau:

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

Trong trường hợp này, phần đầu tiên của / dev / sdb được gắn tại / media / USBDISK. Mở một vỏ gốc và ngắt kết nối ổ đĩa.

umount /dev/sdb1

Chuyển đến thư mục nơi ISO của bạn được lưu trữ trong vỏ gốc và nhập vào các mục sau: (Thay thế windows7.iso bằng bất cứ thứ gì được gọi là iso và / dev / sdb bằng id thiết bị của thanh usb của bạn).

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

Nếu bo mạch chủ của bạn hỗ trợ khởi động từ một ổ đĩa, nó sẽ có thể khởi động nó. Điều này sẽ nhận được trình cài đặt trên ổ đĩa chứ không phải chính hệ điều hành.


21
Không làm việc cho tôi.

1
Bo mạch chủ của bạn có hỗ trợ khởi động từ USB không? Đó sẽ là yếu tố quyết định cuối cùng của việc phương pháp này có hiệu quả hay không.
TrueDuality

11
Nó cũng không hoạt động và máy của tôi không hỗ trợ khả năng khởi động USB tốt. Có thể phương pháp này có thể hoạt động trên các máy có thể khởi động bộ lưu trữ USB kiểu DVD nhưng hầu hết các BIOS đều sử dụng bố cục kiểu ổ cứng trên USB (có nghĩa là MBR 512 byte có mã khởi động). Một điều đáng nói: hình ảnh CD / DVD của Fedora, không giống như W7, trên thực tế có MBR như vậy với mã khởi động và bảng phân vùng trên đó, làm cho chúng phù hợp với khởi động ổ cứng / USB.
Tronic

9
Điều này không yêu cầu bo mạch chủ của bạn có thể khởi động USB-CDROM chứ không chỉ USB-HDD
TrueDuality

12
Giải pháp này thiếu bước cài đặt MBR và thường sẽ không hoạt động trừ khi đã có sẵn một cách kỳ diệu. Giải pháp của @Gunthers đã hoàn tất.
stolsvik

5

Đề xuất của PCambell là tốt nhưng bạn cũng sẽ muốn xóa MBR, tương đương với linux ở bên dưới

Tôi đã thử điều này và nó đã hoạt động (Tôi không chắc tại sao phương thức dd thất bại nhưng dường như phân vùng phải là ntfs?):

  • tìm ra / dev / thiết bị là ổ đĩa flash USB của bạn và ngắt kết nối nó
  • xóa MBR: dd if = / dev / zero of = / dev / device bs = 446 Count = 1
  • chạy fdisk / dev / thiết bị
  • xóa tất cả các phân vùng và tạo 1 phân vùng chính, làm cho nó có khả năng khởi động sau đó lưu các thay đổi
  • chạy mkfs.ntfs / dev / device1 (phân vùng 1)
  • sao chép toàn bộ nội dung của windows cài đặt iso vào phân vùng bạn đã tạo

-4

Thay vì

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

bạn viết như root,

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

(THÊM 1 ở cuối hoặc bất cứ thứ gì ổ USB của bạn được đặt.)


3
Không, of = sdb là chính xác theo các câu trả lời trước.
James Broadhead

1
Đây chỉ là một lỗi bình thường.
lukad

1
-1: ddcần ghi vào thiết bị, không ghi vào phân vùng
ssc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.