Gentoo on eMac

[ Nob's Home | LinuxPPC ]

MacOS9が起動できないeMacを購入してしまいました。
OSXでclassic環境でアプリを使うのですが。遅い。
そこでeMacでLinuxを動かしてMacOnLinuxでなんとかならないか、試してみました。

eMacの準備

1GHz PowerPC G4、メモリ128Mです。OSX10.3がinstallされています。
eMac Software Install and Restore 1のDVDで起動し、
40GBのHDDをOSXのディスクユーティリティで2分割します。
OSXを後ろのPartitionにinstallします(Classic環境もinstallしておきます)。

Gentoo

GentooはLinuxのdistributionの1つで、新しく速いと話題です。
Gentoo全般のdocumentはhttp://www.gentoo.org/doc/ja/にあります。
日本のUserGroupはhttp://www.gentoo.gr.jp/です。

PPCへのinstallについては Gentoo Linux/PPC 1.4_rc7 インストール説明書 が詳しく、
Gentoo Linux/PowerPC FAQ も参考になります。

http://www.gentoo.org/からたどって
ミラーサイトからisoイメージをgetします。
今回は
http://distro.ibiblio.org/pub/linux/distributions/gentoo/releases/ppc/2004.1/livecd/から
install-ppc-universal-2004.1.isoと
http://distro.ibiblio.org/pub/linux/distributions/gentoo/releases/ppc/2004.1/packagecd/g4/ から
packages-g4-2004.1.iso をgetしました。

OSXのディスクユーティリティで2枚のCD-Rに焼きます。

GentooのCDで起動

焼いたuniversal-2004.1.isoのCDを入れてキーボードの"C"を押しながらeMacを再起動させると yabootが立ち上がります。
yabootはいわゆるNewWorld Mac(iMac以降)に対応したOS起動用のsoftwareです。
メッセージが表示され
boot: ■
となります。 ここでreturnキーを押すと左上にペンギンが出現しGentooが立ち上がります。
自動的にrootでloginした状態になります。
もしUSキーマップではないシステムでインストールをしているなら、loadkeysコマンドを使いキーマップを設定してください。 キーマップは/usr/share/keymapsで見つけることができます。smallestcdは起動中に表示されるメニュー(configuration system)を使ってキーマップを設定します。

networkの設定

DHCPのサービスが提供されているなら、
# dhcpcd eth0
あるいは
# net-setup eth0
で設定します。

/etc/resolv.confを作成します。

domain ***.***.***
nameserver ***.***.***.*** 
# ifconfig, netstat, pingなどでnetworkの動作を確認してください。

HDDのpartitioning

ここからが難しくなります。
mac-fdiskでyabootが使用する領域、Gentooをinstallする領域、swapの領域を確保します。
eMacの場合、対象となるHDDは通常 /dev/hda となります。(外付や増設したHDDの場合は別です)

 
# mac-fdisk /dev/hda
/dev/hda
Command (? for help): 
とでますので"p"と入力してください。
この"p"コマンドで現在のpartitionの状況が表示されます。
2分割した後はこのようになっていました。
        #                type name                  length   base     (size)    system       
/dev/hda1   Apple_partion_map Apple                     63 @ 1        ( 31.5k)  Partion map
/dev/hda2   Apple_Free                              262144 @ 64       (128.0M)  Free space
/dev/hda3   Apple_HFS         Apple_HFS_Untitled6 39622336 @ 39622336 ( 18.9G)  HFS
/dev/hda4   Apple_Free                              262144 @ 39884544 (128.0M)  Free space
/dev/hda5   Apple_HFS         Apple_HFS_Untitled7 40146544 @ 40146688 ( 19.1G)  HFS
/dev/hda6   Apple_Free                                  16 @ 80293232 (  8.0k)  Free space

Block size=512, Number of Blocks=80293248
DeviceType=0x0,DeviceID=0x0
Command (? for help):
/dev/hda5にOSXがinstallされています。
/dev/hda2と/dev/hda4は無駄な領域となっています。
/dev/hda3を削除して/dev/hda2,3,4を一つのFreeな領域とします。
領域の削除は"d"コマンドです。
Command (? for help): d3
Command (? for help): p
        #                type name                  length   base     (size)    system
/dev/hda1   Apple_partion_map Apple                     63 @ 1        ( 31.5k)  Partion map
/dev/hda2   Apple_Free                           40146624  @ 64       ( 19.1G)  Free space
/dev/hda3   Apple_HFS         Apple_HFS_Untitled7 40146544 @ 40146688 ( 19.1G)  HFS
/dev/hda4   Apple_Free                                  16 @ 80293232 (  8.0k)  Free space
/dev/hda3が開放され /dev/hda2として1続きのFree spaceになります。

まず最初にyabootが使用する800KBのbootstrap領域を確保します。
bootstrap領域確保には専用の"b"コマンドを使います。

Command (? for help): b
First block: 64
Command (? for help): p
        #                type name                  length   base     (size)    system
/dev/hda1   Apple_partion_map Apple                     63 @ 1        ( 31.5k)  Partion map
/dev/hda2   Apple_Bootstrap   bootstrap               1600 @ 64       (800.0k)  bootstrap 
/dev/hda3   Apple_Free                            40145024 @ 1665     ( 19.1G)  Free space
/dev/hda4   Apple_HFS         Apple_HFS_Untitled7 40146544 @ 40146688 ( 19.1G)  HFS
/dev/hda5   Apple_Free                                  16 @ 80293232 (  8.0k)  Free space
この bootstrap領域は「必ず」 Apple_partion_mapの次にくるようにします。
Apple_partion_mapが /dev/hda1ですので、/dev/hda2 になります。
もし bootstrap領域が /dev/hda2 以外になってしまったときは、
mac-fdiskの"r"コマンドでbootstrap領域の位置を /dev/hda2にしてください。

つぎにswap領域を確保します。ここでは512MBとします。
通常の領域確保は"c"(小文字)で行います。

Command (? for help): c
First block: 1664  ← /dev/hda3のbaseを指定します。
Length (in blocks, kB(k)), MB(M), GB(G)) : 512M
Name of partiton : swap
Command (? for help): p
        #                type name                  length   base     (size)    system
