chroot-debian26環境の構築 †
- はじめに
今までdebian26は、オリジナルLANDISKのchroot環境下で動作しませんでした。
しかし、bash-3.0を用いると、それが可能になることが解りました。
本ページでは、その方法について簡単に記します。
- chroot-debian26環境の特徴
chroot-iohack版debianと同様に以下の特徴があります。
- LANDISKのオリジナル環境は一切変更しない。
LANDISKのルートファイルシステムをrwで再マウントすることなしにdebian環境を構築可能。
- debianディストリビューションをchrootの環境に構築
debian環境で作業しながら、NAS(LANDISK)としても使用可能。
- データ領域の共有化
LANDISKの/mnt/hda3/shareは、debian環境から/shareでアクセス可能。
当然ながら、ネットワークで接続されたWindowsやMac等からも/shareディレクトリへアクセス可能。
さらには、下記のような比較的新しい環境が使用可能です。
- glibc-2.3.5ベース
- gcc-3.4系の開発環境
副作用として、kernel-2.6向けのプログラムをkernel-2.4で実行することになるため、互換性問題が多少なりとも発生する可能性があります。具体的には、mysqlやnetatalk等が動作しませんでした。
ということで、実際にインストールを行ってみましょう。
インストール&設定 †
- rootになる
省略します。
まだ、telnetdを組み込んでない方は、LANDISKへログイン を参照してtelnetdを組み込み、rootになってください。
- ベースパッケージの取得および解凍
/mnt/hda3/debian26以下にdebian26のシステムをフルインストールします。
まず、次のベースファイルを用意します。
次に、ベースファイルを展開します。
debian26というディレクトリが生成され、その中へシステム一式が展開されます。
# cd /mnt/hda3
# tar vxfzp どこかの/base26-sh4-20050912-bash3.tgz
ネットワーク関連のファイルをLANDISK環境からコピーします。
# cp /etc/hosts /mnt/hda3/debian26/etc/
# cp /etc/resolv.conf /mnt/hda3/debian26/etc/
# hostname > /mnt/hda3/debian26/etc/hostname
shareディレクトリを作成します。
# mkdir /mnt/hda3/debian26/share
- debian環境の起動・終了スクリプトの作成と実行
- 起動スクリプト(debian26_start)
/mnt/hda3/debian26_startを以下の内容で作成します。
(/mnt/hda3/debian26/boot/chroot/debian26_startを参考までにご用意)
#!/bin/sh
root=/mnt/hda3/debian26
chroot=$root/boot/chroot/chroot
if [ ! -e $root/proc/cpuinfo ]; then
$chroot $root mount -t proc proc /proc
fi
if [ ! -e $root/share/disk ]; then
mount --bind /mnt/hda3/share $root/share
fi
/etc/rc.d/init.d/S95httpd stop
sleep 1;
$chroot $root /etc/init.d/mysql restart
$chroot $root /etc/init.d/apache restart
$chroot $root /etc/init.d/cron restart
$chroot $root /etc/init.d/wdm restart
$chroot $root /bin/bash -l
- 終了スクリプト(debian26_stop)
/mnt/hda3/debian26_stopを以下の内容で作成します。
(/mnt/hda3/debian26/boot/chroot/debian26_stopを参考までにご用意)
#!/bin/sh
root=/mnt/hda3/debian26
chroot=$root/boot/chroot/chroot
PATH=$PATH:/usr/local/bin
export PATH
$chroot $root /etc/init.d/wdm stop
$chroot $root /etc/init.d/cron stop
$chroot $root /etc/init.d/apache stop
$chroot $root /etc/init.d/mysql stop
killall -HUP debian26_start
sleep 1;
umount $root/proc
umount $root/share
- debian環境の起動(終了)
それぞれのスクリプトに実行属性をセットします。
# chmod +x /mnt/hda3/debian26_start
# chmod +x /mnt/hda3/debian26_stop
chroot-debian26の起動 †
動作確認 †
- 次のアプリが動作しました。
- vncserver, wdm, xterm等
- emacs, anthy等
- gcc-3.4, g++-3.4, gcj-3.4等の開発環境
- apache, php4, turck-mmcache
- samba3
- 次のアプリが動作しませんでした。
(本環境でリビルドすれば動きそうな気がしますが、試していません。)
|