インストーラー LICKを用いての Windowsとパピーリナックスとのデュアルブートを紹介した。 ここに Ubuntu系Linuxをインストールすると、Ubuntuと Windowsは起動メニューで選べるが、Puppy Linuxはメニューに出てこない。
何らかの方法で Puppy Linuxを起動し、Grub2Config を実行することで Windows、Ubuntu、パピーのトリプルブートができる。 起動がUEFIではなく(legacy)BIOSならば Grub4DosCondigでも良い。→ Grub2かGrub2Dosか(ブログ記事) なお、FrugalPupなどに同梱されている FrugalPupはWindowsやUbuntuなどとのマルチブートをサポートしていないので使ってはならない。
すでに Ubuntu系Linuxを運用しており、その起動メニューを温存したい場合、Grub2起動メニューの設定にパピーを加えることで Puppy Linuxも起動できる。
Ubuntu下でパピーをインストールするスクリプト pupisoinstall for Ubuntu がある。 これでうまくいかない場合、以下の手作業を試みる。
この記事は Lubutuや Linux Mintなど Ubuntu系のLinuxならそのまま通用する。複数のUbuntu系Linuxをインストールしている場合は、最後にインストールした Linuxがインストールされているパーティションの /boot/grub/custom.cfg を操作対象とする。
日本語フォーラムの Zstepさんの記事は custom.cfgを用いる方法で、Ubuntu側の更新の影響を受けないメリットがある。 Ubuntuがインストールされたドライブに /boot/grub/custom.cfg ファイルを作成あるいは追記するというものだが、そこにどう記述するのか、いくつかの例を紹介する。
作業はパピー上で行うのが便利だが、パピーが起動できず Ubuntu上で作業する場合は、とりあえず自分のホームディレクトリ上に custom.cfg を作成し、その後に仮想端末上で次のコマンドを実行する。
sudo cp custom.cfg /boot/grub
Grub2ではディスクの番号は「0」から始まり、パーティションの番号は「1」から始まるので注意が必要。たとえば sda1は (hd0,1)となる。 次は sdb2 にパピーがインストールされている場合。
menuentry "Biopup64 8.0"{ set root='(hd1,2)' linux /bionicpup64/vmlinuz psubdir=buonicpup64 pmedia=atahd pfix=fsck initrd /bionicpup64/initrd.gz }
パーティション指定の混乱を避けるために、次のような書き方がある。
menuentry "Biopup64 8.0"{ search --set=root --no-floppy --file /bionicpup64/vmlinuz linux /bionicpup64/vmlinuz psubdir=buonicpup64 pmedia=atahd pfix=fsck initrd /bionicpup64/initrd.gz }
frugalinstaller を使ってパピーをフルーガルインストールすると、/root/my-documents/tmp/menuentry.txt というファイルが残される。 その中の grub2 用の記述がそっくり custom.cfg に使える。次は pmediaと pfixを追記したもの。
menuentry "bionicpup64 8.0"{ search --no-floppy --fs-uuid --set=root 5c5be8b1-e46c-4975-ae90-942af2d57fb6 linux /bionicpup64/vmlinuz psubdir=bionicpup64 pmedia=atahd pfix=fsck initrd /bionicpup64/initrd.gz }
上記で使われている UUID は、Linux上なら次のようなコマンドで知ることができる。
blkid /dev/sdb2('sdb2'はパピーがインストールされているパーティション。)
LICKを用いて Windowsパーティション上にとパピーをインストールした場合、 Windowsの C: に相当するパーティション、たとえば sda3 上に lickgrub.cfg が作られている。その中のパピーに関する記述をそっくり custom.cfg に流用できる。
## start section bionic64-simple-r1 menuentry 'bionic64 simple r1' { search --set=root --file /bionic64-simple-r1/vmlinuz linux /bionic64-simple-r1/vmlinuz pfix=fsck dofsck psubdir=bionic64-simple-r1 initrd /bionic64-simple-r1/initrd.gz } menuentry 'bionic64 simple r1 (no save file)' { search --set=root --file /bionic64-simple-r1/vmlinuz linux /bionic64-simple-r1/vmlinuz pfix=ram savefile=none psubdir=bionic64-simple-r1 initrd /bionic64-simple-r1/initrd.gz } ## end section bionic64-simple-r1
BIOSがUEFIの場合、LICKのローダーにバトンタッチする方法がある。Ubuntu上の /boot/grub/grub.cfg にある、Windowsを起動するメニューを参考にした。 custom.cfgに次のように書いておく。
menuentry 'Puppy Linux(LICK)' { insmod chain insmod part_gpt insmod fat set root='hd0,gpt1' chainloader /EFI/LICK/shim.efi }
以上