usb gpt 開機隨身碟

目的

要讓隨身碟可以UEFI 方式開機並且支援win7及lunux安裝

為了未來的趨勢,選擇gpt分割方式
並且主分區為NTFS,這樣可以容納較大的空間
第二個分割區FAT32,主要是要讓debian 的iso檔被讀取,因為debian installer沒有掛載ntfs
第三個分割區FAT32,為EFI System Partition(ESP),讓bios可以讀取

先用gparted 分割ntfs(最大空間)標籤main,第2個分割fat32(4096MiB)標籤iso,第3個分割fat32(512MiB)標籤esp
假設分割區分別是 /dev/sdb1 /dev/sdb2 /dev/sb3
如果是自動掛載的話名稱分別是 /media/<username>/main, /media/<username>/iso, /media/<username>/esp

Win7安裝

拷貝win7光碟至主分割區
將 /efi/Microsoft/ 下的boot 拷貝至/efi
找出install.wim中的bootmgfw.efi  拷貝至/eft/boot ,並且更名為bootx64.efi

cd /winfiles
cp * /media/user/main
cd /media/user/main
cp bootmgfw.efi efi/microsfft/boot/

讓隨身碟可開機

找一台已經是uefi方式開機的debian
或者傳統開機的debian 安裝grub-efi-amd64-bin

sudo grub-install --removeable --target=x86_64-efi --boot-directory=/media/user/main --efi-directory=/media/user/esp /dev/sdb

–removeable 表示安裝在可移除裝置
–boot-directory DIR 安裝grub資料在DIR/grub
–efi-directory DIR 安裝efi資料檔在DIR/EFI

設定grub.cfg


menuentry 'Start Windows Installation (EFI)' {
insmod ntfs
set root=(hd0,gpt1)
chainloader /efi/microsoft/boot/bootx64.efi
boot
}

hd0 未必是固定的,有可能是hd1,或其他

讓 grub2可讀debian iso

拷貝debian iso至第二分割區
拷貝hd-media 下的initrd.gz 至第二分割區 (http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/hd-media/)

cp debian-8.iso&amp;amp;amp;nbsp; /media//iso
cp initrd.gz /media//iso

設定grub.cfg


menuentry 'debian jessy'{
insmod efi_gop
set root=(hd0,gpt2)
set isofile='/iso/debian-8.iso'
set initrdfile='/iso/initrd.gz'
loopback loop $isofile
linux (loop)/install.amd/vmlinuz findiso=$isofile gfxpayload=1024x768x32
initrd $initrdfile}

因為出現error: no suitable mode found ,須加入efi_gop模組

參考文章:
UEFI NTFS: Bootable Windows USB from Linux
舊的文章
Grub – boot debian iso file from ntfs partition and install it
GRUB

Dual boot UEFI Windows 7 and Ubuntu 12.04 (both 64 bits). W7 entry doesn’t appear in GRUB

 

This entry was posted in 系統管理 and tagged . Bookmark the permalink.