ログ日記

作業ログと日記とメモ

KNOPPIXでLVM上にあるルートパーティションのサイズ変更

一つのOSしか入れないと思っていたPCに、他のOSを後から入れたくなった。
それでパーティションサイズの変更が必要になったんだけど、開発用だから全部ルートでマウントしちゃってる。そこでKNOPPIXを使ってリサイズを試みた。


KNOPPIXをLVM/Debianがコケた時のレスキューCDとして使用する – spicebeat memo

modprobe dm-mod
apt-get update
apt-get install lvm2

apt-get update でかなりエラーが出るが取り敢えず無視。
lvm-commonがエラーで入らなかったので保留。手元にあったknoppix4.0でやったのだが、やたらめったらアップグレードがかかる。そりゃそうか。
libc6とかlinux-kernel-headersとか今は要らないんだが・・。
で、案の定依存関係エラーで止まったので、現時点の最新版5.1でやってみることに・・。



なんと!元からlvm関連コマンドが入ってるじゃないか。upgradeでだいぶハマっていたのに・・。
ってことで

vgchange -a y
e2fsock -f /dev/vg_name/lv_name
resize2fs /dev/vg_name/lv_name 40000M

vgchange の後に実際のパーティションサイズや使用容量などを確認しておくとよい。
何十ギガも変更すると結構時間がかかったので気長に待つ。


その後lvのサイズ変更。

lvresize -L 40000M /dev/vg_name/lv_name

ここでファイルシステムのサイズと同一にしていいかが分からない。
dfで見た値とWARNINGメッセージの値が違うような気がするんだが・・若干多めの方が事故が無いと思うが・・実際どうなんだろう。

etchから別パーティションにsargeを入れる

まずはetchを起動している状態。etchでなくてもsarge以上なら可能っぽい。
パーティションファイルシステムが無い場合は作成する。

lvcreate -nsarge -L32G vg_name
mke2fs -j /dev/vg_name/sarge


そしてインストール。

cd /mnt
mkdir sarge
mount /dev/vg_name/sarge sarge

debootstrap sarge sarge

Debianのインストール: debootstrap編 を参考に。。。

mount -o bind /proc /mnt/sarge/proc
mount -o bind /sys /mnt/sarge/sys
mount -o bind /dev /mnt/sarge/dev

cp /etc/apt/sources.list /mnt/sarge/etc/apt/
cp /etc/apt/apt.conf /mnt/sarge/etc/apt/

cp /etc/kernel-img.conf /mnt/sarge/etc/ # do_initrd=yes や do_symlinks = yesなどの設定

cp /etc/fstab /mnt/sarge/etc/
cp /etc/network/interfaces /mnt/sarge/etc/network/

chroot /mnt/sarge

apt-get update
apt-get install locales

固定IPならネットワークの設定などが必要。


この時点でchroot環境でならsargeを使える。
ここから起動のための設定。

apt-get update
apt-get install lvm2
vi /etc/fstab # ルートを /dev/mapper/vg_name-sarge などに書き換え
apt-get install kernel-image-2.6-686

exit # chroot環境から出る

cp /mnt/sarge/boot/* /boot/
update-grub
vi /boot/grub/menu.list # sargeのkernelオプションを書き換える
umount /mnt/sarge/dev

chroot /mnt/sarge
cd /dev
./MAKEDEV generic


再起動すればログインできるようになる。
どういうマウントの仕方になってるかというと

/dev/mapper/vg_name-sarge on / type ext3 (rw,errors=remount-ro)
/dev/hda1 on /boot type ext3 (rw)
...

というように、bootだけLVMの外にある。だから色々自由がきく。
このままだとupdate-grubのたびにmenu.listを書き換えないといけないので何か方法を考えなければ。


そんで環境がちょっと不自由なので設定。ネットワークが正常に動いているなら外から設定した方が楽かも。

dpkg-reconfigure locales # 確かもう一度実行しないといけなかったような・・うろ覚え
exit # もう一度ログインして echo $LANG が設定されていればOK

base-config new

忘れそうな設定のメモ。

vi /etc/hosts # ローカルホストの設定は必須
apt-get install language-env
apt-get install ttf-kochi-gothic ttf-kochi-mincho