如何在linux下制作一個windows的可啟動u盤?
情景是這樣的,有一個windows10的iso,現在想通過U盤安裝,要求即支持UEFI(啟動引導器),又支持Legacy(啟動引導器),因為有一些老的機器是不支持UEFI的。
那現在分析一下情況:
1 windows10的iso本來就是支持UEFI的,你只要將iso的內容拷貝到U盤的分區內,在開機啟動時按某個功能鍵(好些機器是F12鍵)會出現選擇啟動方式和啟動盤的頁面。你只要選擇UEFI啟動你的U盤就可以。
2 要支持Legacy,那要一個引導程序了,現在流行的是grub2。那要做的就是生成grub的配置文件grub.cfg了,將grub寫入MBR。將grub寫入MBR通過命令grub-install實現,grub的配置文件就要靠手寫了。
現在說一下技術規格:
1 建議u盤的磁盤標簽是msdos,因為gpt標簽的磁盤需要一個專門的啟動分區來配合grub2的工作。這個沒試驗過,不推薦給大家。
2 分區格式,建議使用ntfs分區。分區大小只要比你的iso大就可以了。
3 分區的開始,建議空出來磁盤開始的2M空間,從2M后開始分區。
現在說一下實現:
以下假設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 }