linux制作win7启动u盘

来源:互联网 发布:linux sqlite 编辑:程序博客网 时间:2024/05/16 14:39

http://blog.chinaunix.net/uid-10328574-id-3526642.html

https://chliny.me/?p=32

下面这个最有用,上面那个只能当中文参考(我怀疑中文版的也是看英文的学来的)
https://gist.github.com/kuznero/9eb62f6f0612a32d9c4446a4f1f4cf74
上面这个链接实际上来自这个链接
https://serverfault.com/questions/6714/how-to-make-windows-7-usb-flash-install-media-from-linux

2010年的,早吧
我拷贝到这里吧
Here is the complete rundown again:

Install ms-sys - if it is not in your repositories, get it here. Or alternatively, make sure lilo is installed (but do not run the liloconfig step on your local box if e.g. Grub is installed there!)

Check what device your USB media is assigned - here we will assume it is /dev/sdb. Delete all partitions, create a new one taking up all the space, set type to NTFS (7), and remember to set it bootable:

cfdisk /dev/sdb or fdisk /dev/sdb (partition type 7, and bootable flag)

Create an NTFS filesystem:

mkfs.ntfs -f /dev/sdb1

Write Windows 7 MBR on the USB stick (also works for windows 8), multiple options here:

ms-sys -7 /dev/sdb

or (e.g. on newer Ubuntu installs) sudo lilo -M /dev/sdb mbr (info)
or (if syslinux is installed), you can run sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb
Mount ISO and USB media:

mount -o loop win7.iso /mnt/iso

mount /dev/sdb1 /mnt/usb

Copy over all files:

cp -r /mnt/iso/* /mnt/usb/ …or use the standard GUI file-browser of your system

Call sync to make sure all files are written.

Open gparted, select the USB drive, right-click on the file system, then click on “Manage Flags”. Check the boot checkbox, then close.

…and you’re done.

After all that, you probably want to back up your USB media for further installations and get rid of the ISO file… Just use dd: # dd if=/dev/sdb of=win7.img

Note, this copies the whole device! — which is usually (much) bigger than the files copied to it. So instead I propose

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

Thus for example with 8 M extra bytes:

dd count=$(((stat -c '%s' win7.iso + 8*1024*1024) / 512)) if=/dev/sdb of=win7.img status=progress

As always, double check the device names very carefully when working with dd.

The method creating a bootable USB presented above works also with Win10 installer iso. I tried it running Ubuntu 16.04 copying Win10_1703_SingleLang_English_x64.iso (size 4,241,291,264 bytes) onto an 8 GB USB-stick — in non-UEFI [non-secure] boot only. After execution dd reports: 8300156+0 records in 8300156+0 records out 4249679872 bytes (4.2 GB, 4.0 GiB) copied, 412.807 s, 10.3 MB/s

Reverse if/of next time you want to put the Windows 7 installer onto USB.

fdisk用法要看这个
How to Use Fdisk to Manage Partitions on Linux
https://www.howtogeek.com/106873/how-to-use-fdisk-to-manage-partitions-on-linux/

关键就是如何改boot(a命令)以及该type(t命令),最后还要保存修改(w命令)

我之前不仅没改boot和type,最关键的是一直没输入w命令执行修改。。。

如果出现错误,重新按照步骤执行一遍,慢慢来,别急

注意sdb和sdb1,绝对不能混淆,让写sdb1就输入sdb1,让写sdb就输入sdb

然而,我虽然做好了,运行时却出现
this is not a bootable disk
的问题;把U盘中的内容按文中所说dd拷贝到某img文件中,用file观察,发现此img种有错误,不知何故