如何从Linux制作Windows 7 USB闪存介质?

Modified on: Thu, 26 Sep 2019 04:20:02 +0800

我有:

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

最佳答案

好的,在尝试了这里提到的所有方法失败后,我终于开始工作了。基本上,缺少的步骤是将一个正确的引导扇区写入USB记忆棒,这可以通过ms-syslilo -M从Linux完成。这适用于Windows 7零售版。

以下是完整的纲要:

安装ms-sys - 如果它不在您的存储库中,请此处。或者,确保已安装lilo(但在本地方框上运行liloconfig步骤,例如,如果安装了Grub!)

检查USB媒体分配的设备 - 这里我们假设它是/dev/sdb。删除所有分区,创建占用所有空间的新分区,将类型设置为NTFS(7),并记住将其设置为可启动:

# cfdisk /dev/sdb fdisk /dev/sdb(分区类型7,和< strong>可启动标志)

创建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 mbr信息
  3. 或(如果安装了syslinux),您可以运行sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb
  4. 醇>

    安装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 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上,则反转。


相关问答

添加新评论