それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

玄箱のLenny(カーネル2.6)を使ったDebian化し、純正玄箱は諦めた。

純正玄箱で運用していましたが、ビルドが面倒になったので、Debianにしました。DebianだとPPC向けビルド済みライブラリが提供されていて、いつでもPythonRubyが使えるのが嬉しい。

Debian化するメリット

  1. make 要らない
  2. OpenSSHの最新版が使えて安心
  3. Sambaの文字コードUTF-8になる。

Debian化するデメリット

  1. 玄人志向提供の管理GUIが使えなくなる。

ファイルサーバーとして使うならDebian化メリットはないですが、rsync で他のLinuxと連携するとなると、玄箱文字コードBashEUC、SambaはSJISでファイル保存)という文字コードが障害になって、rsyncwinscp が使いにくかったのです。*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が新しいカーネルを読み込んでデバイスを変える。

なんと楽ちん



*1:ただRsyncにも文字コードオプションやWinSCPにも文字コード解決転送オプションはあるんでちゃんと使えば問題ないんで