2007年4月アーカイブ

VMware Serverで新しいイメージを作り、CentOSをインストールしたのだが、デフォルトのパーティション構成にしたら / が LVM になってしまった。
LVMだと、vmware-toolboxのshrinkが使えないようなので、一度大きくなってしまった仮想ディスクファイルは中身を削除してももう小さくできない。
これでは仮想ディスクを人に渡すのに不便なので、LVMから通常のパーティションに戻せないか調べてみたが、該当するような記述は見つけられなかった。
そこで、VMwareでもう一つ新しい仮想ディスクを作成し、そこに現在のファイルシステムをコピーしてみることにした。
参考にしたのは、今まで使っていたハードディスク(HD)から新しいHDにroot以下をコピーする
やったこと。
  1. VMware ServerでVMに新しいHDDを追加。
  2. 元のHDDから起動。(古いHDDが/dev/sda, 新しいHDDが/dev/sdbとして起動する)
  3. fdisk /dev/sdb して、パーティションを切る。
    元 /boot が /dev/sda1 で、残りはLVM→新 /boot, swap, /の3つを基本パーティションにする。
  4. mkfsおよびmkswapで領域を初期化する。
  5. /dev/sdb1 (/boot)を適当なところにマウントして、そこにcdしてから、dump/restore
    # mount /dev/sdb1 /mnt
    # cd /mnt
    # dump 0uaf - /boot | restore xf -
    
  6. 同じように /dev/sdb3 (/) もやる
    # mount /dev/sdb3 /mnt
    # cd /mnt
    # dump 0uaf - / | restore xf -
    
  7. 新しいディスクの/etc/fstabを書き換えて、LVMやLABELを参照しているところをデバイスファイル名にする。(現在sdbに見えているものは、sdaになることに注意)
  8. 新しいディスクの/boot/grub/menu.lst, /boot/grub/grub.conf, /boot/grub/device.mapあたりを書き換えて、LVMを参照しているところをデバイスファイル名にする。(現在sdbに見えているものは、sdaになることに注意)
  9. 古いディスクの/boot/grub/device.map にsdbを追記する。
  10. 新しいディスクのMBRにgrubをインストールする。
    # grub-install /dev/sdb
    
  11. ゲストOSをシャットダウンし、VMwareも終了させる。
  12. vmxファイルを書き換え、新しいHDDイメージのみが見えるようにする。
これで、無事に起動すればOK。
私の場合、/boot/のファイルを書き換えないで再起動してしまったら、GRUBがHard Disk Errorとかいって起動しなくなったので、CDからレスキューモードで起動してファイルを修正する必要があった。
去年の10月(6.2-PRERELEASE)からOSを更新していなかったので、久しぶりにmake world。
いつものように、buildworld して、buildkernelしようとしたら、カーネルコンフィグファイルがないと言われた。
そんなはずは?と思って/usr/src/sys/i386/confを見ると、確かにファイルがなくなってる。
/usr/src/UPDATINGを見ても、別に何も書いてない。/usr/src/sys/i386/conf/GENERICの日付は3/31になってる。
しょうがないので、いつのだかわからないバックアップからファイルをコピーして、再度makeしようとしたらsyntax error とか言われる。
何個かエラーの出た行をコメントアウトしていくが切りがないので最新のGENERICを元にすることにする。
でも、コピーして編集するのも能がないなあと思ってconfディレクトリを見ると、SMPなんて言うファイルがある。中身を見てみると、GENERICをincludeして、identとoptionsを追加している。
これだ!と思って真似することにして、以下のようなコンフィグファイルができた。
include GENERIC

ident           FALSE

options         IPSEC
options         IPSEC_ESP
options         IPSEC_DEBUG
options         IPFILTER
options         IPFILTER_LOG
options         IPFILTER_DEFAULT_BLOCK
options         TCP_DROP_SYNFIN
options         SHMMAXPGS=10000
options         SHMMNI=100
options         SHMSEG=10
options         SEMMNS=200
options         SEMMNI=70
options         SEMMSL=61
自分でコメントを書いていないので、今でも必要なオプションかどうかわからないのが痛いところだけど。
後は、普通にbuildkernel してinstallkernelしてinstallworldしてmergemaster -siva してmergemaster -sivr しておしまい。(手を抜いて、再起動は全部やった後。昔はinstallkernelの前にsingle user にして、installkernelの後に再起動とかやってたんだけど、kernelが大きく変わってなければ問題ないべ)
相変わらず、起動してpppが接続する前にネットワーク系のデーモンが立ち上がろうとしてばたばた死んでいく状況は変わらない。なんとかならないのかなあ。
2007年4月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

このアーカイブについて

このページには、2007年4月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2007年3月です。

次のアーカイブは2007年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.1.1