質問: ルートパーティションを lvm にするには redhat enterprise linux 4 や centos 4.x をデフォルトでインストールすると、root パーティションと swap が lvm で構成されるようになっているようで、空きディスクを利用して既存の os を lvm 構成にしようとしていますがうまく行きません。 ディスク構成は、scsi 接続のディスクが2本あり、現在は /dev/sdb のみに rhel 4 for x86-64 がインストールされています。(lvm は使用していない) これをゴッソリと /dev/sda に移動したいと考えています。そして、この際にパーティションを切り直し、/dev/sda1 : /boot、/dev/sda2 は lvm を使用して / と swap に割り当てたいと考えています。 /dev/sdb から起動し、/dev/sda2 を lvm 構成にした後、 # mount /dev/volgroup00/logvol00 /mnt # mount /dev/sda1 /mnt/boot # cp -a /bin /boot /dev /etc /home /initrd /lib /lib64 /misc /opt /root /sbin /usr /var /mnt # mkdir -p /mnt/mnt /mnt/proc /mnt/selinux /mnt/sys /mnt/tmp /mnt/srv として、initrd の再作成し、/etc/fstab を書き換えて再起動すると以下のようなメッセージが表示されて起動できません。 red hat nash version 4.1.18 starting mount: error 6 mounting ext3 mount: error 2 mounting none switchroot: mount failed: 22 umount /initrd/dev failed: 2 kernel panic - not syncing: attempted to kill init! /dev/sdb から起動すると問題なく起動できるようですし、/dev/sda に新規に os をインストールした場合も正常に起動できるようなので、/dev/sda が壊れていることは考えにくく、設定上の問題があると考えています。 上記について問題点をご指摘いただけないでしょうか。 よろしくお願いいたします。
回答: mkinitrdをする前に、 # chroot /mnt /bin/bash して、新しい領域でmkinitrdはいかがでしょう。 古い環境でmkinitrdを行うと、/etc/fstabを読みにいきますので、古い/etc/fstabを使っている可能性があると思います。その他の設定なども古い環境を読んでしまっているかもしれません。 それでもだめなら、素人的な解決方法ですが、lvm2モジュールをカーネル内部に入れ込むように再コンパイルしてみてもいいでしょう。