nDiki : Linux kernel パッケージ構築

2003年12月15日 (月)

[ Debian お仕事 ] Debian インストール

前回の続き。

インストール

CD-ROMブート。ext3 にするのでbf24 で起動。

 bf24 ide0=0x1440,0x1436 ide1=0x1438,0x1432

ソフトウェアRAIDにするので、パーティションは4つにしておく。

 cfdisk 2.11n
 -------------------------------------
 name 入力サイズ(M) type      マウント
 hda1 10000         83 Boot   /
 hda2 60000         83        /home
 hda3 11827         83        /var
 hda4 (509)         82        swap

 -------------------------------------

NIC が ELECOM Laneed LD-10/100 AL PCI Fast Ethernet Adapter なので via-rhine を追加。

lilo は /dev/hda1 にしておいたけど、両方のディスクで起動できるようにするソフトウェアRAID1にしておくのにはこれで良かったのだろうか?

再起動後、tasksel してパッケージをインストール。 /etc/lilo.conf に

 append="ide0=0x1440,0x1436 ide1=0x1438,0x1432"

を追加しておく。

カーネル構築

 cd /usr/local/src/linux
 tar jxvf /usr/src/kernel-source-2.4.18.tar.bz
 cd kernel-source-2.4.18
 cp /boot/config-2.4.18-bf2.4 .config
 make oldconfig
 make menuconfig
 fakeroot make-kpkg clean
 fakeroot make-kpkg --revision=gate.1.0 kernel_image
 include/linux/fs.h でエラー

Debian公式 kernel-image の .config をベースにしても、いろいろ入りすぎていて結局1から設定するのとほとんど変わらないことに気がつく。 それより、コンパイルが通らん。 …… kernel-image でいっか。

ソフトウェアRAID

まず raidtools2 をインストール

 apt-get install raidtools2

dpkg が segmentation fault。やな感じ。

 cfdisk /dev/hdc

hda と同じ値を設定したのだが、サイズが違うんですけど。 hdc1, hdc1, hdc3 のタイプを fd に。

raidtab の設定。

 raiddev /dev/md1
         raid-level      1
         nr-raid-disks   2
         nr-spare-disks  0
         chunk-size     4
         persistent-superblock 1
         device          /dev/hdc1
         raid-disk       0
         device          /dev/hda1
         raid-disk       1

 raiddev /dev/md2
         raid-level      1
         nr-raid-disks   2
         nr-spare-disks  0
         chunk-size     4
         persistent-superblock 1
         device          /dev/hdc2
         raid-disk       0
         device          /dev/hda2
         raid-disk       1

 raiddev /dev/md3
         raid-level      1
         nr-raid-disks   2
         nr-spare-disks  0
         chunk-size     4
         persistent-superblock 1
         device          /dev/hdc3
         raid-disk       0
         device          /dev/hda3
         raid-disk       1

ただし、この時点で /dev/hdaX はマウント中なので、 各 「device /dev/hdaX \n raid-disk 1」はコメントアウトしておき、nr-raid-disks も 1にしておく。

で、hdc を RAID化 / ext3 化。

 mkraid /dev/md1
 mkraid /dev/md2
 mkraid /dev/md3
 cat /proc/mdstat
 mkfs.ext3 /dev/md1
 mkfs.ext3 /dev/md2
 mkfs.ext3 /dev/md3

シングルユーザでリブート(linux single)し、hda から hdc へコピー

 mkdir /mnt/raid
 mount /dev/md1 /mnt/raid
 mkdir /mnt/raid/home
 mkdir /mnt/raid/var
 mount /dev/md2 /mnt/raid/home
 mount /dev/md3 /mnt/raid/var
 cd /
 cp -a /bin /mnt/raid/
 cp -a /boot /mnt/raid/
 cp -a /cdrom /mnt/raid/
 cp -a /dev /mnt/raid/
 cp -a /etc /mnt/raid/
 cp -a /floppy /mnt/raid/
 cp -a /home /mnt/raid/
 cp -a /initrd /mnt/raid/
 cp -a /lib /mnt/raid/
 cp -a /opt /mnt/raid/
 cp -a /root /mnt/raid/
 cp -a /sbin /mnt/raid/
 cp -a /tmp /mnt/raid/
 cp -a /usr /mnt/raid/
 cp -a /var /mnt/raid/
 cp -a /vmlinuz /mnt/raid/
 mkdir /mnt/raid/mnt
 mkdir /mnt/raid/proc

hdc 側の設定。/mnt/raid/etc/fstab の /dev/hdaX を /dev/mdX に。

hda 側の起動設定。hda のローダから hdc 側を起動できるように。

 echo 'other=/dev/hdc' >> /etc/lilo.cnf
 echo '  label=hdc' >> /etc/lilo.conf
 lilo

hdc 側の起動設定。ディスクの設定をとって

 fdisk -ul /dev/hdc
 Disk /dev/hdc: 16heds, 63 sectors, 159560 cylinders
 ...

hda 側の lilo.conf (/mnt/raid/etc/lilo.conf.hdc)を書く。

 (lilo.conf の内容。後で追記)

で lilo

 lilo -C /mnt/raid/etc/lilo.conf.hdc

hdc を umount して再起動

 umount /dev/md3
 umount /dev/md2
 umount /dev/md1

hda での起動を確認。 hdc での起動も確認。失敗。Kernel Panic。 あそういえば、append し忘れてた。

続きはまた。

スポンサード リンク
[ 12月15日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.0502s / load averages: 0.43, 0.59, 0.75
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker