Login
Immutable PageDiscussionInfoAttachments
ytoku/daily-record/2011-04-07

MMA

A micro FreeBSD environment in the jailed Debian GNU/kFreeBSD

最近、何人かでjail上でDebian GNU/kFreeBSDを動かす実験をしているが、プリミティブな環境でpingすら入っておらずにトラブルシューティングができなかった。インストールしようにもネットワークまわりのトラブルなのでaptからインストールできずに面倒くさい。

そうだ。FreeBSD環境を作ってしまえばいいじゃない。FreeBSD環境からpingコマンドと必要なファイルを一式jail内にコピーする。

[ytoku@core /jail/js]$ ldd /sbin/ping
/sbin/ping:
        libm.so.5 => /lib/libm.so.5 (0x80064c000)
        libipsec.so.4 => /lib/libipsec.so.4 (0x80076c000)
        libc.so.7 => /lib/libc.so.7 (0x800873000)
[ytoku@core /jail/js]$ sudo mkdir root/bsd
[ytoku@core /jail/js]$ sudo cp /lib/libm.so.5 root/bsd
[ytoku@core /jail/js]$ sudo cp /lib/libipsec.so.4 root/bsd
[ytoku@core /jail/js]$ sudo cp /lib/libc.so.7 root/bsd

早速jail内で実行してみる。

root@js:~/bsd# ./ping
ELF interpreter /libexec/ld-elf.so.1 not found

おおっと、実行時リンカがない。

[ytoku@core /jail/js]$ sudo cp /libexec/ld-elf.so.1 root/bsd

絶対パスで読み込んでいるのでchroot環境で動かすことにする。

root@js:~/bsd# mkdir libexec
root@js:~/bsd# mv ld-elf.so.1 libexec/
root@js:~/bsd# mkdir lib
root@js:~/bsd# mv lib*so* lib
root@js:~/bsd# chroot . /ping
usage: ping [-AaDdfnoQqRrv] [-c count] [-G sweepmaxsize] [-g sweepminsize]
            [-h sweepincrsize] [-i wait] [-l preload] [-M mask | time] [-m ttl]
            [-P policy] [-p pattern] [-S src_addr] [-s packetsize] [-t timeout]
            [-W waittime] [-z tos] host
       ping [-AaDdfLnoQqRrv] [-c count] [-I iface] [-i wait] [-l preload]
            [-M mask | time] [-m ttl] [-P policy] [-p pattern] [-S src_addr]
            [-s packetsize] [-T ttl] [-t timeout] [-W waittime]
            [-z tos] mcast-group

やったぁ

root@js:~/bsd# chroot . /ping proxy-east.uec.ac.jp
ping: cannot resolve proxy-east.uec.ac.jp: Host name lookup failure

おおっと、名前が引けない。

root@js:~/bsd# cat > etc/resolv.conf
nameserver 192.168.0.254
root@js:~/bsd# chroot . /ping proxy-east.uec.ac.jp
PING proxy-east.uec.ac.jp (130.153.26.5): 56 data bytes

わぁい

ytoku/daily-record/2011-04-07 (last edited 2011-04-07 21:39:11 by ytoku)