2way boot (?) uefi と legacy
usbから起動できる linux(ubuntu) を持っておけば便利だが、ここのところuefiで起動するものが増え従来のbios(mbr)から起動するものが混在していて、biosから起動するだけのものではいちいちPCの設定を変えないと行けないのはめんどくさい。
そこで両方で起動できるのがいいと思いisoイメージをUSBに焼いたが、これではプログラムとか変更はできるが保存ができない(パーティションを分ければできなくもないが...)ので、なにかいい方法はないかと探したらあった。
窓の外には: How To UEFI and BIOS Bootloader on USB Flash Drive
と、ここのページで紹介されていたので早速作った。
biosから起動するのはどのPCでもいいが、uefiではPCによってHDDやUSBの認識順番が違うらしく、起動できるのとできないのがあった。イメージを焼いたUSBならできるのだから、これでもできるはずと思い、grub.cfgを変更してuuid(vfatのは16進数で8桁)からパーティションを探すようにしたらうまくいかない。grub rescue ばかりなってしまう。uefiの仕様書を読めばなにかヒントが得られるかもしれないがめんどくさいのでやめる。
今度は逆に先にuefiで起動しインストールする。パーティションは efi を100MBほどで作りスワップとメインのパーティションを作りインストールする。インストールできたらもう一度インストールメディアをbiosから起動し、grubをインストールする。先ほどインストールしたUSBを適当な場所にマウントしターミナルから
$ sudo grub-install --root-directory=/mount-point/ /dev/sdx
とすればgrubがインストールされ他のPCからでも起動できるようになる。
あとはリポジトリを追加するなりソースを落としてコンパイルするなりして、grub customizerをインストールして余計なエントリーを消すだけ。
bootx64.efiをshimx64.efiで置き換えるとセキュアブートにも対応できるかも。
参考