CentOS 템플릿을 수정해야할 일이 생겼다.
qemu-img convert -f qcow2 볼륨파일 -O qcow2 템플릿파일
위와 같이 시도해봤으나 볼륨이 카피되는 것처럼 찝찝했다.
그래서 마운트해서 직접 파일시스템을 고쳐보기로...
하지만 LVM 에서 막혀버렸다... ㅠ
그리도 qcow2 는 qemu-nbd 라는 유틸리티를 이용해서 로드할 수 있는데, CentOS6 버전에서는 없다.
그래서 qcow2 를 raw로 변경해야 한다.
qemu-img convert -f qcow2 originImage.qcow2 -O raw image.raw
raw 로 바뀌었으면 이제 본격적으로 마운트를 시켜보자.
losetup /dev/loop0 image.raw
kpartx -a /dev/loop0
mkdir /mnt/image
mount /dev/mapper/loop0p2 /mnt/image
하지만.
"mount: unknown filesystem type 'LVM2_member'"
에러가 발생한다.
LVM이기 때문에 이렇게 마운트 할수가 없는 것이다.
[root@dev156 mnt]# lvmdiskscan
/dev/ram0 [ 16.00 MiB]
/dev/loop0 [ 8.00 GiB]
/dev/root [ 50.00 GiB]
/dev/ram1 [ 16.00 MiB]
/dev/vg_dev154/lv_swap [ 9.80 GiB]
/dev/ram2 [ 16.00 MiB]
/dev/sda2 [ 500.00 MiB]
/dev/vg_dev154/lv_home [ 871.22 GiB]
/dev/ram3 [ 16.00 MiB]
/dev/sda3 [ 931.02 GiB] LVM physical volume
/dev/vg_dev156/lv_swap [ 9.78 GiB]
/dev/ram4 [ 16.00 MiB]
/dev/vg_dev156/lv_home [ 871.22 GiB]
/dev/ram5 [ 16.00 MiB]
/dev/vg_dev156/lv_root [ 50.00 GiB]
/dev/ram6 [ 16.00 MiB]
/dev/ram7 [ 16.00 MiB]
/dev/mapper/loop0p2 [ 7.90 GiB] LVM physical volume
/dev/ram8 [ 16.00 MiB]
/dev/VolGroup00/LogVol00 [ 6.88 GiB]
/dev/ram9 [ 16.00 MiB]
/dev/VolGroup00/LogVol01 [ 1.00 GiB]
/dev/ram10 [ 16.00 MiB]
/dev/ram11 [ 16.00 MiB]
/dev/ram12 [ 16.00 MiB]
/dev/ram13 [ 16.00 MiB]
/dev/ram14 [ 16.00 MiB]
/dev/ram15 [ 16.00 MiB]
/dev/sdb1 [ 500.00 MiB]
/dev/sdb2 [ 931.02 GiB] LVM physical volume
6 disks
21 partitions
0 LVM physical volume whole disks
3 LVM physical volumes
LVM 볼륨이 보인다.
/dev/mapper/loop0p2 [ 7.90 GiB] LVM physical volume
lvdisplay와 vgdisplay를 확인해서 LV, VG 이름을 확인한다.
[root@dev156 mnt]# vgdisplay
--- Volume group ---
VG Name vg_dev154
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 931.02 GiB
PE Size 4.00 MiB
Total PE 238341
Alloc PE / Size 238341 / 931.02 GiB
Free PE / Size 0 / 0
VG UUID Dully9-Bnix-hrHe-czD0-HfDK-pE60-wNLdmb
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 7.88 GiB
PE Size 32.00 MiB
Total PE 252
Alloc PE / Size 252 / 7.88 GiB
Free PE / Size 0 / 0
VG UUID 984Syc-oChm-BdAX-TKcD-l95D-JkTY-1FdH6M
--- Volume group ---
VG Name vg_dev156
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 931.00 GiB
PE Size 32.00 MiB
Total PE 29792
Alloc PE / Size 29792 / 931.00 GiB
Free PE / Size 0 / 0
VG UUID zzp60Z-uCg8-2A6T-M6aU-LfBP-QXqx-U1SDpB
[root@dev156 mnt]# lvdisplay
--- Logical volume ---
LV Name /dev/vg_dev154/lv_root
VG Name vg_dev154
LV UUID Qx338T-4L2V-mVsj-Idhd-MN0Y-zRM8-WXZBKK
LV Write Access read/write
LV Status available
# open 1
LV Size 50.00 GiB
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Name /dev/vg_dev154/lv_home
VG Name vg_dev154
LV UUID Ht9ZKI-0tUv-aYCr-hEjO-ArBT-VOaW-J2vcRM
LV Write Access read/write
LV Status available
# open 1
LV Size 871.22 GiB
Current LE 223033
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
--- Logical volume ---
LV Name /dev/vg_dev154/lv_swap
VG Name vg_dev154
LV UUID 3pLedP-5ctg-1BVo-gSwA-Tbyg-V1gy-X5CaFP
LV Write Access read/write
LV Status available
# open 1
LV Size 9.80 GiB
Current LE 2508
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID 8Yp1YF-dfjF-tg8n-JHNh-iYwL-PJqy-TRlOEz
LV Write Access read/write
LV Status available
# open 0
LV Size 6.88 GiB
Current LE 220
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:8
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID Fd4zHI-S1sp-Xz20-KIuO-QaJJ-RQ1y-mbtIzW
LV Write Access read/write
LV Status available
# open 0
LV Size 1.00 GiB
Current LE 32
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:9
--- Logical volume ---
LV Name /dev/vg_dev156/lv_swap
VG Name vg_dev156
LV UUID d6c20U-pQYM-xGfe-yER1-uSgF-wUYx-5OrboZ
LV Write Access read/write
LV Status available
# open 0
LV Size 9.78 GiB
Current LE 313
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:3
--- Logical volume ---
LV Name /dev/vg_dev156/lv_home
VG Name vg_dev156
LV UUID V1jSbh-ZqZM-XOh7-PFCL-JqTN-jxuc-yoP6Sk
LV Write Access read/write
LV Status available
# open 0
LV Size 871.22 GiB
Current LE 27879
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:4
--- Logical volume ---
LV Name /dev/vg_dev156/lv_root
VG Name vg_dev156
LV UUID RpA6xx-qI6s-WhG6-ZEu8-DCiY-Uprz-C039Cz
LV Write Access read/write
LV Status available
# open 0
LV Size 50.00 GiB
Current LE 1600
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:5
[root@dev156 mnt]# vgdisplay
--- Volume group ---
VG Name vg_dev154
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 931.02 GiB
PE Size 4.00 MiB
Total PE 238341
Alloc PE / Size 238341 / 931.02 GiB
Free PE / Size 0 / 0
VG UUID Dully9-Bnix-hrHe-czD0-HfDK-pE60-wNLdmb
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 7.88 GiB
PE Size 32.00 MiB
Total PE 252
Alloc PE / Size 252 / 7.88 GiB
Free PE / Size 0 / 0
VG UUID 984Syc-oChm-BdAX-TKcD-l95D-JkTY-1FdH6M
--- Volume group ---
VG Name vg_dev156
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 931.00 GiB
PE Size 32.00 MiB
Total PE 29792
Alloc PE / Size 29792 / 931.00 GiB
Free PE / Size 0 / 0
VG UUID zzp60Z-uCg8-2A6T-M6aU-LfBP-QXqx-U1SDpB
mount /dev/VolGroup00/LogVol00 /mnt/image
"mount: special device /dev/VolGroup00/LogVol00 does not exist"
에러가 발생했다...
그래서.
[root@dev156 mnt]# lvscan
ACTIVE '/dev/vg_dev154/lv_root' [50.00 GiB] inherit
ACTIVE '/dev/vg_dev154/lv_home' [871.22 GiB] inherit
ACTIVE '/dev/vg_dev154/lv_swap' [9.80 GiB] inherit
inactive '/dev/VolGroup00/LogVol00' [6.88 GiB] inherit
inactive '/dev/VolGroup00/LogVol01' [1.00 GiB] inherit
ACTIVE '/dev/vg_dev156/lv_swap' [9.78 GiB] inherit
ACTIVE '/dev/vg_dev156/lv_home' [871.22 GiB] inherit
ACTIVE '/dev/vg_dev156/lv_root' [50.00 GiB] inherit
상태가 inactive가 되어있다.
active로 바꿔줘야한다.
[root@dev156 mnt]# modprobe dm-mod
[root@dev156 mnt]# vgchange -ay
[root@dev156 mnt]# lvscan
ACTIVE '/dev/vg_dev154/lv_root' [50.00 GiB] inherit
ACTIVE '/dev/vg_dev154/lv_home' [871.22 GiB] inherit
ACTIVE '/dev/vg_dev154/lv_swap' [9.80 GiB] inherit
ACTIVE '/dev/VolGroup00/LogVol00' [6.88 GiB] inherit
ACTIVE '/dev/VolGroup00/LogVol01' [1.00 GiB] inherit
ACTIVE '/dev/vg_dev156/lv_swap' [9.78 GiB] inherit
ACTIVE '/dev/vg_dev156/lv_home' [871.22 GiB] inherit
ACTIVE '/dev/vg_dev156/lv_root' [50.00 GiB] inherit
다시
mount /dev/VolGroup00/LogVol00 /mount/image
이제 마운트가 된다.
수정 후
raw 를 qcow2 다시 변환해주어야한다.
qemu-img convert -f qcow2 image.raw -O raw modifiedImage.qcow2
해제
#lvremove /dev/VolGroup00/LogVol00
#lvremove /dev/VolGroup00/LogVol01
#kpartx -d /dev/loop0
#losetup -d /dev/loop0
참고
http://stackoverflow.com/questions/4966213/changing-password-of-a-virtual-machine
http://pissedoffadmins.com/?p=481