it-swarm.cn

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

我有:

  • ISO映像 Windows 7安装媒体
  • 4 GB USB闪存盘
  • 没有DVD驱动器
  • 已安装Linux
106
Ian Kelling

好的,在尝试了此处提到的所有方法均未成功后,我终于使它工作了。基本上,缺少的步骤是将适当的引导扇区写入USB记忆棒,这可以从Linux使用ms-syslilo -M完成。这适用于Windows 7零售版。

这是完整的摘要:

安装ms-sys-如果它不在您的存储库中,请 这里 。或者,确保已安装lilo(但是(例如,如果在其中安装了Grub,则请勿在本地计算机上运行liloconfig步骤!)

检查您的USB媒体分配了什么设备-在这里我们将假定它为/dev/sdb。删除所有分区,创建一个占用所有空间的新分区,将类型设置为NTFS(7),并记住将其设置为可引导:

# cfdisk /dev/sdbfdisk /dev/sdb(分区类型7bootable标志)

创建一个NTFS文件系统:

# mkfs.ntfs -f /dev/sdb1

在USB记忆棒上写入Windows 7 [〜#〜] mbr [〜#〜] (也适用于Windows 8),此处有多个选项:

  1. # ms-sys -7 /dev/sdb
  2. 或(例如,在较新的Ubuntu安装上)Sudo lilo -M /dev/sdb mbrinfo
  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驱动器,右键单击文件系统,然后单击“管理标志”。选中启动复选框,然后关闭。

...您就完成了。

毕竟,您可能想要备份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 M的额外字节:

# 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字节)复制到8 GB的USB记忆棒中-仅在非UEFI [非安全]启动中。执行后dd报告:8300156 + 0条记录中的8300156 + 0条记录已复制出4249679872字节(4.2 GB,4.0 GiB),412.807 s,10.3 MB/s

下次是否要将Windows 7安装程序放到USB上,请进行相反的操作。

183
jthurner

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

打开一个终端,您将需要找到什么设备是您的Pendrive。如果已安装驱动器,则可以通过键入“ mount”并查看其条目来找到设备的名称。类似于以下内容:

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

在这种情况下,/ dev/sdb的第一部分安装在/ media/USBDISK。打开根Shell,然后卸载驱动器。

umount /dev/sdb1

转到在根Shell中存储ISO的目录,然后键入以下内容:(将Windows7.iso替换为任何iso,将/ dev/sdb替换为USB记忆棒的设备ID)。

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

如果您的主板支持从Pendrive引导,则应该能够从Pendrive引导。这会将安装程序安装在Pendrive上,而不是操作系统本身。

13
TrueDuality

PCambell的建议很好,但是您还需要清除MBR,下面是linux等效项

我尝试了一下并奏效了(我不确定为什么dd方法失败了,但似乎分区必须是ntfs?):

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