Puppy Linux – 内蔵ハードディスクにインストール後のGRUB2の設定方法(Lubuntuとのデュアルブート環境)
Puppy Linuxのイメージファイルの入手から内蔵ハードディスクへのインストール、GRUB2の設定までをまとめました。
GRUB2の設定で躓いたので備忘録としてメモしておきます。
今回試したPuppyはコチラからいただきました。
パピーリナックス日本語フォーラム – sakurapup.browserloadofcoolness.com • フォーラム閲覧 – 5.X系
precise-5.7.1-retro-s-65.iso
【使用環境】
ACER/エイサー Aspire One 533 AO533-KK11
画面サイズ:10インチ
CPUタイプ:Atom N455 (1.66GHz)
メモリ容量:2GB(増強 ※メーカー保証対象外)
ディスク容量:160GB
※光学ドライブ無し
既存OS:Lubuntu
ちなみに以前Puppyをインストールした記事はコチラ。
Puppy Linux ~軽量Linuxで低スペックPCを再活用~ | mogi2fruitsどっとねっと
インストール方法
ダウンロードしたイメージファイル(.iso)をUNetbootin(過去記事参照)でUSBメモリに書き込み。
PCにこのUSBメモリを指し、USBメモリから起動します。
PCによって異なりますが、BIOS/UEFIの初期画面が表示されているうちに[F2]や[F8][F10][F12]などのファンクション・キーを押していると、ブート・デバイスを選択できます。
起動後、デスクトップから「インストール」をクリックするとインストーラーが起動します。
「Frugalインストーラを実行(推奨)」を選択。
予めインストール用に20GB、ext4のパーティションを用意しておきました。ここではsda4となっています。
インストールした後で気づきましたが、必要なファイルをコピーしているだけなので、既存のOSが入っているパーティション内でもインストールできるようです。ブートローダーでvmlinuzとinitrd.gz指定してやれば起動できますね。今回はそのままsda4にインストールしています。
ファイル3つしかない。追加SFSを合わせても133MB。軽っ!
「Grub4DosConfig」の説明。ブートローダーのGRUBをインストールするかどうかの選択です。後ほど元々あるGRUB2を設定するので今回はスキップ。
ここの「Note for manual configuration」の中で設定の仕方について説明があります。以下引用。
# ‘Grub4Dos config’を使う限り、このファイルは必要ありません。
# すでになんらかのブートローダーがインストールされていて、その設定ファイルを
# 手動で編集するさいに参考にするためにいくつかの例を示します。
# 以下のうちいずれかを使ってください。インストールされているブートローダーにより異なります。
# 必要に応じてブートオプション ‘pmedia=usbflash’, ‘pfix=fsck’ などを追加してください。.# Example for Grub4Dos(menu.lst)
title Precise Puppy 5.7.1 (sda4/precise)
uuid ad80bc1d-57a2-42aa-888c-95de03363fa1
kernel /precise/vmlinuz psubdir=precise
initrd /precise/initrd.gz# Example for Grub Legacy(menu.lst or grub.conf)
# ハードウェア構成により ‘(hdX, Y)’ の中の数字を変更しなければならない場合があります。
title Precise Puppy 5.7.1 (sda4/precise)
root (hd0,3)
kernel /precise/vmlinuz psubdir=precise
initrd /precise/initrd.gz# Example for Grub2
# この内容を(Ubuntuの場合) ‘/etc/grub.d/40_custom’ に追記してください。
# コマンド ‘grub-mkconfig -o /boot/grub/grub.cfg’ あるいは ‘sudo update-grub2’ を
# (Ubuntuなど) Grub2を使っている Linux 上で実行してください。
menuentry “Precise Puppy 5.7.1 (sda4/precise)”{
search –no-floppy –fs-uuid –set=root ad80bc1d-57a2-42aa-888c-95de03363fa1
linux /precise/vmlinuz psubdir=precise
initrd /precise/initrd.gz
}# Example for extlinux(extlinux.conf)
default puppy
label puppy
kernel /precise/vmlinuz
append initrd=/precise/initrd.gz psubdir=precise
GRUBなら「menu.lst」を、GRUB2なら「/etc/grub.d/40_custom」を編集して下さいってことですね。
以上でインストールは終了です。
GRUB2の設定
ここで躓きました。
GRUB2の設定には、設定ファイルの直接編集と、「Grub Customizer」によるGUIでの編集と二通りの方法があります。
先に「Grub Customizer」で試してみたのですが何故か失敗。ブートローダーの画面で表示されませんでした。
内容は上述の「manual」に沿ってやったんですけどね。「Grub Customizer」側に何か問題があるのかもしれません。
【2013/1/3追記】
何らかの設定をしないと「update-grub」で認識しないようです。
ご指摘ありがとうございますm(_ _)m
Puppy Linux は .sfs にシステム構成を持つ構造上、GRUB 2 の update-grub で認識しません。設定必須です。Tiny Core Linux でも同様の状態になります。 @tomohiro_mogi
— Puppy Linux 日本語版 (@puppy_linux_jp) 2014, 1月 2
てことは結局設定ファイルに直で書き込まないとダメってことですかね?
仕方がないので「/etc/grub.d/40_custom」を編集しようとすると何故か「40_custom」が無い・・・
考えてみたら「Android-x86」をインストールした時も「Grub Customizer」を使っていたので「40_custom」は弄らなかった。これって一から自分で作るものだったっけ?
通常であれば「40_custom」を編集してターミナルから「sudo update-grub」をやれば、設定ファイルである「grub.cfg」が更新されますので、「grub.cfg」を直接編集することはありません。
とりあえず現状の「grub.cfg」がどうなっているか見てみると、
(中略) ### BEGIN /etc/grub.d/21_custom_proxy ### menuentry "Android-x86 4.0 RC2"{ set root=(hd0,3) linux /android-4.0-RC2/kernel quiet root=/dev/ram0 androidboot.hardware=asus_laptop video=-16 SRC=/android-4.0-RC2 initrd /android-4.0-RC2/initrd.img } ### END /etc/grub.d/21_custom_proxy ###
21_custom ・・・?
とりあえずここに記述する分にはそれほど問題無いのではないかという自己判断のもと、次のように追記。
menuentry "Precise Puppy 5.7.1 (sda4/precise)"{ set root=(hd0,4) search --no-floppy --fs-uuid --set=root ad80bc1d-57a2-42aa-888c-95de03363fa1 linux /precise/vmlinuz psubdir=precise initrd /precise/initrd.gz }
ターミナルから「sudo update-grub」をして再起動したところ、ブートローダーにPuppyが表れました。
ネットで調べているとどこのサイトも「grub.cfg」の直接編集はオススメしていません。
もしGRUB2に異常がある場合は再度GRUB2をライブCDなどからインストールして下さいm(_ _)m