satoshiabe.jp : Mounting ext2 filesystem on FreeBSD
HOME > DOCUMENTS > FreeBSD > Mounting ext2 filesystem on FreeBSD
まえがき
FreeBSD で ext2 ファイルシステムをマウントできるようにする。 ext2 は、GNU/Linux で使用されているファイルシステムだ。 最近だと、ext3 ファイルシステムが多いだろう。 ext3 は、ext2 を拡張したジャーナリングファイルシステムだ。 このあたりの情報については、Google で検索してみると良い。
私は、今、ThinPad T41 で FreeBSD 6.0-RELEASE を使用しているが、この T41 を Vine Linux で使用していた。 その HDD を抜いて別の HDD を挿して FreeBSD をインストールしている。 過去のデータは Vine Linux がインストールされていた HDD に保存されているため、FreeBSD でマウントできるようにしたい。 ただし、標準で FreeBSD は ext? ファイルシステムをマウントできない。カーネルをカスタマイズする必要がある。 以下に作業した内容を順に説明していく。
カーネルをカスタマイズする
デフォルトでインストールしたカーネルは GENERIC と呼ばれる。 GENERIC は最小公倍数的なカーネルを目的としているため、自分が使用しているマシンに最適化されているわけではない。 このカーネルをカスタマイズして ext2 ファイルシステムをマウントできるようにするわけだ。
準備
カーネルをカスタマイズするためには、事前にカーネルのソースコードを用意していなければならない。 自分がカーネルのソースコードをもっているか?を確認するには、/sys ディレクトリにファイルはディレクトリが存在すれば、カーネルのソースコードが存在している。 ちなみに /sys は /usr/src/sys/ へのシンボリックリンクだ。
カーネルをバックアップする
まず、現在のカーネルをバックアップする。
% su - # cp -R /boot/kernel/ /boot/kernel.good/ # ls -ld /boot/kernel* drwxr-wr-x 2 root wheel 9216 Nov 22 10:24 /boot/kernel drwxr-wr-x 2 root wheel 9216 Jan 12 16:21 /boot/kernel.good # # mkdir /boot/modules.good # cp -R modules/* modules.good/
カーネルファイルを編集する
GENERIC ファイルをコピーして編集する。 直接 GENERIC を編集しないこと。 コピー先のファイル名を、マシン名などにしておく。
# cd /sys/i386/conf/ # cp GENERIC YOUR_HOSTNAME
続いて、以下の行を追加してから vi を終了する。
# vi YOUR_HOSTNAME options EXT2FS # GNU/Linux EXT2 Filesystem :wq
カスタマイズカーネルを構築する
カーネルを構築しよう。 config コマンドを使用して、必要なファイルを収集し、設定ファイルの文法をチェックする。 今回は、以下のように表示される WARNING メッセージを無視して構わない。 contaminat は「汚染する」みたいな意味。
# config YOUR_HOSTNAME WARNING: kernel contains GPL contaminated ext2fs filesystem Kernel build directory is ../compile/YOUR_HOSTNAME Don't forget to do ''make cleandepend; make depend'' #
config コマンドを正常に終了できたら、続いて以下のコマンドを実行する。 最後の make all install は、カーネルがコンパイルされるため時間がかかるだろう。
# cd ../compile/YOUR_HOSTNAME # make cleandepend # make depend # make all install
新しいカーネルで起動する
新しいカーネルで起動しよう。 再起動すれば良い。 再起動した後、カスタムカーネルを指定して起動していることを確認できる。
# shutdown -r now
マウントする
では、実際にマウントしてみる。 頻繁にマウントするなら、/etc/fstab に必要な情報を記述すること。
# mount -t ext2fs target_directory mount_point
リンク
情報を得られるリンク
Filesystems HOWTO: Extended ファイルシステム (ext, ext2, ext3) (linux.or.jp)
FreeBSD で、Linux の EXT2 ファイルシステムをマウントする