なにこれ

LVMのパーティションを縮めて、別のOSを入れたい。どうする?

具体的に

※うろ覚えで書いているのでエラーメッセージやコマンドは異なる場合があります。

LVMは何となく知っていた。
FS,LV,PVの順にリサイズしていけばいいだろうと思った。
gpartedは「LVMサポートしてないです」と言った。
この時の構成

fdisk
 /dev/sda1 100Mくらい(boot)
 /dev/sda2 160GBくらい(LVM)→これを80GBくらいに
lvm
 /dev/sda2 PV:VolGroup00
VolGroup00
 LogVol00 155GBくらい:ext3
 LogVol01 5GBくらい:swap

とりあえず

# resize2fs /dev/VolGroup00/LogVol00 80G
please fsck -f before resize2fs.

おこられたので

# fsck -f /dev/VolGroup00/LogVol00
fsck.ext3 hogehoge
...
*** FILESYSTEM HAS MODIFIED ***

まあ、なんとかfsckできたようなので、気を取り直して

# resize2fs /dev/VolGroup00/LogVol00 80G (さっきとおなじ
resized.

うまくいったっぽいので、次はLVの縮小

# lvreduce /dev/VolGroup00/LogVol00 -L 81G (余裕を持たせてみた
WARNING: hogehoge will lost your data! (y/n) Y
resized.

なんか怖い脅し文句が出たけど、きっと大丈夫なのでYしたらリサイズできたっぽい。あとはPVの縮小。

# pvresize /dev/sda2 --setphysicalvolumesize 86.3G (swap含めて余裕を持たせる
/dev/sda2: cannot resize to [hogeNum] extents as later ones are allocated.

なんかだめみたい。

# pvdisplay -m

したら、中間に穴がぽっかりできている状態なのでリサイズできないらしい。
じゃあ埋めればいい。
表示されたマップのextentオフセットをつかって

# pvmove /dev/sda2:1234-2345 /dev/sda2:123 (サイズあってないけど。本当はきちんとした値

とかやってみたけど、no extentsとかいわれて、いかにもextent足りなくて移動できません的なメッセージが出た。十分なFREEあるのに。
仕方ないので、swapなら作り直せると

# lvremove /dev/VolGroup00/LogVol01
really? (y/n) y
removed.
# lvcreate VolGroup00 -n LogVol01 5G
created.
# mkswap /dev/VolGroup00/LogVol01

とかやって作り直し、

# pvdisplay -m

してマップを表示させたらいい感じに埋められてた。
そして

# pvresize /dev/sda2 --setphysicalvolumesize 86.3G (前に出てきたのと同じ

して、PVがリサイズできた。
最後にfdisk使って

# fdisk /dev/sda
:d
which partition? 2
:n
extend? primary? p
number? 2
begin? 14 (旧sda2と同じbegin
end? 11111 (縮めた結果のサイズをbeginに足して指定
:t
number? 2
type? 8e (LVM
:w

して、なんかパーティションのリロードに失敗したとか言われたけど、再起動して!って言われてたので再起動したら普通に動いた。
起動中に1分ほど止まるところがあるのでヤバいと思ったが、普通に起動したのでOK...
システム側のfstabやconf類は何もいじらなくてもよかった。

これでいいんですかねえ。

実は自分の管轄でないサーバーでやったので、結構適当です。ログとってないし。
あとできっと、このページは適切なフォルダに移動されるでしょう。

  • HTML
  • PDF
RSS2.0 RSS1.0 Atom1.0