Windows 的安装光盘镜像与一般 Linux 发行版的有所不同,所以通常可用的在 Linux 上制作 Linux 发行版安装 U 盘的方式并不适用。网上介绍 Windows 下制作 Windows 7 的安装 U 盘的文章有很多,并且博主也曾经记录了一个通过 Windows 下命令行制作安装 U 盘方式,但是博主现在很少用 Windows,所以也需要一个可以在 Linux 直接制作 Windows 安装 U 盘的方法。
帮朋友整电脑需要创建一个 Windows 7 的安装 U 盘。没有多想,直接像平常制作 Linux 安装盘一样用 dd 进行拷贝。结果发现无法引导启动电脑进行安装。搜了一下才发现(ref)原来 Windows 的启动盘是不一样的。记录一下,免得以后再走弯路。
首先,插入 U 盘,确定其设备路径(假设是 /dev/sdX),并 umount 它,
# su
# fdisk -l
# umount /dev/sdX
然后,使用 fdisk 来创建一个「空白 DOS 分区表(DOS partition table)」,
# fdisk /dev/sdX
然后在 Command (m for help): 后依次输入并回车,
要输入的选项及注意事项(比如,注意其中 o 之后有几个选项,选默认值(直接回车)即可):
p – 显示 U 盘上原有的分区表
d – 删除 U 盘上原有的分区表;重复直到删除所有的分区
o – 创建(后续选默认值)
w – 写入(保存更改)
p
d
o
w
此时该 U 盘应该就只有一个分区了,也就是 /dev/sdX1(注意结尾的 1)。
第三,格式化(注意结尾的 1),
# mkfs.ntfs -f /dev/sdX1
第四,传入基本的 U 盘启动系统文件,需要 ms-sys这个软件包。openSUSE 官方源里面就有,如果系统中没有,换个命令行窗口安装即可。注意结尾没有 1。
# zypper install ms-sys
# ms-sys -7 /dev/sdX
最后,将光盘镜像(假设路径为 /data/win7.iso)的内容复制到 U 盘中,
# mkdir /mnt/iso# mkdir /mnt/usb# mount -o loop /data/win7.iso /mnt/iso
# mount /dev/sdX1 /mnt/usb
# cp -r /mnt/iso/* /mnt/usb/ ; sync
等待数据复制完成就差不多了。
貌似这才是最后一步,清理一下,
# umount /mnt/usb
# umount /mnt/iso
最好将这两个新建的挂载点删除。©