2007年9月24日月曜日

CD-Plamoをカスタマイズしてみる



いろいろな都合でCDから起動する環境が必要になりました。


そこで、いつも使っているPlamoLinuxをベースにしたCD-Plamoを使うことにしました。


Knoppixとかも使ってみたんですが、やっぱり少し豪華すぎる気がしちゃいました。


ということで、CD-Plamoを使っていたんですが、いろいろいじりたくなったので、なんとなくでいじってみました。





●準備


contribからmkisosfをインストールしておく。それとディレクトリを圧縮する必要があるので、mkzftreeコマンドをインストールしておきます。


mkzftreeコマンドは、zisofsからソースをダウンロードできます。





CDの中味を全てコピーします。


CD-Plamoは、特殊な圧縮方式をつかっているので、Linux上で作業する必要があります。


デバイスをコピーするんでrootで作業します。



/root

|__/work

|__/CDPlamo  (ここにコピーしました)








chroot


chrootというコマンドを利用することで、指定したディレクトリを仮想的に'/'とすることができます。






#cd /root/work


#chroot /CDPlamo /bin/bash






これで/CDPlamoディレクトリを'/'としてbashを起動します。


これ以降は、このbash上で作業を行いますが、このシェルでは、/root/work/CDPlamoが仮想的な'/'になって、これより上に移動できないので、別のコンソールを開いて、そちらでファイルの追加等を行います。(この別のコンソールをzshと表記します)


既存のシステム上のディレクトリを母艦と表記します。





chrootの方と通常のシェルを間違って作業すると大変なことになります。


移動するごとにpwd,ls等で現在位置を確認してください。





●いじったところ


1.不要なアプリの削除


 通常と同じようにpkgtoolを利用して削除できる。


 この時に/dev/nullがないとエラーが出ますので。/devディレクトリを作って、その中に母艦から/dev/nullをコピーしておきます。






zsh


#mkdir /root/work/plamo/dev


#cp -a /dev/null /root/work/plamo/dev (aオプションを忘れない)






2.追加のアプリをインストール


 これも通常と同じようにinstallpkgを利用できる。


 このとき/tmpがないとエラーが出ますのでbashの方で作っておきます。(作らなくてもいけそうです)


 アプリを/usr/local以下に入れるのが主流だと思うんですが、/usr/local以下は存在しません。ので、/usr以下に入れて逃げました。


(自分メモ)


 vim,fluxbox,fluxconf,mpg123


変更等がおわったら、先程作った/tmp,/devディレクトリを削除し、chrootを終了しておきます。exitで終了できます。





3.ホームに置く設定ファイルの追加、変更


 追加したアプリや独自の設定があるアプリの設定ファイルを追加、変更しました。


 zshで、母艦のホームディレクトリからファイルを持ってきたり、bashで普通に編集したりします。


(自分メモ)


/home-----.fluxbox,.w3m,.zshrc,.vimrc,.gvimrc,.mozilla


/usr/sbin-viをrename、vimのシンボルリンクをviでつくる。





4.initrd.gzの変更


 起動したときにram上に展開される、つまり書き込みが可能になる部分は、このinitrd.gzの中に入ってるので、これを展開、マウントして、必要な部分を変更する。


 



zsh


#cd /root/work/plamo/isolinux


#cp initrd.gz ../../


#cd ../../


#ls


initrd.gz plamo/


#gzip -d initrd.gz


#mount -o loop initrd /mnt






これで、initrd.gzが/mntにマウントされ編集可能になります。


ここでは、/etc,/rootで編集が必要な設定ファイルを変更しました。


(自分メモ)


/etc-----hosts,network.conf,passwd(シェルの変更)


/root----.bashrc





変更が終わったらinitrdをアンマウント、圧縮する。






zsh


#umount /mnt


#cd /root/work 


#gzip -9 initrd


#ls


initrd.gz






5.isoイメージを作る


 コピーしたinitrd.gzをもとに戻し、isolinuxディレクトリは、圧縮しないので、ひとつ上にコピーします。


 その後、圧縮して、isoイメージをつくります。






zsh


#cd /root/work/


#ls


initrd.gz plamo/


#mv initrd.gz plamo/isolinux


#cp -ar plamo/isolinux .


#ls


isolinux/ plamo/


#mkzftree plamo/ plamo_cus  (plamoディレクトリを圧縮しplamo_cusを作る


#cp -ar isolinux plamo_cus (isolinuxディレクトリをもどす)


#mkisofs -v -J -R -z -b isolinux/isolinux.bin -c isolinux/boot.cat \


-no-emul-boot -boot-load-size 4 -boot-info-table \


-V CDplamo_cus -o cdplamo_cus.iso plamo_cus


(ブート可能なisoイメージをつくる)


 #ls


cdplamo_cus.iso plamo/ plamo_cus/






完成です!!





ここまで、一週間かかりました。。。





0 件のコメント:

コメントを投稿