ここでは LVM でインストールを行う方法について説明します。 標準のインストールを行っている場合にはスキップして下さい。
LVM (Logical Volume Manager) とは、複数のパーティションをまとめて、一つの論理ボリュームを作製できるようにするものです。これにより、パーティションのサイズの追加や削除が行なえるようになります。詳しくは、Logical Volume Manager HOWTO を参照してください。
再度、断っておきますがまったくの無保証です。
完全なバックアップをとってからインストールされる事を強く推奨します。
CD を入れて CD からブートを行ないます。
boot: で enter を押下します。
以下の質問に答えます。
Choose a Language
使用する言語を設定します。English を選択して下さい。
Keyboard Type
使用しているキーボードのタイプを選択して下さい。
選択が終了すると、bash のプロンプトが出現します。
マウント先、hda を作成します。
bash# mkdir /mnt/target bash# mknod /dev/hda bash# fdisk /dev/hda
fdisk にて /dev/hda1 、/dev/hda5 を作成し、Linux LVM (8e)に設定します。この時の確保した容量より、実際に LVM として設定出来る容量は少なくなりますのでご注意下さい。
bash# mknod /dev/hda1
lvmtab を作成します。
bash# vgscan
vg を作成します。
bash# pvcreate /dev/hda1 bash# vgcreate vg00 /dev/hda1 bash# lvcreate -L 10G -n root vg00 bash# lvcreate -L 512M -n swap vg00 bash# mkfs.ext3 /dev/vg00/root bash# mkswap /dev/vg00/swap bash# swapon /dev/vg00/swap bash# mount -t ext3 /dev/vg00/root /mnt/target
rpm 用のディレクトリを作る前準備を行ないます。
bash# mkdir -p /mnt/target/var/lib/rpm bash# rpm --initdb --root=/mnt/target bash# mkdir -p /mnt/target/usr/lib/rpm bash# mkdir -p /mnt/target/dev bash# mknod /mnt/target/dev/null c 1 3
/dev/vg00 をコピーをしておきます。
bash# cp -a /dev/vg00 /mnt/target/dev
/etc/modules.conf を作成しておきます。
bash# mkdir -p /mnt/target/etc bash# touch /mnt/target/etc/modules.conf
再起動後、vgscan を行うと何故か nbd を探しにいってしまうので無視する設定にします。
bash# echo 'alias block-major-43 off' > /mnt/target/etc/modules.conf
loopback I/F を up します。
bash# ifconfig lo add 127.0.0.1 netmask 255.0.0.0 up
ログ保存用のディレクトリを作成します。
bash# mkdir -p /mnt/target/tmp
hostname を仮設定を行います。
bash# hostname hogehoge.fugafuga.org
この設定をしていないと, sshd用のホストキーがlocalhlost.localdomainになってしまう為です。
timezone の設定を行います。
日本に住んでいるのであれば、
bash# cp -p /usr/share/zoneinfo/Japan /etc/localtime
などとします。インストールした時間がUTCで記録されてしまう事を避ける為です。
fstab の作成
/mnt/target/etc/fstab
を vi jed もしくは cat などで作成します。
以下に cat の場合の例を表記します。
bash# cat <<EOF > /mnt/target/etc/fstab /dev/vg00/root / ext3 defaults 0 0 /dev/vg00/swap swap swap defaults 0 0 none /proc proc defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 EOF
インストールと不要なパッケージの削除を行います。
bash# mkdir /tmp/PKGS bash# ln -s /mnt/source/Momonga/PKGS/*/* /tmp/PKGS bash# rm /tmp/PKGS/kernel-BOOT-2.4.20-28m.i586.rpm bash# rm /tmp/PKGS/kernel-smp-2.4.20-28m.i586.rpm bash# rpm -ivh --root=/mnt/target /tmp/PKGS/* 2>&1 | tee /mnt/target/tmp/install.log
ISOイメージによっては、rpmコマンドが依存性を満たせずにエラー終了してしまう場合があります。
このような場合には、
bash# rpm -ivh --root=/mnt/target --nodeps /tmp/PKGS/* 2>&1 | tee /mnt/target/tmp/install.log
などとしてインストールしておいて、momonga プロジェクトのメンバーに報告して下さい。
以上でパッケージのインストールまでが終了しました。次からは、起動時に必要なファイル作成等について説明します。
SCSI を使用されている方は、/mnt/target/etc/modules.conf
も vi や jed や echo で作成しておいて下さい。
モジュール名は個人の環境に合わせて下さい。以下に例を表記します。
bash# echo 'alias scsi_hostadapter aic7xxx' >> /mnt/target/etc/modules.conf
SCSI の場合や / を ext2 以外にする場合は initrd 必須になります。 kernel の ver-rel は iso によって異なりますので注意して下さい。 mkinitrd -v の出力をよく見て、ファイルシステム関連や (必要なら) SCSI アダプタ関連のモジュールが組み込まれている事を確認して下さい。
/proc をマウントしていないと、mkinitrd が失敗する為にはじめに /proc をマウントしてから mkinitrd を行ないます。
bash# chroot /mnt/target /bin/bash bash(chroot)# mount /proc bash(chroot)# /sbin/mkinitrd -v /boot/initrd-2.4.20-28m.img 2.4.20-28m bash(chroot)# exit
/mnt/target/etc/sysconfig/network
を作成します。fstab
と同じ様に、vi jed もしくは cat 等を使用して作成して下さい。以下に cat を使用した例を表記します。
bash# cat <<EOF > /mnt/target/etc/sysconfig/network
HOSTNAME=hogehoge.fugafuga.org NETWORKING=yes NETWORKING_IPV6=yes NOZEROCONF=yes EOF
以上で、起動時に必要なファイル等の作成が終了しました。 次より、boot の設定について説明します。