読者です 読者をやめる 読者になる 読者になる

chrootを使ってみる。

Ubuntu BackTrack

chrootを使うとLinux上で他のLinuxディストリビューションを動かせるということを知り、試してみました。

今回はUbuntu8.04上でBackTrack4を動かしてみます。

まず必要なものは、インストール済みにUbuntu、そしてBackTrack4のLiveCD(作り方:http://goo.gl/FpyR)。
ただし、使うのはISOイメージではなく、SquashFS(.squashfs)です。SquashFSLinux向けの圧縮読み込み用ファイルシステムなのだそうです。
LiveCDを作ると自動的に作成されるみたいです。

VMwarePlayerでUbuntuを起動させて、BT4のLiveCDを入れます。Ubuntu側でCD/DVDドライブが認識されない場合には、VM->取り外し可能デバイスから認識させることができます。

mountしようと思ったら

root@ubuntu-vm:/home/ubuntu804# mount -o loop -t squashfs /media/cdrom/casper/filesystem.squashfs  /mnt
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

とのこと。調べてもUbuntu8.04では解決は無理そう。一応、

root@ubuntu-vm:/media/cdrom/casper# apt-cache search squashfs
squashfs-tools - Tool to create and append to squashfs filesystems
classmate-initramfs - classmate specific initramfs settings
live-initramfs - Debian Live initramfs hook
squashfs-source - Source for the squash filesystem
root@ubuntu-vm:/home/ubuntu804# apt-get install squashfs-tools

squashfs-toolsをインストールするも同じエラー。ちょっと…無理かもしれません。ちょっと調べてみると、Ubuntu8.04ではカーネルの再構築が必要みたいです。それは…

そこでUbuntu10.04上にBackTrack4を入れることにしました。同じようにLiveCDを入れて

vista@ubuntu:/media/Custom Live CD/casper$ sudo -s
root@ubuntu:/media/Custom Live CD/casper# mount -o loop -t squashfs filesystem.squashfs  /mnt

なんなくできました。loopは一般的なファイルをあたかもHDのようにブロック型ディスクであるかのように扱う機能です。ファイルシステムはこんな様子。

root@ubuntu:/media/Custom Live CD/casper# df
ファイルシステム           1K-ブロック    使用   使用可 使用% マウント位置
/dev/loop0            16876388   4122644  11896452  26% /
none                   1019656       284   1019372   1% /dev
none                   1024300       200   1024100   1% /dev/shm
none                   1024300        96   1024204   1% /var/run
none                   1024300         0   1024300   0% /var/lock
none                   1024300         0   1024300   0% /lib/init/rw
/dev/sda2             76100692  51820192  24280500  69% /host
/dev/sr0               2047742   2047742         0 100% /media/Custom Live CD
/dev/loop1             2037504   2037504         0 100% /mnt

続いてファイルを全て移動させてやります。

root@ubuntu:/# mkdir /BT4
root@ubuntu:/# cp -a /mnt/* /BT4/

cpのaオプションは属性をできるだけ引き継がせるというものです。