• ベストアンサー
  • 暇なときにでも

ルートパーティションを 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 が壊れていることは考えにくく、設定上の問題があると考えています。 上記について問題点をご指摘いただけないでしょうか。 よろしくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数1648
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
noname#243622

mkinitrdをする前に、 # chroot /mnt /bin/bash して、新しい領域でmkinitrdはいかがでしょう。 古い環境でmkinitrdを行うと、/etc/fstabを読みにいきますので、古い/etc/fstabを使っている可能性があると思います。その他の設定なども古い環境を読んでしまっているかもしれません。 それでもだめなら、素人的な解決方法ですが、lvm2モジュールをカーネル内部に入れ込むように再コンパイルしてみてもいいでしょう。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございました。 initrd を展開して確認してみると、LVM が組み込まれていないようでした。 mkinitrd のオプションに --fstab=/mnt/etc/fstab をつけていなかったのが原因だったようで、これをつけることにより解決しました。このオプションがなかったために /etc/fstab を参照してしまい、LVM が組み込まれなかったようです。

関連するQ&A

  • LVM2から起動

    initrdを利用せずに、LVM2上のルートパーティションからブートすることはできますか? BLK_DEV_DM=y root=/dev/mapper/vg-root だけでは起動rootパーティションを認識せずkernel panicとなりました。

  • CentOS 4でパーティションの切り直し

    ディスクが2本ささっており、それぞれにLinuxがインストールされていましたが (デュアルブート構成)、片方のLinux(/dev/sdbにインストール)が不要となったので、 2本とももう片方のLinux(/dev/sdaにインストール)で使えるようにしようとしています。 /dev/sdbはLVMが構成されていましたが、/dev/sdaにインストールを起動して、 fdiskでバッサリ削除して、1パーティションを作成しました。 # fdisk /dev/sdb このディスクのシリンダ数は 8924 に設定されています。 間違いではないのですが、1024 を超えているため、以下の場合 に問題を生じうる事を確認しましょう: 1) ブート時に実行するソフトウェア (例. バージョンが古い LILO) 2) 別の OS のブートやパーティション作成ソフト (例. DOS FDISK, OS/2 FDISK) コマンド (m でヘルプ): p Disk /dev/sdb: 73.4 GB, 73407820800 bytes 255 heads, 63 sectors/track, 8924 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sdb1 1 8924 71681998+ 83 Linux <<★全てのブロックを/dev/sdb1に。保存(w)もOK。 # mke2fs -i 4096 -j /dev/sdb1 # tune2fs -c0 -i0 -Odir_index -ouser_xattr,acl /dev/sdb1 # mount /dev/sdb1 # df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/mapper/VolGroup00-LogVol00 66410160 57557976 5478720 92% / /dev/sda1 101086 14863 81004 16% /boot none 1027152 257952 769200 26% /dev/shm /dev/sdb1 101086 5664 90203 6% /home1 <<★ なぜか、72GB全てを/dev/sdb1に割り当てたのに、100MB程度しか使えないことになっています。 これは、fdisk前に、/bootに割り当てられていた容量と同じです。 なぜでしょうか? どのようにしたら72GB全て認識するようになるでしょうか? よろしくお願いいたします。

  • Fedora 20 のマシンに、新たに Windo

    RAIDで構築してある Fedora 20 のマシンに、新たに Windows 7 をインストールする事にしました。 Windows を後からインストールすると MBR が書き換えられ Fedora が起動できなくなるようなので、以下のような手順で 作業しようと計画しています。 以下の作業手順で問題になりそうな所や、不足している所、 余分な所がありましたら、ご指摘いただければ幸いです。 構成 RAIDデバイス  実デバイス   マウントポイント RAID1-boot sda5,sdb5 /boot RAID1-system sda2,sdb2 / RAID1-swap sda3,sdb3 swap RAID1-home sda1,sdb1 /home RAID1-VirtualBox sda6,sdb6 /VirtualBox なし sda7 Android-x86 作業手順 1. /VirtualBox を非RAID化し、/dev/sdb6 を /VirtualBox  として使用し、/dev/sda6 に Windows 7 をインストールする 2. /boot のディスクイメージをバックアップする 例 dd if=/dev/md/RAID1-boot of=/mnt/usb/grub-bup/fedora-boot.img bs=512 count=1 3. /boot を非RAID化する 例   umount /dev/md/RAID1-boot vi /etc/fstab で /boot 部分をコメントアウトする mdadm --misc --stop /dev/md/RAID1-boot mdadm /dev/md/RAID1-boot -r /dev/sda5 -r /dev/sdb5 mdadm --misc --zero-superblock /dev/sda5 /dev/sdb5 4. /dev/sda6 の領域を fdisk コマンドで解放する 5.念の為 /dev/sdb の HDD の電源を切っておく 6. 空いた領域に Windows 7 をインストールする 4の作業で /dev/sda7 が /dev/sda6 になるので /dev/sda7 に  インストールされる??? 7.Windos 7 の正常起動を確認する。 8. /dev/sdb の電源も入れて Fedora Live CD で起動する。 9. USBメモリにバックアップしたディスクイメージを書き戻す。  例 dd if=/mnt/usb/grub-bup/fedora-boot.img of=/dev/sda5 bs=512 count=1 dd if=/mnt/usb/grub-bup/fedora-boot.img of=/dev/sdb5 bs=512 count=1 10.HDD から Fedora を起動する。 11. /boot をRAID化する。  例 mdadm /dev/md/RAID1-boot --add /dev/sda5 --add /dev/sdb5 12. /dev/md/RAID1-boot の UUID が変わっているか確認して    /etc/fstab を編集する。(現状 UUID で記述しているためです) 12.grub2-mkconfig で /boot/grub2/grub.cfg を再作成する。 作業手順 9 辺りから、かなり不安で何度も頭で演習して 80% 位こんな物かと 思っています。 11 で add する前に、もう一度 create する必要はない??? Fedora Live CD から起動して、RAID化されているディスクに直接書き込めれば いいのですが、やり方がわかりません。 そのため、一度非RAID化しております。 最悪 Fedora を再インストールしてバックアップから戻して復旧するという 事も視野に入れていますが、できれば短時間で済ませたいです。 識者のご助言を頂ければ幸いです。

  • USBフラッシュメモリのマウント

    USBフラッシュメモリのマウントをしたのですが、 スペシャルデバイス /dev/sda が存在しませんと出たのですが、 どういうことなんでしょうか? よろしくお願いします。 # mkdir /mnt/usbfm # mount -t vfat /dev/sda /mnt/usbfm mount: スペシャルデバイス /dev/sda が存在しません。

  • RAID無しの状態から、ソフトウェアRAID1 に移行したい

    hdd2台を積んだサーバがあります。 /devをみると、sda,sdb とありますので、SCSIのディスクが2台あり sdbは全く使用していません。 現在、sdaだけを使用しており、RAIDは使っていません このsdbを使ってRAID 1を構築したいです。 sdaとsdbは同じ容量です。 OSはFedora3です(もう、ずいぶん古いですね。) これをソフトウェアRAIDで RAID1 にしたいのですが、何かよい方法ありますか? 一部だけでも、ご返答戴ければ助かります。 宜しくお願い致します。 ■■実現したいこと 一方のドライブが生きている限りは(ブートを含む)全ての動作が可能であること。 ■■聞きたいこと1 ・ブート時は /bootファイルシステムが読み込めなくてはイケないと思うのですが ソフトウェアRAIDでも、RAIDデバイス上に /boot を置くことはできますか? ・/boot以外の残りは / ファイルシステムだけです。 '/'はLVM上に構築されているのですが、今からでも LVMをミラーリング できますか? ・(OSの再インストール等はせずに)今からでも、RAID-1にできますか? ■■聞きたいこと2 作業の実施前にバックアップを取りたいです。 boot用のフロッピーをあらかじめ作った上で 例えば、外付けのusbドライブを /media/usbなどに適当にマウントして 以下のようにバックアップ、復旧できますか? (ddを一度も使ったことないので、使い方に自信がありません。) バックアップ時 dd if=/dev/sda of=/media/usb/backup.dat 復旧時はフロッピーからboot dd if=/media/usb/backup.dat of=/dev/sda =========以下、参考情報================= ■# df の結果 ------------------------- Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/mapper/VolGroup00-LogVol00 74529904 39783780 30899164 57% / /dev/sda1 101086 22874 72993 24% /boot /dev/shm 257756 0 257756 0% /dev/shm ------------------------- ■# sfdisk -sl の結果 ------------------------- /dev/sda: 78150744 ディスク /dev/sda: シリンダ数 9729、ヘッド数 255、63 セクタ/トラック ユニット = 8225280 バイトのシリンダ、1024 バイトのブロック、0 から数えます Device Boot Start End #cyls #blocks Id System /dev/sda1 * 0+ 12 13- 104391 83 Linux /dev/sda2 13 9728 9716 78043770 8e Linux LVM /dev/sda3 0 - 0 0 0 空 /dev/sda4 0 - 0 0 0 空 ------------------------- /dev/sdb: 78150744 ディスク /dev/sdb: シリンダ数 9729、ヘッド数 255、63 セクタ/トラック ユニット = 8225280 バイトのシリンダ、1024 バイトのブロック、0 から数えます Device Boot Start End #cyls #blocks Id System /dev/sdb1 0 - 0 0 0 空 /dev/sdb2 0 - 0 0 0 空 /dev/sdb3 0 - 0 0 0 空 /dev/sdb4 0 - 0 0 0 空 ------------------------- /dev/dm-0: 76939264 ディスク /dev/dm-0: シリンダ数 0、ヘッド数 0、0 セクタ/トラック sfdisk: エラー: セクタ 0 には msdos サインがありません /dev/dm-0: unrecognized partition table type パーティションが見つかりません ------------------------- /dev/dm-1: 1048576 ディスク /dev/dm-1: シリンダ数 0、ヘッド数 0、0 セクタ/トラック sfdisk: エラー: セクタ 0 には msdos サインがありません /dev/dm-1: unrecognized partition table type パーティションが見つかりません total: 234289328 blocks

  • floppyマウントについて

    初心者です。 もう関連の質問は出されているのかも知れませんが見付けることができなかったので質問させていただきます。 RedHatLinux9.0をインストールしましたがフロッピーをマウントできません。 [root@localhost root]# mount /mnt/floppy と実行するとフロッピーにアクセスするのですが、 mount: ファイルシステムタイプを指定する必要がありますとmountしてくれません。 またフロッピー初期化ツールでフォーマットした後 [root@localhost root]# mount -t ext2 /dev/fd0 /mnt/floppy mount: マウントポイント /mnt/floppy が存在しませんとmountしてくれません。 /etc/fstabの内容は下記のとおりです。 LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/hda3 swap swap defaults 0 0 フロッピー関係がなかったので下記を追加 /dev/fd0 /mnt/floppy auto noauto,user 0 0 PCは自作で Motherboard ASUSTeK P4P800 DELUXE CPU=Pentium4 2.6C CDドライブ=YAMAHA CRW2200E HDD=MAXTOR 2F040L0 (40GB) FDD=MITSUMI D353(SW) どうかご教授お願いします。

  • デバイスの再作成

    デバイスの再作成 rhel4 /dev/sda1 ext3 /boot /dev/sda2 ext3 / /dev/sda3 swap swap /dev/sda5 ext3 /var/crash 現在、上記の構成なのですが、クラッシュダンプが取得できない事がわかりました。 クラッシュダンプを取得する為にDiskDump領域を作成したいと考えてます。 ディスクの追加が出来ないため、/dev/sda5を2つに分割したいと考えてます。 /dev/sda5を一度削除して/dev/sda5と/dev/sda7を作成する事は簡単でしょうか? 参考になるLinkとかがあれば教えて頂きたいです。

  • fstab に記載してもマウントされません

    Debianですが /etc/fstabの内容は次のとおりです。 proc /proc proc defaults 0 0 /dev/sda1 / ext3 defaults,errors=remount -ro 0 1 /dev/sdb1 / ext3 defaults -ro 0 1 です。 これで起動しますと「sda」はファイルシステムとして通常にアクセスできますが、「sdb」は #mount /dev/sdb /mnt/sdb としないとマウントできません。 また、書き込みが出来ません。 自動でマウントする方法と書き込み可能にする方法を教えてください。

  • Windows NT のブートローダーでLinuxを起動したい・・・が?

    http://www.okweb.ne.jp/kotaeru_thanks.php3?a=39602 の続きとなる質問ですが Compaq Professional Workstation 5000(DualPentiumPro 200MHz/256)で smpカーネルを動かしたいのですが LILOは正常に動作し、圧縮されたカーネルを展開した直後に リセットがかかってしまいます。 最初: 増設9.1Gのみの接続で /dev/sda1 - Linux /dev/sda2 - SWAP LILOも正常起動し、Linuxもsmpカーネルで正常に起動しました。 その後、NTローダーとの共存で (FDにLILOを入れたときも同様) 内蔵2G /dev/sda1 - 診断パーティーション /dev/sda2 - NTFS 2G 増設9.1G(実質内蔵) /dev/sdb1 - Linux (500M) root用1 /dev/sdb2 - Linux (500M) root用2 /dev/sdb3 - Linux (500M) root用3 /dev/sdb4 - 拡張パーティーション /dev/sdb5 - Linux SWAP /dev/sdb6 ~ /dev/sdb8 /usr用 /dev/sdb9 - NTFS そして、LILO は無事起動しました。 (bootのプロンプトはでます) しかし、どうやっても、SMPカーネルが起動しません。 このあたりで、わかる方はいらっしゃいますでしょうか? Uncompressing Linux .....(なんとか kernel)というような感じになります。 p.s. 参考までに、Workstation 5000 は、IDEからのブートも できないようです。 よろしくお願いします。

  • GRUBでOSの選択画面が出ない

    今、大学生協で買ったdynabookSS MX25Aを使っています。 もともとWindowsXPとVineLinuxが入っていて GRUBでOSを選択するようになっていたのですが、 WindowsXPが起動しなくなってしまったので、 PowerX Hard Disc Manager7を使って リカバリーをかけました。 (バックアップを取ったのは買った時です) そうしたら今度は起動した時 GRUBの選択画面(WindowsかLinuxか)が 出ず grub>のコンソールだけ出るようになってしまいました。 Knoppixで立ち上げてみたところ Windowsのパーティション(NTFS)も Linuxのパーティション(Ext3)も認識しますし 中身もきちんとリカバリー出来ているように思います。 どうやったら元のようにOSを選択して 起動できるようになるのでしょうか? 生協に行けば済むかもしれませんが 家の都合で今行けないんです。。。 パーティションの構成↓ 1.WindowsXP(NTFS) 2.VineLinux(Ext3) 3.?(LinuxSwapと出ています) 4.?(WindowsXPのアプリ用領域) 2番目のVineLinuxの/boot/grub/grub.confには #menu.lst generated by anaconda # # Note that you do not have to rerun grub after changes to this file # NOTICE: You do not have a /boot partition. This means that # all kernel and inited paths are relative to /, eg. # root(hd0,2) # kernel /boot/vmlinuz-version ro root=/dev/sda3 # initrd /boot/initrd-version.img default=1 timeout=10 title Windows rootnoverify (hd0,0) chainloader +1 title VineLinux root(hd0,2) kernel /boot/vmlinuz ro root=LABEL=/ resume2=swap:/dev/sda5 vga=0x314 hdc=ide-scsi initrd /boot/initrd.img #title VineLinux (Previous kernel) # root (hd0,2) # kernel /boot/vmlinuz.old ro root=LABEL=/ resume2=swap:/dev/sda5 vga=0x314 # initrd /boot/initrd.old.img と書いてあります。