/dev/hda1   Apple_partion_map Apple                     63 @ 1        ( 31.5k)  Partion map
/dev/hda2   Apple_Bootstrap   bootstrap               1600 @ 64       (800.0k)  bootstrap
/dev/hda3   Apple_UNIX_SVR2   swap                 1048576 @ 1664     (512.0M)  Linux swap
/dev/hda4   Apple_Free        Extra               39096448 @ 1050240  ( 18.6G)  Free space
/dev/hda5   Apple_HFS         Apple_HFS_Untitled7 40146544 @ 40146688 ( 19.1G)  HFS
/dev/hda6   Apple_Free                                  16 @ 80293232 (  8.0k)  Free space
最後にGentooのrootディレクトリを確保します。
Command (? for help): c
First block: 1050240 ← /dev/hda4のbaseを指定します。
Length (in blocks, kB(k)), MB(M), GB(G)) : 39096448 ← /dev/hda4のlengthをblock数で
Name of partiton : /
Command (? for help) : p

        #                type name                  length   base     (size)    system
/dev/hda1   Apple_partion_map Apple                     63 @ 1        ( 31.5k)  Partion map
/dev/hda2   Apple_Bootstrap   bootstrap               1600 @ 64       (800.0k)  bootstrap
/dev/hda3   Apple_UNIX_SVR2   swap                 1048676 @ 1664     (512.0M)  Linux swap
/dev/hda4   Apple_UNIX_SVR2   /                   39096448 @ 1050240  ( 18.6G)  Linux native
/dev/hda5   Apple_HFS         Apple_HFS_Untitled7 40146544 @ 40146688 ( 19.1G)  HFS
/dev/hda6   Apple_Free                                  16 @ 80293232 (  8.0k)  Free space
領域確保が完成したら "w"コマンドでパーティションテーブルに書き込みます。
この"w"コマンドを実行する前であれば、パーティションテーブルは変更されません。
最後に"q"コマンドで mac-fdiskを終了します。
Command (? for help) : w
Write partition map ? [n/y]: y
The partition map has been saved successfully
Syncing disks.
Command (? for help) : q

swapを作成する

/dev/hda3をswap領域とします。
# mkswap /dev/hda3
# swapon /dev/hda3

rootファイルシステムを作成する

ここでは mke2fs -j で ext3 ファイルシステムにします。
# mke2fs -j /dev/hda4

rootファイルシステムをmountする

/mnt/gentoo ディレクトリを作成し、ここにrootファイルシステムをmountします。
# mkdir /mnt/gentoo
# mount /dev/hda4 /mnt/gentoo

Stage Tarballを展開する

ここではstage3のtarballを展開します。(1から作り上げていきたい人はstage1,2を)
# cd /mnt/gentoo
# tar -xvjpf /mnt/cdrom/stages/stage3-g4-20040412.tar.bz2

Portageを展開する

ここではCDからportageを展開します。
# cd /mnt/gentoo/usr
# tar -xvjf /mnt/cdrom/snapshots/portage-20040412.tar.bz2  

[ Nob's Home | LinuxPPC ]
nob@makioka.y-min.or.jp