3. LVM インストール方法

3.1. 注意

ここでは LVM でインストールを行う方法について説明します。 標準のインストールを行っている場合にはスキップして下さい。

LVM (Logical Volume Manager) とは、複数のパーティションをまとめて、一つの論理ボリュームを作製できるようにするものです。これにより、パーティションのサイズの追加や削除が行なえるようになります。詳しくは、Logical Volume Manager HOWTO を参照してください。

再度、断っておきますがまったくの無保証です。

完全なバックアップをとってからインストールされる事を強く推奨します。

3.2. 準備

用意するもの

最新の momonga-yyyymmdd.iso を取ってきて、CD-R(W) に焼きます。

grub は LVM に対応していない為、grub を用意する必要はありません。

3.2.1. 仮定

この説明では、以下の様なインストールを行なう事を仮定し説明を行います。

  • LVM を使用します。

  • /dev/hda1 を vg00 にします。

  • /dev/00 は / すべて ext3 でインストール。(10G)

  • /dev/vg00/swap は swap にします。(512M)

3.3. インストール手順

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

3.4. パスワードの設定

root のパスワードを設定を行います。

bash# chroot /mnt/target /usr/bin/passwd

3.5. ネットワークの設定

/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 の設定について説明します。