LVM内のパーティションを拡張する(メモ)

作業、テストなどに使っているLinux の VMwareイメージ。これのディスク容量が小さくなったので、広げるための手順のメモ。
/(ルートパーティション)を拡張するのはちょっと手間だったのと、いちいちコマンドを覚えていられないので。

  1. VMWareから、ディスクサイズを大きくする。
    普通なら大きなディスクに交換しなければならないけど、ここは仮想マシン。管理画面からディスクサイズを大きめに設定してやればあっという間に大きなディスクに変更される。
    今回は、 8GB から 16GBに広げました。
  2. 対象のlinuxを起動させて現状確認。
    論理ボリューム(LV)は当然8GB内から作られています。

    [root@centos46 ~]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup00-LogVol00
                          6.8G  3.8G  2.7G  59% /
    /dev/sda1              99M   14M   80M  15% /boot
    none                  506M     0  506M   0% /dev/shm
    none                  506M   84K  506M   1% /var/log
    none                  506M   24K  506M   1% /tmp
  3. fdiskでパーティションを操作。
    パーティション情報を操作しても、最後に書き込みしなければ反映されない ということを逆手にとって、
    削除 -> 拡張したサイズで再作成 – > 書き込み
    という流れで操作します。

    [root@centos46 ~]# fdisk /dev/sda
    
    The number of cylinders for this disk is set to 2088.
    There is nothing wrong with that, but this is larger than 1024,
    and could in certain setups cause problems with:
    1) software that runs at boot time (e.g., old versions of LILO)
    2) booting and partitioning software from other OSs
       (e.g., DOS FDISK, OS/2 FDISK)
    
    Command (m for help): p
    
    Disk /dev/sda: 17.1 GB, 17179869184 bytes
    255 heads, 63 sectors/track, 2088 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          13      104391   83  Linux
    /dev/sda2              14        1044     8281507+  8e  Linux LVM
    
    Command (m for help): d
    Partition number (1-4): 2
    
    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 2
    First cylinder (14-2088, default 14): (リターン)
    Using default value 14
    Last cylinder or +size or +sizeM or +sizeK (14-2088, default 2088): (リターン)
    Using default value 2088
    
    Command (m for help): t
    Partition number (1-4): 2
    Hex code (type L to list codes): 8e
    Changed system type of partition 2 to 8e (Linux LVM)
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    
    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table.
    The new table will be used at the next reboot.
    Syncing disks.
  4. コンピュータを再起動。
    ただし、ubuntu のCDを用意して(他のlinuxでもOK)そこから起動させます。
    #オンラインでそのまま拡張できると思っていたんだけど、後の操作で、「オンラインじゃ操作できません」といったメッセージがでて操作できなかったので。
    以下ubuntuからの操作
  5. 物理ボリューム(PV)を拡張
    ubuntu@ubuntu:~$ sudo pvresize /dev/sda2
      Physical volume "/dev/sda2" changed
      1 physical volume(s) resized / 0 physical volume(s) not resized
  6. 論理ボリューム(LV)を拡張
    ubuntu@ubuntu:~$ sudo lvextend -L+10Gb VolGroup00/LogVol00
      Extending logical volume LogVol00 to 16.84 GiB
      Insufficient free space: 320 extents needed, but only 257 available

    最初の1回目は、本来より大きな値をセットしています。すると、257というっ設定すべき値が表示されるので、今度はその値を使って実際に拡張させます。

    ubuntu@ubuntu:~$ sudo lvextend -l+257 VolGroup00/LogVol00
      Extending logical volume LogVol00 to 14.88 GiB
      Logical volume LogVol00 successfully resized
  7. エラーが出ないようにfsck
    ubuntu@ubuntu:~$ sudo e2fsck -f /dev/VolGroup00/LogVol00
    e2fsck 1.41.11 (14-Mar-2010)
    Adding dirhash hint to filesystem.
    
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    
    /dev/VolGroup00/LogVol00: ***** FILE SYSTEM WAS MODIFIED *****
    /dev/VolGroup00/LogVol00: 96586/897600 files (3.2% non-contiguous), 1004439/1794048 blocks
  8. ファイルシステムを拡張
    ubuntu@ubuntu:~$ sudo resize2fs /dev/VolGroup00/LogVol00
    resize2fs 1.41.11 (14-Mar-2010)
    Resizing the filesystem on /dev/VolGroup00/LogVol00 to 3899392 (4k) blocks.
    The filesystem on /dev/VolGroup00/LogVol00 is now 3899392 blocks long.

手順5,6,7は本来の仮想マシンで実行できるんだろうけど、最後のファイルシステムを拡張するところは、別のパーティションから起動したlinuxから操作するというのが今回の味噌だった。

#SE奮闘記: 【CentOS】LVMでディスク容量を拡張(VMwareのHDD容量を増やす)を参考にして作業したんだけど、今もう一度検索しなおしたら、ext3 on LVMのサイズ拡張:のらねこ雑記帳:So-netブログにもっと細かく解説されたページがありました。

このコンピュータに有効なシステム ボリュームが含まれているかどうか判断できませんでした

先週末ついに昇天した、Athlon64水冷マシンの置き換えを急遽調達して、やっとDualCoreな環境を手に入れた。まぁスペックなどはそのうちね。。。

連休最終日にOS無し即納モデルを持ち替えって、とりあえず古いマシンに使っていた光学ドライブとVistaをセットアップ。
うーん快適。などと言いながら、あれこれ再インストールしていると、どうも挙動がいままでと違う。まぁ例のごとくやってくれるのはAdobe。もうね、本当ここMS以下に腐ってる。

安定して問題なく動いてくれないとイヤなので、入れ直しついでに、古いマシンで使っていた250GBのHDDも増設してみた。
悪夢はここから始まった。

BIOSでのドライブの人気の順番と、Windowsをインストール先として選ぶドライブに認識順が違う。
どうにか連続したドライブじゃなく、1,2,4みたいな感じで認識させれば、順位(大小関係)を維持できることがわかった。
しかし話はそれだけではなかった。

今回のタイトル「このコンピュータに有効なシステム ボリュームが含まれているかどうか判断できませんでした」 で躓いた。
Vistaのインストール先を選び、パーティションやフォーマットを行う画面までは普通に行える。そこから「次へ」を押すとこのメッセージが出る。しかもヒント、解決方法、情報参照先など一切無い。無情にもインストールのスタート画面に戻る。
きっと何か認識し損ねたのだろうと、そのまま繰り返したが、結果は変わらず。リセットしても変わらず。電源を抜いて完全な再起動からでも変わらず。。。。

頭にきたから、エラーメッセージをそのままgoogle先生に問い合わせてみたら、、、、wow。同じような境遇の人がいたよ(google)。その中でも、nac03056さんのblogで「複数台のHDDの時にこのメッセージがでてインストールに失敗することがあるらしい」という文章を見つけた。

手元の環境はRAIDは無いんだけど、2台のHDDで同じメッセージが出ていることから、原因は同じなのだろう。確かに1台だけの時は全く問題なかったからねぇ。。。

とりあえずPCとして動いてくれないと話にならないので、1台だけでインストールを行って、後からケーブルを接続して追加かなぁ。。。

仕事が終わってからの夜のひとときがこんなことに費やされるなんて、、、。
でも、マシン2台あってよかったよ。そうじゃなかったら今頃どうなっていることやら。