如何使Windows 7 USB闪存从Linux安装媒体?

我有:

  • Windows 7安装媒体的ISO映像
  • 4 GB USB闪存驱动器
  • 没有DVD驱动器
  • Linux安装

好吧,在尝试所有这里提到的方法失败之后,我终于find了工作。 基本上,缺less的步骤是编写一个适当的引导扇区到USB棒,这可以从具有ms-syslilo -M Linux完成。 这适用于Windows 7零售版本。

这里是完整的概要:

安装ms-sys – 如果它不在你的仓库里,可以在这里find它。 或者,确保安装了lilo(但是如果在那里安装Grub,则不要在本地盒子上运行liloconfig步骤!)

检查你的USB媒体分配了什么设备 – 这里我们假设它是/dev/sdb 。 删除所有分区,创build一个占用所有空间的新分区,将types设置为NTFS(7),并记住将其设置为可启动:

# cfdisk /dev/sdb fdisk /dev/sdb (分区types7可启动标志)

创build一个NTFS文件系统:

# mkfs.ntfs -f /dev/sdb1

在U盘上写Windows 7 MBR (也适用于Windows 8),这里有多个选项:

  1. # ms-sys -7 /dev/sdb
  2. 或者(例如,在较新的Ubuntu安装) sudo lilo -M /dev/sdb mbr ( info )
  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,selectUSB驱动器,右键单击文件系统,然后单击“pipe理标志”。 检查启动checkbox,然后closures。

…你完成了。

毕竟,你可能想备份你的USB媒体进行进一步的安装,并摆脱ISO文件…只要使用dd: # dd if=/dev/sdb of=win7.img

请注意,这将复制整个设备! – 通常比复制到它的文件大(多)。 所以我build议

 # 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 

因此,例如8M的额外字节:

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

和往常一样,在使用dd时仔细检查设备名称。

上面介绍的创build可引导的USB的方法也适用于Win10安装程序iso。 我试着运行Ubuntu 16.04,将Win10_1703_SingleLang_English_x64.iso(大小为4,241,291,264字节)复制到一个8 GB的USB盘上 – 只在非UEFI [非安全]启动。 执行dd报告后:8300156 + 0logging在8300156 + 0logging中4249679872字节(4.2 GB,4.0 GiB)复制,412.807 s,10.3 MB / s

如果下一次要将Windows 7安装程序放到USB上,请反转。

如果您的PC支持UEFI,并且扩展名为GPT磁盘,则可以使用dd完成此操作。

打开一个terminal,你需要find什么设备是你的pendrive。 如果您已经安装了驱动器,您可以通过input“mount”并查看它的input来find设备的名称。 像下面这样:

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

在这种情况下,/ dev / sdb的第一部分安装在/ media / USBDISK上。 打开一个root shell并卸载该驱动器。

 umount /dev/sdb1 

转到ISO存储在根目录下的目录,然后键入以下命令:(将windows7.isoreplace为所调用的iso,使用usb的设备IDreplace/ dev / sdb)。

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

如果您的主板支持从一个pendrive启动它应该能够启动它。 这将获得pendrive上的安装程序而不是操作系统本身。

PCambell的build议是好的,但你也要清除MBR,相当于linux的下面

我试过这个,它工作(我不知道为什么dd方法失败,但似乎分区必须是ntfs?):

  • 找出哪个/ dev /设备是你的USB闪存驱动器,并卸载它
  • 清除MBR:dd if = / dev / zero = / dev / device bs = 446 count = 1
  • 运行fdisk / dev / device
  • 删除所有分区并创build1个主分区,使其可启动,然后保存更改
  • 运行mkfs.ntfs / dev / device1(分区1)
  • 将windows install iso的全部内容复制到您创build的分区上

代替

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

你写作为root

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

(在最后添加1或无论您的USB驱动器放置在什么位置)。