palm84.com

革命的愛熊主義者同盟!

【Easy2Boot】UEFI GRUB2 Menu System - UEFI マルチisoダイレクトブート

f:id:palm84:20170322193950p:plain

2017.3.27「UEFIブート時のメニュー表示について」追記しました

ベータ版ということでまだまだというか帯に短しな感ありで、うまく動かなかったりしますけど、将来は期待できるんでない?... みたいなw

ちょっとしか理解できてませんが試してみためもです。

INDEX

これって何?

f:id:palm84:20170322193949p:plain

UEFI_GRUB2_PTN2_Beta6 での確認です。

えーと、やや難解なので私の低スキルでわかるレベルで... すみません。orz

  • Easy2Boot に GRUB2メニューを追加する
  • 第2パーティションを作成、(UEFI)isoダイレクトブート対応のisoをコピー
  • GRUB2メニューから第2パーティションのisoを選択しブート、UEFI/BIOS(MBR mode) どちらの環境でもおk
  • isoのデフラグ不要

通常の Easy2Boot では、UEFIブートするには imgPTN への変換が必須ですが、こちらは iso コピーのみでマルチブート可能になるわけです。

注意点として、

  • secure boot には非対応
  • GRUB2は imgPTN 切替で表示
  • UEFIブート時は imgPTN 切替不可
  • isoダイレクトブート対応のisoのみ
  • 4GiB以上のisoを使用するには第2パーティションをNTFSフォーマットにする必要があるが、NTFSのisoダイレクトブートに非対応の場合あり

だいたいですが、こんなかんじで使用。

  1. 第2パーティションを作成、必要ファイル及び、isoをコピー(デフラグ不要)
  2. GRUB2の imgPTN(FAT32パーティションイメージ)を Easy2Boot(第1パーティション)へコピー
  3. BIOS(MBR)ブート or SWITCH_E2B.exe で GRUB2の imgPTN へ切替後、UEFI環境でブート

Windows 上でUSBメモリのパーティション切替は RMPrepUSB を使用。

作成方法

UEFI_GRUB2_PTN2_Beta6.zip での確認です。

上記解説ページそのままですけど、

おおまか手順
  1. 解説ページのリンクから UEFI_GRUB2_PTN2_Beta6.zip をダウンロードして展開しておく
  2. パーティション管理ソフトでUSBメモリに第2パーティション作成
  3. FAT32 or NTFS でフォーマット
  4. RMPrepUSB を起動、(Ctrl-o) 第2パーティションへ切替
  5. PTN2 フォルダ内のファイルをすべてコピー
  6. RMPrepUSB で (Ctrl-o) 第1パーティション(Easy2Boot) へ切替
  7. \_ISO\MAINMENUUEFI_GRUB2_PTN2_Beta6.imgPTNLBAa23 ファイルをコピー
  8. \_ISO\MAINMENU.mnu ファイルをコピー
  9. RMPrepUSB で (Ctrl-o) 第2パーティションへ切替
  10. isoを \_ISO\MAINMENU へコピー
  11. RMPrepUSB で (Ctrl-o) 第1パーティション(Easy2Boot) へ切替
  12. UEFIブートするには、BIOS(MBR)ブート or SWITCH_E2B.exe で GRUB2の imgPTN へ切替
  • UEFI_GRUB2_PTN2_Beta6.zip を展開

f:id:palm84:20170322193949p:plain

USBメモリに第2パーティション作成

間違うと大惨事!になるので最新の注意で!私は MiniTool Partition Wizard 10 を使用しました。

パーティション管理ソフトでUSBメモリに第2パーティション作成、FAT32 or NTFS でフォーマット。

f:id:palm84:20170322204236p:plain

  • RMPrepUSB を起動、対象USBメモリを確認し、(Ctrl-o) 第2パーティションへ切替(※ RMPrepUSB は起動したままにしておく)

f:id:palm84:20170322201306p:plain

  • USBメモリへ PTN2 フォルダ内のファイルをすべてコピー

