KURO-BOX/PROでようやくdebootstrapが成功しました。
いくつかポイントがありました。
設定については、この連休中にやろうと思いますが一山越えた感じです。
USBでハードディスクを接続
作業場所としてUSBハードディスクを接続しました。
起動すると/mnt/disk1に自動的にマウントされます。
hostsへの登録
KURO-BOX/PROの/etc/hostsは、起動のたびに初期化されてしまうようです。
下記を/etc/hostsに登録します。
203.178.137.175 ftp.jp.debian.org
debootstrapが失敗原因
そのまま実行すると失敗します。
/mnt/disk1 # debootstrap sarge /mnt/disk1/debinst_sample http://ftp.jp.debian.org/debian/ I: Retrieving debootstrap.invalid_dists_sarge_Release I: Validating debootstrap.invalid_dists_sarge_Release I: Retrieving debootstrap.invalid_dists_sarge_main_binary-arm_Packages I: Validating debootstrap.invalid_dists_sarge_main_binary-arm_Packages W: http://ftp.jp.debian.org/debian/dists/sarge/main/binary-arm/Packages.gz was corrupt I: Retrieving debootstrap.invalid_dists_sarge_main_binary-arm_Packages I: Validating debootstrap.invalid_dists_sarge_main_binary-arm_Packages W: http://ftp.jp.debian.org/debian/dists/sarge/main/binary-arm/Packages was corrupt /usr/sbin/debootstrap: /usr/sbin/debootstrap: 7: /usr/lib/debootstrap/pkgdetails: not found /mnt/disk1 #
失敗しているのは/usr/lib/functionsの407行目の/usr/lib/pkgdetailsです。
details="$($PKGDETAILS $p $m1 $pkgdest)"
エラーとなった時に$PKGDETAILS, $p, $m1, $pkgdestは、下記が設定されていてます。
PKGDETAILS=/usr/lib/debootstrap/pkgdetails p=adduser m1=http://ftp.jp.debian.org/debian pkgdest=/mnt/disk1/debinst_sample/var/lib/apt/lists/debootstrap.invalid_dists_sarge_main_binary-arm_Packages
手動で実行しても同じ結果となります。
/mnt/disk1 # /usr/lib/debootstrap/pkgdetails adduser http://ftp.jp.debian.org/debian /mnt/disk1/debinst_sample/var/lib/apt/lists/debootstrap.invalid_dists_sarge_main_binary-arm_Packages -sh: /usr/lib/debootstrap/pkgdetails: not found
pkgdetailsのリコンパイル
仕方ないのでソースからコンパイルし直してみます。
ソースを取得するために/etc/hostsに書きを登録します。
128.101.240.212 ftp.debian.org
付属のCDから開発環境をコピーします。
/mnt/disk1 # zcat development_kit/hddrootfs.tar.gz | (cd kurodev; tar xv) /mnt/disk1 # cd kurodev/ /mnt/disk1/kurodev # ls bin dev home mnt root share tmp var boot etc lib proc sbin sys usr /mnt/disk1/kurodev #
ソースを取得して開発環境でコンパイルする。
/mnt/disk1 # wget http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_0.2.45-0.2.tar.gz Connecting to ftp.debian.org [128.101.240.212:80] debootstrap_0.2.45-0 100% |***************************************| 33682 --:--:-- ETA /mnt/disk1 # cd kurodev/mnt /mnt/disk1/kurodev/mnt # zcat /mnt/disk1/debootstrap_0.2.45-0.2.tar.gz | tar x /mnt/disk1/kurodev/mnt # ls debootstrap-0.2.45 /mnt/disk1/kurodev/mnt # chroot /mnt/disk1/kurodev BusyBox v1.1.1 (2006.11.29-02:37+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. / # cd /mnt/debootstrap-0.2.45/ /mnt/debootstrap-0.2.45 # ls Makefile debootstrap.8 po sarge.buildd slink debian functions potato sid woody debootstrap pkgdetails.c sarge sid.buildd woody.buildd /mnt/debootstrap-0.2.45 # make pkgdetails make: dpkg: Command not found gcc -Wall -W -O2 -c -o pkgdetails.o pkgdetails.c gcc -o pkgdetails pkgdetails.o /mnt/debootstrap-0.2.45 #
もう一度、手動で実行してみるとうまくいきます。
/mnt/disk1/kurodev/mnt/debootstrap-0.2.45 # ls Makefile functions po sid woody.buildd debian pkgdetails potato sid.buildd debootstrap pkgdetails.c sarge slink debootstrap.8 pkgdetails.o sarge.buildd woody /mnt/disk1/kurodev/mnt/debootstrap-0.2.45 # ./pkgdetails adduser http://ftp.jp.debian.org/ debian /mnt/disk1/debinst_sample/var/lib/apt/lists/debootstrap.invalid_dists_sarge_main_binary-arm_Packages adduser 3.63 all http://ftp.jp.debian.org/debian pool/main/a/adduser/adduser_3.63_all.deb f11ac678b771f2dd03a46b69ed8ddcaa98230 /mnt/disk1/kurodev/mnt/debootstrap-0.2.45 #
開発環境でdebootstrapを実行する
debootstrapを展開
/mnt # chroot /mnt/disk1/kurodev/ BusyBox v1.1.1 (2006.11.29-02:37+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. / # cd /mnt /mnt # mkdir debootstrap /mnt # cd debootstrap /mnt/debootstrap # ar x ../debootstrap_0.2.45-0.2_arm.deb /mnt/debootstrap # cd / / # zcat /mnt/debootstrap/data.tar.gz | tar x / #
コンパイルしたpkgdetailsを入れ替える。
/ # cp /mnt/debootstrap-0.2.45/pkgdetails /usr/lib/debootstrap / #
debootstrapを実行する。
/ # cd /mnt /mnt # debootstrap sarge /mnt/debinst http://ftp.jp.debian.org/debian I: Retrieving debootstrap.invalid_dists_sarge_Release /usr/sbin/debootstrap: /usr/sbin/debootstrap: 218: wget: not found E: Failed getting release file http://ftp.jp.debian.org/debian/dists/sarge/Release /mnt #
なぜか、開発環境には、wgetがないので本体からコピーします。
/etc/hostsも必要でした。
~ # cp /usr/bin/wget /mnt/disk1/kurodev/usr/bin/ ~ # cp /etc/hosts /mnt/disk1/kurodev/etc
リトライします。
~ # chroot /mnt/disk1/kurodev/ BusyBox v1.1.1 (2006.11.29-02:37+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. / # debootstrap sarge /mnt/debinst http://ftp.jp.debian.org/debian I: Retrieving debootstrap.invalid_dists_sarge_Release I: Validating debootstrap.invalid_dists_sarge_Release I: Retrieving debootstrap.invalid_dists_sarge_main_binary-arm_Packages I: Validating debootstrap.invalid_dists_sarge_main_binary-arm_Packages I: Checking adduser... I: Checking apt... I: Checking apt-utils... I: Checking aptitude... I: Checking at... I: Checking base-config... I: Checking base-files... I: Checking base-passwd... I: Checking bash... I: Checking bsdmainutils... I: Checking bsdutils... I: Checking console-common... I: Checking console-data... I: Checking console-tools... ... 省略 ... Setting up console-tools (0.2.3dbs-56) ... Setting up libtextwrap1 (0.1-1) ... Setting up console-common (0.7.49) ... Looking for keymap to install: NONE Setting up base-config (2.53.10.2) ... I: Base system installed successfully. umount: /mnt/debinst/dev/pts: not mounted umount: /mnt/debinst/dev/shm: not mounted umount: /mnt/debinst/proc/bus/usb: not mounted / #
一山越えた…