/bootとLVMで構成済のHDDに空きパーティション(マルチブート用を作成)
環境はubuntu9.04
- 初期状態
# fdisk -l /dev/sda ディスク /dev/sda: 60.0 GB, 60011642880 バイト ヘッド 255, セクタ 63, シリンダ 7296, 合計 117210240 セクタ Units = セクタ数 of 1 * 512 = 512 バイト デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 63 208844 104391 83 Linux /dev/sda2 208845 117210239 58500697+ 8e Linux LVM
また、下記作業を行うためにlvm2をインストール
# aptitude install lvm2
# losetup /dev/loop1 /dev/sda2 # vgscan Reading all physical volumes. This may take a while... /dev/sda2 not /dev/loop1 Found volume group "VolGroup00" using metadata type lvm2 # lvscan using /dev/sda2 not /dev/loop1 ACTIVE '/dev/VolGroup00/LogVol00' [53.81 GB] inherit ACTIVE '/dev/VolGroup00/LogVol01' [1.94 GB] inherit # pvscan /dev/sda2 not /dev/loop1 PV /dev/sda2 VG VolGroup00 lvm2 [55.78 GB / 32.00 MB free] Total: 1 [55.78 GB] / in use: 1 [55.78 GB] / in no VG: 0 [0 ]
- ファイルシステムチェック
# e2fsck -f /dev/VolGroup00/LogVol00 /dev/mapper/VolGroup00-LogVol00 primary superblock features different from backup, check forced. Pass 1: Checking iノードs, blocks, and sizes Pass 2: Checking ディレクトリ structure Pass 3: Checking ディレクトリ connectivity Pass 4: Checking reference counts Pass 5: Checking グループ summary information /dev/mapper/VolGroup00-LogVol00: ***** FILE SYSTEM WAS MODIFIED ***** /dev/mapper/VolGroup00-LogVol00: 312602/7061504 files (0.8% non-contiguous), 1910851/14106624 blocks
- ファイルシステム縮小
# resize2fs /dev/mapper/VolGroup00-LogVol00 10240M resize2fs 1.41.4 (27-Jan-2009) Resizing the filesystem on /dev/mapper/VolGroup00-LogVol00 to 2621440 (4k) blocks. The filesystem on /dev/mapper/VolGroup00-LogVol00 is now 2621440 blocks long.
- LV縮小
# lvreduce -L -20G /dev/VolGroup00/LogVol00 using /dev/sda2 not /dev/loop1 WARNING: Reducing active logical volume to 33.81 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce LogVol00? [y/n]: y Reducing logical volume LogVol00 to 33.81 GB Logical volume LogVol00 successfully resized
- LV状態
# lvdisplay --- Logical volume --- LV Name /dev/VolGroup00/LogVol00 VG Name VolGroup00 LV Write Access read/write LV Status available # open 0 LV Size 33.81 GB Current LE 1082 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0 --- Logical volume --- LV Name /dev/VolGroup00/LogVol01 VG Name VolGroup00 LV Write Access read/write LV Status available # open 0 LV Size 1.94 GB Current LE 62 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:1
- PV中のLVの割当てマップをsystem-config-lvmで確認
http://packages.ubuntu.com/ja/jaunty/system-config-lvm
ubuntu9.04の場合、system-config-lvmはuniverseリポジトリなので、
synapticでリポジトリを追加後、(aptitudeで)追加インストール
なお、ubuntu8.10のsystem-config-lvmは起動時にクラッシュして使えず。
確認したところ、PV中は/のLVの後にLVM上の空き領域その後末尾にswapという構成だった。
- PV縮小を試みる
# pvresize --setphysicalvolumesize 36G /dev/sda2 /dev/sda2: cannot resize to 1151 extents as later ones are allocated. 0 physical volume(s) resized / 1 physical volume(s) not resized
PV縮小失敗
- LVM領域の末尾にあるswap領域のLVを削除
# lvremove /dev/VolGroup00/LogVol01 Do you really want to remove active logical volume "LogVol01"? [y/n]: y Logical volume "LogVol01" successfully removed
- PV縮小
# pvresize --setphysicalvolumesize 36G Physical volume "/dev/sda2" changed 1 physical volume(s) resized / 0 physical volume(s) not resized
- 縮小後の状態
# lvdisplay --- Logical volume --- LV Name /dev/VolGroup00/LogVol00 VG Name VolGroup00 LV Write Access read/write LV Status NOT available LV Size 33.81 GB Current LE 1082 Segments 1 Allocation inherit Read ahead sectors auto # vgdisplay --- Volume group --- VG Name VolGroup00 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 8 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 33.97 GB PE Size 32.00 MB Total PE 1087 Alloc PE / Size 1082 / 33.81 GB Free PE / Size 5 / 160.00 MB # pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name VolGroup00 PV Size 34.00 GB / not usable 31.81 MB Allocatable yes PE Size (KByte) 32768 Total PE 1087 Free PE 5 Allocated PE 1082
- パーティション縮小
fdiskを使ってのパーティションの削除と作成
# fdisk /dev/sda
コマンド (m でヘルプ): pディスク /dev/sda: 60.0 GB, 60011642880 バイト
ヘッド 255, セクタ 63, シリンダ 7296
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
Disk identifier: 0xbf8e740aデバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 7296 58500697+ 8e Linux LVMコマンド (m でヘルプ): d
領域番号 (1-4): 2コマンド (m でヘルプ): p
ディスク /dev/sda: 60.0 GB, 60011642880 バイト
ヘッド 255, セクタ 63, シリンダ 7296
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
Disk identifier: 0xbf8e740aデバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 1 13 104391 83 Linuxコマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 2
最初 シリンダ (14-7296, 初期値 14):
初期値 14 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (14-7296, 初期値 7296):+35Gコマンド (m でヘルプ): p
ディスク /dev/sda: 60.0 GB, 60011642880 バイト
ヘッド 255, セクタ 63, シリンダ 7296
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
Disk identifier: 0xbf8e740aデバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 4583 36708525 83 Linuxコマンド (m でヘルプ): w
領域テーブルは交換されました!ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。
以上
本来は末尾のLVを消すのではなく、別のディスクを用意して
そこにpvmoveで移動するのが筋
http://www.itmedia.co.jp/enterprise/0308/08/epn01.html
http://michilu.com/blog/posts/40/
が、時間がかかるので省略。
参考
http://pantora.net/pages/linux/lvm/3/
http://hellokitty68.main.jp/wiki/LVM
http://blue21.ddo.jp/man/man2html.html?lang=ja&cmd=8+pvresize
http://d.hatena.ne.jp/jbking/20061213/p1
http://d.hatena.ne.jp/tueda_wolf/20080604/p1
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a090configlvm.html