f:id:palm84:20170322195613p:plain

  • RMPrepUSB で (Ctrl-o) 第1パーティション(Easy2Boot) へ切替(2 を指定)

f:id:palm84:20170322202246p:plain

  • UEFI_GRUB2_PTN2_Beta6.imgPTNLBAa23 ファイルを \_ISO\MAINMENU へコピー

f:id:palm84:20170322195730p:plain

  • .mnu ファイルを \_ISO\MAINMENU へコピー

f:id:palm84:20170322195614p:plain

  • RMPrepUSB で (Ctrl-o) 第2パーティションへ切替

f:id:palm84:20170322201306p:plain

  • isoを \_ISO\MAINMENU へコピー

f:id:palm84:20170322201223p:plain

【追記】解説によりますと、isoのリネームが必要なようです。ubuntu.iso, knoppix.iso など。ウチでは それでもだめでしたが… UEFIブート時がだめでしたが、ちょっと修正すればOKとなりました!(※ 後述参照あれ)

リネームするファイル名については Grub2_Payloads_Beta?.xls を参照

  • RMPrepUSB を起動、(Ctrl-o) 第1パーティション(Easy2Boot) へ切替(2 を指定)

f:id:palm84:20170322202246p:plain

  • UEFIブートするには、BIOS(MBR)ブート or SWITCH_E2B.exe で GRUB2の imgPTN へ切替

f:id:palm84:20170322201330p:plain

ちょっと編集

【2017.3.27 追記】後述してますが、ちょっと編集すれば表示可となりました

【2017.4.3 追記】通常はこのファイルは不要だと思われます。

解説ページ、及び対応xlsファイルを参照してisoのリネームなどしてみましたが、メニューにisoは表示されませんでした。orz 。゚(゚´Д`゚)゚。

というわけでちょっと足掻いてみました。(*´σー`)

GRUB2 にメニューを追加します。追記しているisoはいまんとこ下記3点のみ。第2パーティション(※ 元の Easy2Boot じゃない方)の /_ISO/MAINMENU/ へコピー。

  • ubuntu-ja-16.04-desktop-amd64.iso (1.29GB)
  • KNOPPIX_V7.6.1DVD-2016-01-16-EN.iso (4.14GB)
  • systemrescuecd-x86-4.9.3.iso (491MB)

  • /boot/grub/main.cfg# ########## START MENU ################# 下(162行目)に追記
if [ -e "/boot/grub/palm84.cfg" ]; then
menuentry "Menu 2" --unrestricted {
configfile /boot/grub/palm84.cfg
}
fi
  • /boot/grub に下記ファイル追加

スクリーンショット

  • UEFIブート GRUB2メニュー

f:id:palm84:20170322193948p:plain

  • Menu2

f:id:palm84:20170322193950p:plain

  • Menu2 - Ubuntu 詳細

f:id:palm84:20170322193951p:plain

  • Easy2Boot - ブートメニュー

f:id:palm84:20170322194101p:plain

  • Easy2Boot - Partition2 メニュー

f:id:palm84:20170322194102p:plain

  • Easy2Boot - GRUB2 imgPTN 切替後の CSMメニュー

f:id:palm84:20170322194100p:plain

  • BIOS(MBR mode) - GRUB2 ブートメニュー

f:id:palm84:20170322194103p:plain

  • BIOS(MBR mode) - GRUB2 ブートメニュー - Menu2

f:id:palm84:20170322194104p:plain

【2017.3.27追記】UEFIブート時のメニュー表示について

※ 作者様、コメントありがとうございます。

ウチではコピーしたisoのブートエントリが表示されなかったので原因を探ってみました。(※ MBR mode でのブートは 通常及び PLoP Boot Manager 使用時も問題なし)

【2017.4.3 追記】通常はブートしたUSBメモリは hd0 となる筈なのでこの作業は不要だと思われます。

UEFI_GRUB2_PTN2_Beta8 での確認です。

