使用 ms-sys 或 dd 从 linux 创建可引导的 Windows 7 USB 驱动器有什么麻烦?

Abe*_*oto 9 linux windows-7 bootable-media usb-flash-drive

我一直在阅读一些关于如何从 linux 创建 Windows 7 安装 USB 媒体(安装 Windows 7)的网页和帖子(这里和其他论坛)

我在 TechNet 上问过这个问题,我得到了一个关于如何做的一般信息的回复:

“我个人对 linux 不是很熟悉,但基本上你需要做的所有事情......无论你以何种方式做如下:

  1. 格式化 USB 闪存驱动器,fat32 或 ntfs 创建一个足以承载 Windows 安装的分区(64 位提供或占用 3GB,32 位提供 2.5GB)并将该分区标记为活动/可启动。由于这可以在 windows 上完成,但与 gparted 之类的工具一样好,因此您应该能够在 debian 中执行相同的操作。

  2. 创建该分区后,挂载您下载的 iso,并将所有文件从根目录复制到 USB 闪存驱动器的根目录中。

这就是全部。”

我在各个地方找到了另一种方法,这与TechNet 上提到的几乎相同。但是,此方法中似乎缺少一个步骤和/或我不确定是否有必要的步骤。

dd并不总是有效。基本上,缺少的步骤是将正确的引导扇区写入 USB 记忆棒,这可以从 linux 使用ms-sys. 这适用于零售版的Windows 7.

这是完整的纲要,有关更多详细信息,请参阅服务器故障问题

  1. 安装ms-sys
  2. 检查分配给您的 USB 媒体的设备 ( fdisk -l) 此处我们假设它是/dev/sdb
  3. 删除所有分区,创建一个占用所有空间的新分区,将类型设置为 NTFS,并将其设置为可引导:

    cfdisk /dev/sdb

  4. 创建 NTFS 文件系统:

    mkfs.ntfs -f /dev/sdb1

  5. 挂载iso和usb媒体:

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

  6. 复制所有文件:

    # cp -r /mnt/iso/* /mnt/usb/

  7. 在 U 盘上写入 Windows 7 MBR:

    # ms-sys -7 /dev/sdb

  8. 确保写入已刷新(请耐心等待几分钟):

    # sync

  9. 打开 gparted,选择 U 盘,右键单击文件系统,然后单击“管理标志”。选中“启动”复选框,然后关闭

......你就完成了。

问题

  • 如果不做最后一步,usb 不应该工作# ms-sys -7 /dev/sdb吗?或者是为了使USB可启动?它只是将分区标记为可引导吗?

  • 使用 rsync 而不是更好cp -r吗?

  • 所有这些步骤都必须完成root吗?如果没有,我是否需要将chmod所有文件664以及chown用于安装 USB 设备和 ISO 映像的所有目录?我认为复制数据更容易,root并且不会影响数据。

  • 有没有人尝试过这种方法或类似的方法,比如用 复制iso dd

小智 1

我尝试过 dd (dd if=/file/win7.iso of=/dev/sdb),但不起作用。

我让它发挥作用的步骤:

  • 安装ms-sys
  • gparted 创建分区,并创建 NTFS 文件系统。

然后应用这些命令:

# mount -o loop win7.iso /mnt/iso 
# mount /dev/sdb1 /mnt/usb
# cp -r /mnt/iso/* /mnt/usb/*
# ms-sys -7 /dev/sdb*
Run Code Online (Sandbox Code Playgroud)