いろいろな都合で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 件のコメント:
コメントを投稿