NTFSフォーマットされた外付けHDDが認識できない。iptablesによるファイアウォールの設定ができない。といった原因はそれらのプログラムがカーネルの設定に依存しているからなのです。普通に玄箱をDebian化してもそれらの設定はOFFになっているので再設定してやる必要があります。

方法は「http://www.genbako.com/」を参考にさせていただきました。 このサイトに玄箱用のカーネルやモジュール、本家カーネルサイトからダウンロードしてきたカーネルを玄箱用にしてくれるパッチもおいてあります。

 

 

カーネルとモジュールの場所のイメージ(間違ってたらごめんなさい)

内蔵HDDパーティション

ディレクトリ内のもの 説明

/dev/hda1

 

/boot/ の下に下記のファイルがある

 System.map(Debianのもの)

 vmlinux.bin(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/2.6.25.1-kuroboxHG(Debianのもの)

DebianのOS

 

カーネルモジュールは/dev/hda3のものを使用する

だいたい主要な部分はこんなところでしょうか。

起動の順番としてはまずはMontaVistaが起動してからDebianにバトンタッチするといった流れだそうです。

 

カーネルの再構築で生成される「System.mapとvmlinux.bin」は /dev/hda1/(MontaVista領域) をマウントして、そこにあるものを上書きします(入れ替える)。

同時にに生成するカーネルモジュールは /dev/hda3/(Debian領域) の /lib/modules/ に作られますのでそのままの場所でいいです。

 

 

エラーの原因となりますので、カーネル再構築の前に時計を合わせておきましょう。ここを参照にntpdateのパッケージをインストールして設定しておきます。

# apt-get install ntp 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の場合

 


アーキテクチャを指定

# export ARCH=ppc

 


カーネルの詳細設定を行います。

大事なことですが、モジュールの選択をするときはすべてローダブルモジュールとしてチェック<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)のパーティションをマウントします。

#mkdir /mnt/hda1
#mount /dev/hda1 /mnt/hda1/

 

カーネル再構築で作成した2つのデータをMontaVista領域のパーティションの/boot/へコピーします。

#cp -p /boot/System.map /mnt/hda1/boot/
#cp -p /boot/vmlinux.bin /mnt/hda1/boot/

 

再起動する

# reboot

 

再起動後、unameコマンドでカーネルの作製時間が最新になっていれば成功です。

# uname -a
Linux KURO-BOX 2.6.25-kuroboxHG #1 Fri Apr 5 20:52:27 JST 2013 ppc GNU/Linux

これでカーネルの再構築は終了です。iptablesでファイアウォールも、NTFSフォーマットのHDDもマウントできます。

 

 

図解でわかる Linuxサーバ構築・設定のすべて図解でわかる Linuxサーバ構築・設定のすべて
一戸 英男

図解でわかるLinux環境設定のすべて プロのための Linuxシステム構築・運用技術 (Software Design plus) 改訂 新Linux/UNIX入門 Linuxエンジニア養成読本 [仕事で使うための必須知識&ノウハウ満載!] (Software Design plus) はじめてのCentOS6 Linuxサーバ構築編 (TECHNICAL MASTER)

by G-Tools