純正玄箱で運用していましたが、ビルドが面倒になったので、Debianにしました。DebianだとPPC向けビルド済みライブラリが提供されていて、いつでもPythonやRubyが使えるのが嬉しい。
Debian化するデメリット
ファイルサーバーとして使うならDebian化メリットはないですが、rsync で他のLinuxと連携するとなると、玄箱の文字コード(BashはEUC、SambaはSJISでファイル保存)という文字コードが障害になって、rsync やwinscp が使いにくかったのです。*1
Debian 化は簡単、ただしLennyはやり方が違う。
etch までのDebian化はとても簡単だし、Google検索で玄箱Debian化を調べればすぐに出てくる。
lenny は カーネルの差し替えが必要
lenny はカーネルが新しいので、Woody/Sage/Etch用のDebian化手法だとうまくいかない。
玄箱はフラッシュメモリに内蔵の kernel2.4. で動くけど、lenny は kernel2.6 が必須。なのでapt-line を書き換えて apt-get dist-upgrade しても kernelの依存関係でアップデートできない。libc6 と kernel2.6の関係。
woody/sarge/etch にDebian化も注意(アーカイブ化された)
Debianのミラーにこれらのパッケージが存在しない。apt-get できないので設定変更が必要。Debianのアーカイブサイトから撮ってくる。ミラーサイトにはない。ココ重要。
aptでエラーがでたら、ミラーでなくアーカイブにする。
/etc/apt/sources.list
# Woody deb http://archive.debian.org/debian/ woody contrib main contrib deb http://archive.debian.org/debian-non-US woody/non-US main contrib # sarge deb http://archive.debian.org/debian/ sarge contrib main contrib # etch deb http://archive.debian.org/debian/ etch contrib main contrib
lennyはカーネルごと差し替える
lennyにするには、カーネルを差し替える必要がある。
主に参考になるのは次のサイト
EMモードで起動する
#echo -n 'NGNG' > /dev/fl3 #reboot
telnet で接続する
telnet 192.168.2.x KURO-BOX-EM login: root Password: #EMモードのパスワードは kuro (HGは kuroadmin ) /sbin/mfdisk -e /dev/hda # 既存のパーティション削除 delete partition 1 delete partition 2 delete partition 3 create partitions... deleate all partitions. The partition table has been altered! Syncing disks. /sbin/mfdisk -c /dev/hda #自分でパーティション設定する # Device Boot Start End Blocks Id System /dev/hda1 1 261 0 83 Linux #元になるカーネル /dev/hda2 262 293 0 82 Linux swap #Swap領域 /dev/hda3 294 1599 0 83 Linux #lenny の領域 /dev/hda4 1600 30401 0 83 Linux #Sambaで使うファイルサーバ領域 ##パーティションをフォーマットしてマウントする。 mkswap /dev/hda2 #SWAPをフォーマと mke2fs -j /dev/hda1 #フォーマット(Debain領域) mke2fs -j /dev/hda3 #Sambaで使うファイルサーバー領域
純正玄箱のイメージを展開する。
純正玄箱のイメージを展開して持っていく。
mkdir /mnt/root # マウントポイント作成 mount /dev/hda1 /mnt/root # 純正玄箱のイメージ展開するパーティションをマウント
玄箱のファーム(kuro_102.zip)に含まれるimage.tgz をFTPで転送する
cd /mnt/root unzip image.zip tar zxvf tmpimage.tgz
reboot #EMモードだと作業が面倒なので、起動用Linuxで起動する。
#echo -n 'OKOK' > /dev/fl3 #reboot
引き続きLennyのイメージを持っていく
telnet 192.168.2.x KURO-BOX login: root Password: #標準 rootパスワードは kuro (HGは kuroadmin )
mount /dev/hda3 /mnt #Lennyを展開するパーティションをマウント
玄箱に Debian 5.0 (lenny) をインストールする - Revulo's Laboratoryで紹介されているパッケージをダウンロードして、FTPで転送する。
ls /mnt debian-lenny-installer-kuroBOX-20090317.tgz # debian-lenny-kuroBOX-20090317.tgz # kuro-bootsel2.20080419.tar.gz # 全部で7ファイル kuro-bootsel2-debian.tgz # loader.o # kernelimage-2.6.25.1-kuroBOX.tgz # modules-2.6.25.1-kuroBOX.tgz # tar zxvf debian-lenny-installer-kuroBOX-20090317.tgz #インストーラを取出し sh debian-lenny-installer-kuroBOX.sh #インストーラを起動する。 ##無事修了したら reboot
再起動の前に、ネットワーク設定を変えておくのが後々便利(/etc/network/interface , resolv.confあたり、あとhosts.allow,deny も空っぽにしておいてもいいかと。)
再起動したら、カーネル2.6になってる
takuya@KURO-BOX:~$ uname -a Linux KURO-BOX 2.6.25.1-kurobox #10 Sun May 4 21:50:38 JST 2008 ppc GNU/Linux
純正玄箱から、Debian化玄箱へのデータの移行
玄箱のデータをバックアップ
玄箱(純正)のデータをUSBハードディスクにバックアップする
mkdir /mnt/usb mount /dev/sda1 /mnt/usb rsync -av /mnt/ /mnt/usb
玄箱(純正)のユーザー情報をバックアップ
#uid / gid を控えておく
cp /etc/passwd /mnt/usb/passwd #玄箱はshadow ファイルを使ってないのでshadowファイルを作っておく cat /etc/passwd | sed s/^/#/| cut -d : -f 1,2 | sed s/$/:12547:0:99999:7:::/g >> /mnt/usb/shadow #Sambaのパスワードと設定をコピーしておく cp /etc/samba/smbpasswd /mnt/usb/smbpasswd cp /etc/samba/smb.conf /mnt/usb/smb.conf cp /etc/samba/smb.conf.kuro /mnt/usb/smb.conf.kuro
バックアップから玄箱(Debian化)にデータを書き戻す
#ファイルを書き戻す mount /dev/sda /mnt2 rsync -av /mnt2 /mnt #Samba設定&ユーザー情報 cp /mnt/smbpasswd /etc/samba/smbpasswd cat /mnt/usb/smb.conf >> /etc/samba/smb.conf cp /mnt/usb/smb.conf.kuro /etc/samba/smb.conf.kuro #smbpasswdと/etc/passwd の両方を移動させないと、玄箱(Debian化)のSambaから同じユーザーで使えないみたい pdbedit -L root:0:root nobody: #UNIXユーザー情報 #バックアップした /etc/passwd を元にDebianとマージする uid/gid を旧・玄箱(純正)に合わせる。 #100番台を玄箱(純正)を優先してマージする。 #/etc/passwdの形式は、次を参考に、手作業する #[http://www.linux.or.jp/JF/JFdocs/Shadow-Password-HOWTO-2.html:title] vipw vipw -s vigr vigr -s
ファイルを書き戻したら、日本語の文字コードを修正する
convmv -f sjis -t utf-8 . -r --notest #結構時間がかかる #玄箱(純正)のSambaはSjisでファイル名を作っているのでSjis→UTF8へ変換
Debianの基本設定
作業をしやすいように色々入れておく。
aptitude update #設定作業に必要なもの aptitude install screen #並行作業に aptitude install vim # vim-fullはgnome 入れるからダメよ export EDITOR=vim #visudo でnanoが起動する aptitude install sudo visudo groupadd admin usermod -G admin takuya #sudo で作業する aptitude install openssh-server #ssh 経由で作業する aptitude install mlocate updatedb #言語 LANG=C aptitude install locales dpkg-reconfigure locales LANG=ja_JP.UTF-8 #時刻 aptitude install ntpdate ntpdate ntp.nict.jp #dhcp 設定 auto eth0 iface eth0 inet dhcp #Samba設定 aptitude install samba aptitude install rsync #設定を手戻りさせたいのでRCSに aptitude install mercurial etckeeper #設定がウザイので訊いてくる項目を減らした。 sudo dpkg-reconfigure debconf
感想
もしかしたら、ハードディスクの初期化手順は不要で、Samba領域の/dev/hda3 を /dev/hda3,/dev/hda4に切り直す作業で大丈夫かもしれない。
カーネルの差し替えは EMモードで起動→純正玄箱のデータを起動しようとする→loader.o を起動するように指導される → loader.oが新しいカーネルを読み込んでデバイスを変える。
なんと楽ちん
参考
http://itnavi.com/kurobako2/
http://www.revulo.com/kuro-box/Debian/Install.html
http://runaway.air-nifty.com/tubuyaki/2007/07/kuroboxem_579c.html
http://kuro.dsk.jp/
http://miyanet.ddo.jp/~shotech/Debian/Debian.htm
http://slashdot.jp/~cyber205/journal/489318
http://sato-si.at.webry.info/200712/article_4.html
http://tanuzou.com/nuzou/wiki/index.php?%B8%BC%C8%A2