環境は以下の通り、

  • バージョン - UEFI_GRUB2_PTN2_Beta8
  • microSDHC 8GB + USB2.0カードリーダー
    • Partition1 = FAT32
    • Partition2 = NTFS
  • VMware Player 12 (UEFI), 及び実機 hp ノートPC (UEFI + secure boot off)
  • /_ISO/MAINMENU に3点コピー
    • KNOPPIX_V7.6.1DVD-2016-01-16-EN.iso - knoppix.iso にリネーム
    • systemrescuecd-x86-4.9.3.iso - systemrescuecd.iso にリネーム
    • ubuntu-ja-16.04-desktop-amd64.iso - ubuntu.iso にリネーム

f:id:palm84:20170327185211p:plain

UEFIブート時はGRUB2メニューにはなんも出ない... orz

はて、と原因を探ってみまする。

コマンドごにょごにょ

f:id:palm84:20170327185241p:plain

USBメモリは hd1 になってますね。

grub> search -f /_ISO/MAINMENU/grub2/defaults.txt
hd1,msdos2
grub> search -f /_ISO/MAINMENU/ubuntu.iso
hd1,msdos2

ふーむ、変数 root2 に齟齬があるみたいですね。

grub> echo $isofpath
(hd0,msdos2)/_ISO/MAINMENU/
grub> echo $root2
(hd0,msdos2)

なれば、こうすればどうじゃ

f:id:palm84:20170327185301p:plain

grub> set root2=(hd1,msdos2)
grub> set isofpath=(hd1,msdos2)/_ISO/MAINMENU/
grub> ls $isofpath/
grub2/ knoppix.iso MNU/ systemrescuecd.iso ubuntu.iso
grub> configfile $isofpath/grub2/linux_menu.grub2

f:id:palm84:20170327185320p:plain

キタ――(゚∀゚)――!!

というわけで、$root2 が正しく設定されればよいのではないか?

とりあえずな対症療法ですけど弄ってみましたよ!

GRUB2のimgPTNに切り替えた状態で下記ファイルを編集...

  • /boot/grub/main.cfg
22:	set root2=(hd0,msdos2)
23:	if [ -e (hd0,msdos1)/_ISO/MAINMENU/grub2 ] ; then set root2=(hd0,msdos1) ;fi
24:	set isofpath=$root2$isopath
  • 24行目に、下記の24,25行を挿入
22:	set root2=(hd0,msdos2)
23:	if [ -e (hd0,msdos1)/_ISO/MAINMENU/grub2 ] ; then set root2=(hd0,msdos1) ;fi
24:	if [ -e (hd1,msdos1)/_ISO/MAINMENU/grub2 ] ; then set root2=(hd1,msdos1) ;fi
25:	if [ -e (hd1,msdos2)/_ISO/MAINMENU/grub2 ] ; then set root2=(hd1,msdos2) ;fi
26:	set isofpath=$root2$isopath

こんなかんじ ( ^ω^)・・・

f:id:palm84:20170327185344p:plain

日本語環境では... 要編集

SystemRescueCd は元々英語版なので問題なしでしたが編集なしだと、Ubuntu は英語環境、KNOPPIX は起動途中で止まったり、するので日本語環境用に \_ISO\MAINMENU\grub2\linux_menu.grub2 (など)の編集が必要です。

(※ 後日やるつもり... すみませぬ。)

いろいろ

GRUB2 imgPTN への切替時、パーティション No.1 を書換するので元の Easy2Boot パーティションは見えなくなる。

Number  Start   End     Size    Type     File system  Flags
 1      624MB   670MB   46.0MB  primary  fat32        boot, lba
 2      1075MB  7948MB  6873MB  primary  ntfs         lba

isoのままでマルチブート可能になるのは魅力ですが、secure boot 非対応だったり、persistent 機能が使えないのはいまいちかもですね。現時点では今後の進歩に期待、てなかんじでしょうか。(´・ω・`)

【2017.3.27 追記】さっき気付きましたが、SWITCH_E2B.exe でパーティションの切替もできました。パーティション作成後は RMPrepUSB を使わなくてもいいかも。 (´・ω・`)

f:id:palm84:20170327191234p:plain


ほなであります