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