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


9

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

我在TechNet中询问了此问题,并且得到了有关如何执行此操作的一般信息的回复:

“我个人对linux并不很熟悉,但是基本上您需要做的所有事情……以任何方式进行的工作如下:

  1. 格式化usb闪存驱动器,fat32或ntfs会创建一个足以容纳Windows安装的分区(给64GB分配3GB的空间,为32bit分配2.5GB的空间),并将该分区标记为活动/可启动。由于可以使用Windows完成此操作,但也可以使用gparted之类的工具完成此操作,因此您应该能够在debian中执行相同的操作。

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

这就是全部。”

我在各个地方发现了另一种方法,该方法几乎与TechNet中提到的方法相同。但是,此方法似乎缺少一个步骤,并且/或者我不确定该步骤是否必要。

dd并不总是有效。基本上,缺少的步骤是将适当的引导扇区写入USB记忆棒,这可以在Linux中使用来完成ms-sys。这适用于的零售版Windows 7

这是完整的概要,请参阅serverfault问题以获取更多详细信息:

  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. 在USB记忆棒上写入Windows 7 MBR:

    # ms-sys -7 /dev/sdb

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

    # sync

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

...您就完成了。

问题

  • 如果不做最后一步,usb是否应该工作# ms-sys -7 /dev/sdb?还是让USB可启动?是否仅将分区标记为可引导?

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

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

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


我用DD与ISO虽然没有为Windows 7,您可以检查,看看是否该作品:superuser.com/questions/591234/...
xsdf

Answers:


1

ms-sys命令很重要。带有该-7选项,它将在闪存驱动器上创建Windows 7兼容的引导扇区

您不能使用dd,因为ISO使用的是ISO文件系统(例如UDFISO9660),而USB驱动器仅正确支持磁盘文件系统(例如ext3,FAT32或NTFS)

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

并不是的。cp -r工作完美。只需意识到NTFS与Linux处理权限的方式是不同的,因此使用rsync保持一切不变并不重要。真正重要的是,ISO中的文件位于USB上,并且使用以下命令正确格式化了启动扇区ms-sys -7

您可以根据需要以root用户身份执行所有步骤。只有2个步骤,真正需要root是mkfs与2 mount

如果您甚至以root身份都遇到权限问题,则可能需要使用ntfs-3g /dev/sdb1某些Linux发行版仅提供NTFS只读驱动程序来挂载USB 。


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*
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.