
インストーラー 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
}
以上