如何在linux下製做一個windows的可啓動u盤?linux
情景是這樣的,有一個windows10的iso,如今想經過U盤安裝,要求即支持UEFI(啓動引導器),又支持Legacy(啓動引導器),由於有一些老的機器是不支持UEFI的。windows
那如今分析一下狀況:工具
1 windows10的iso原本就是支持UEFI的,你只要將iso的內容拷貝到U盤的分區內,在開機啓動時按某個功能鍵(好些機器是F12鍵)會出現選擇啓動方式和啓動盤的頁面。你只要選擇UEFI啓動你的U盤就能夠。get
2 要支持Legacy,那要一個引導程序了,如今流行的是grub2。那要作的就是生成grub的配置文件grub.cfg了,將grub寫入MBR。將grub寫入MBR經過命令grub-install實現,grub的配置文件就要靠手寫了。配置
如今說一下技術規格:程序
1 建議u盤的磁盤標籤是msdos,由於gpt標籤的磁盤須要一個專門的啓動分區來配合grub2的工做。這個沒試驗過,不推薦給你們。技術
2 分區格式,建議使用ntfs分區。分區大小隻要比你的iso大就能夠了。配置文件
3 分區的開始,建議空出來磁盤開始的2M空間,從2M後開始分區。windows10
如今說一下實現:db
如下假設iso的文件名字是win10.iso,u盤設備爲/dev/sdb
使用fdisk和parted命令均可以查看磁盤標籤。linux下對ntfs的格式化可能須要另外本身找工具。在這裏不作建議。
1 掛載iso,將iso內全部的文件拷貝到u盤分區內。
mkdir iso
mount win10.iso iso
cp -r iso/* /dev/sdb1
2 執行grub-install
grub-install --target=i386-pc --boot-directory=iso/boot /dev/sdb
3 手寫grub.cfg 將以下的 grub.cfg 文件放入 iso/boot/grub/
# grub.cfg menuentry "Install Windows 10" { set root= hd(0,1) chainloader +1 }