我有:Windows 7安装介质的ISO映像



4 GB USB闪存驱动器
没有DVD驱动器
Linux已安装
/>

评论

如果您可以在linux桌面上完成所有这些任务,那么您将摇摇欲坠。我认为最困难的部分是摆弄Windows Diskpart的所有操作。将分区标记为“活动”和“引导”,“主”等。

我认为GParted(gparted.sourceforge.net)可以很好地处理所有分区标志。参见例如gparted.sourceforge.net/screenshots.php。而且我还没有测试过,但是看起来rsync可以代替该清单中的robocopy。

关于这个问题,有很多详细的答案在askubuntu.com/q/289559/135671

#1 楼

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

这里是完整的摘要:

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

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

# cfdisk /dev/sdbfdisk /dev/sdb(分区类型7和可启动标志)

创建NTFS文件系统:

# mkfs.ntfs -f /dev/sdb1

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


# ms-sys -7 /dev/sdb
sudo lilo -M /dev/sdb mbr(信息)
或(如果已安装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上,请反转。

评论


还要提及在cfdisk中使用的数字分区类型(7、86、87?)。

–约翰·达林(Johan Dahlin)
2010-09-5 21:03



它适用于类型7

–罗佩兹
2010-09-15 20:56

请注意:如果您以root用户身份写入ntfs文件系统时,出现奇怪的权限错误,请确保已安装ntfs-3g。

–杰里米·萨尔文(Jeremy Salwen)
11年6月24日在6:32

我直接将其尝试到硬盘驱动器上,并且从其启动后出现错误“ Windows无法访问安装源”。

–杰里米·萨尔文(Jeremy Salwen)
11年6月24日在7:21

复制后调用同步以确保所有文件均已写入

–尼古拉斯·杜萨特(Nicolas Dusart)
2014年11月14日上午10:43

#2 楼

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

打开一个终端,您将需要查找什么设备是pendrive。如果已安装驱动器,则可以通过键入“ mount”并查看其条目来找到设备的名称。类似于以下内容:在这种情况下,/ dev / sdb的第一部分安装在/ media / USBDISK上。打开根目录外壳并卸载驱动器。

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


转到根目录外壳中存储ISO的目录,然后键入以下内容:(替换windows7.iso带有iso的名称,以及带有USB记忆棒设备ID的/ dev / sdb)。

umount /dev/sdb1


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

评论


对我不起作用。

–user8602
2010年6月2日于16:41

主板是否支持从USB引导?这将是此方法是否有效的最终决定因素。

–TrueDuality
2010年6月4日14:46

也对我不起作用,我的机器确实支持USB引导。也许这种方法可以在可以引导DVD样式的USB存储的机器上工作,但是大多数BIOS都假定USB上的HDD样式的布局(意味着其中包含引导代码的512字节MBR)。值得一提的是:与W7不同,Fedora CD / DVD映像实际上确实具有这样的MBR,上面带有启动代码和分区表,也使它们也适合HDD / USB启动。

– Tronic
10年8月28日在17:35

这确实要求您的主板能够引导USB-CDROM而不只是USB-HDD

–TrueDuality
2010-10-5 12:43



此解决方案缺少MBR安装步骤,除非它已经神奇地存在,否则通常将无法使用。 @Gunthers的解决方案已完成。

–stolsvik
2011年12月25日的1:30

#3 楼

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的全部内容复制到您创建的分区上


#4 楼

而不是

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


,您写为root

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


(末尾加1 USB驱动器位于。)

评论


否,of = sdb根据前面的答案是正确的。

–詹姆斯·布罗德黑德
2011年8月13日21:00

这是完全错误的。

– lukad
2014年5月24日上午10:31

-1:dd需要写入设备,而不是分区

– ssc
2014-09-16 13:12