
NTFSフォーマットされた外付けHDDが認識できない。iptablesによるファイアウォールの設定ができない。といった原因はそれらのプログラムがカーネルの設定に依存しているからなのです。普通に玄箱をDebian化してもそれらの設定はOFFになっているので再設定してやる必要があります。
方法は「http://www.genbako.com/」を参考にさせていただきました。 このサイトに玄箱用のカーネルやモジュール、本家カーネルサイトからダウンロードしてきたカーネルを玄箱用にしてくれるパッチもおいてあります。
カーネルとモジュールの場所のイメージ(間違ってたらごめんなさい)
内蔵HDDパーティション |
ディレクトリ内のもの | 説明 |
---|---|---|
/dev/hda1
|
/boot/ の下に下記のファイルがある (Debianのもの) (Debianのもの) loader.o uImage .config tools/
/etc/kuro_boot.conf(起動時の指示が書かれている) |
MontaVistaのOS(公式セットアッププログラムでインストールしたもの。Debian起動のための足がかり)
System.mapとvmlinux.binはDebianが読み込む |
/dev/hda2 | スワップ領域 | |
/dev/hda3
|
/boot/ ←は空っぽ /lib/modules/(Debianのもの) |
DebianのOS
カーネルモジュールは/dev/hda3のものを使用する |
だいたい主要な部分はこんなところでしょうか。
起動の順番としてはまずはMontaVistaが起動してからDebianにバトンタッチするといった流れだそうです。
カーネルの再構築で生成される「System.mapとvmlinux.bin」は /dev/hda1/(MontaVista領域) をマウントして、そこにあるものを上書きします(入れ替える)。
同時にに生成するカーネルモジュールは /dev/hda3/(Debian領域) の /lib/modules/ に作られますのでそのままの場所でいいです。
エラーの原因となりますので、カーネル再構築の前に時計を合わせておきましょう。ここを参照にntpdateのパッケージをインストールして設定しておきます。
# ntpdate clock.nc.fukuoka-u.ac.jp ←このコマンドでntpサーバーに接続して時計を合わせます
次に、apt-get installコマンドで以下のパッケージをインストールする。
patch
less
gcc
make
ncurses-dev
bzip2
module-init-tools
全てを一気にまとめてインストールする。
#apt-get install patch less gcc make ncurses-dev bzip2 module-init-tools
質問には基本的にイエスで答えます。
作業ディレクトリへ移動します。ま、どこでもいいんですがね。
# cd /root
genbakoさんのページからパッチをダウンロードします。
# wget http://www.genbako.com/kurobox-sources-2.6.25.patch
# wget http://www.genbako.com/kurobox-section-mismatch2625.patch
公式よりカーネルをダウンロードします。
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.tar.bz2
ダウンロードしたカーネルを展開します。
# tar -jxpvf linux-2.6.25.tar.bz2
展開したカーネルディレクトリに移動します。
# cd /root/linux-2.6.25/
先ほどダウンロードしたパッチをカーネルに当てます。(置いてある場所は一つ上のディレクトリ)
# patch -Np1 < ../kurobox-sources-2.6.25.patch
# patch -Np1 < ../kurobox-section-mismatch2625.patch
コンフィグファイルを作ります。ノーマルとHGと間違わないように注意
# cp config_kurobox .config ← ※玄箱ノーマルの場合
# cp config_kuroboxhg .config ← ※玄箱HGの場合
アーキテクチャを指定
カーネルの詳細設定を行います。
大事なことですが、モジュールの選択をするときはすべてローダブルモジュールとしてチェック<M>していきます。[*]しか入力できない場合はそれでいいです。特にiptablesからみだと思うのですが、全て組み込み<*>としてチェックしてコンパイルした後、起動はするのですが操作中にフリーズしてしまう現象を何度も何度も経験したので。
# make menuconfig
エンターキーでカテゴリ移動、スペースキーでチェックを入れる 、ESC2回押しで戻る。
■iptablesが使えるようにするため。
Networking ---> カテゴリ移動
[*] Networking support チェックを入れる
Networking options ---> カテゴリ移動
Network packet filtering framework(Netfilter) ---> チェックしてカテゴリ移動
Network packet filtering debugging チェックを入れる<M>
Core Netfilter Configuration カテゴリ下全てチェックする<M>
IP:Netfilter Configuration カテゴリ下全てチェックする<M>
(全てチェックを入れたらもう一度Core Netfilter Configrationの項目の空白欄をチェックする)
■USB機器が使えるようにするため(すでにチェックが入っているはず)
Device Drivers ---> カテゴリ移動
SCSI device support ---> カテゴリ移動
SCSI device support チェックを入れる
legacy /proc/scsi/ support チェックを入れる
SCSI disk support チェックを入れる
■NTFSでフォーマットされた外付けHDD等を使えるようにするため
File systems ---> カテゴリ移動
Filesystem in Userspace support チェックを入れる(NTFS形式をマウントさせる)
DOS/FAT/NT Filesystems カテゴリ移動
<M> MSDOS fs support チェックを入れる
<M> VFAT (Windows-95) fs support チェックを入れる
(437) Default codepage for FAT チェックを入れる
(iso8859-1) Default iocharset for FAT チェックを入れる
<M> NTFS file system support チェックを入れる
[*] NTFS debugging support チェックを入れる
[*] NTFS write support チェックを入れる
■ESCか下部メニューで最初まで戻って「Do you wish to save your new kernel configuration?」の質問で「Yes」で保存と終了。
以下のコマンドを順次実行していく。
# make oldconfig
# make vmlinux ←1時間半はかかる(目安)
# objcopy -O binary vmlinux /boot/vmlinux.bin
# cp System.map /boot/
# make modules ←1時間はかかる(目安)
# make modules_install
最後にこれが大事ですが、このままだとhda3(Debian領域)のパーティションにカーネルイメージができてしまっています(/dev/hda3の/boot/内)。通常のサーバならいいのですが、玄箱の場合はカーネルイメージを置いている場所が違いますので正しい位置へ移動させます(hda1(MontaVista領域)の/boot/内へ)。
まずはマウントディレクトリ(/mnt/hda1)を作成し、MontaVista領域(/dev/hda1)のパーティションをマウントします。
#mount /dev/hda1 /mnt/hda1/
カーネル再構築で作成した2つのデータをMontaVista領域のパーティションの/boot/へコピーします。
#cp -p /boot/vmlinux.bin /mnt/hda1/boot/
再起動する
再起動後、unameコマンドでカーネルの作製時間が最新になっていれば成功です。
これでカーネルの再構築は終了です。iptablesでファイアウォールも、NTFSフォーマットのHDDもマウントできます。
![]() | 図解でわかる Linuxサーバ構築・設定のすべて 一戸 英男 ![]() ![]() ![]() ![]() ![]() by G-Tools |