xen掛載虛擬機分區刪除日誌 破解密碼無所不能
用 virt-manager, virsh 或其他工具可以選擇把 KVM 或 Xen HVM 的虛擬機安裝在一個鏡像文件上,雖然因爲性能的關係這種方式不太推薦在生產環境使用(不需要停機但會影響性能),但是因爲用起來非常簡便,比較適合排除系統告警,
首先用 losetup 工具把 root.raw 文件和 loop 設備映射起來,-f 參數用來找出下一個可用的 loop 設備:
# losetup -f
/dev/loop11
# losetup /dev/loop11 root.raw
一個鏡像文件裏可能包含多個分區,所以不能簡單 mount -o loop root.raw 我們需要把 root.raw 裏面包含的每個分區映射出來後在一個一個掛載,所以需要一個工具來讀分區表,
kpartx 就是這樣一個在特定設備上讀取分區表併爲每個分區創建映射的工具,-a 參數表示加入分區映射;-v 參數表示完成後輸出結果:
VMA8C164 # kpartx -av /dev/loop11
add map loop11p1 (253:10): 0 8401932 linear /dev/loop11 63
add map loop11p2 (253:11): 0 4192965 linear /dev/loop11 8401995
add map loop11p3 (253:12): 0 20948760 linear /dev/loop11 12594960
上面 loop11p1, loop11p2, loop11p3 分別映射到鏡像文件裏的3個分區裏,可以通過 fdisk 來查看:
VMA8C164 # fdisk -l /dev/loop11
Disk /dev/loop11: 17.2 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders, total 33554432 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005b1e6
Device Boot Start End Blocks Id System
/dev/loop11p1 63 8401994 4200966 82 Linux swap / Solaris
/dev/loop11p2 8401995 12594959 2096482+ 83 Linux
/dev/loop11p3 * 12594960 33543719 10474380 83 Linux
有了上面的映射以後就可以掛載 root.ram裏的普通邏輯分區了,我們這裏只掛載 /var 分區 /var分區在 /dev/loop11p2,掛載成功後用 ls 查看一下是否正確:
# ls -l /dev/mapper/
total 0
crw-rw---- 1 root root 10, 236 Jul 12 18:47 control
lrwxrwxrwx 1 root root 8 Aug 6 17:06 loop11p1 -> ../dm-10
lrwxrwxrwx 1 root root 8 Aug 6 17:06 loop11p2 -> ../dm-11
lrwxrwxrwx 1 root root 8 Aug 6 17:06 loop11p3 -> ../dm-12
# mount /dev/mapper/loop11p2 /mnt
清空/var 目錄下tsar.data日誌文件
bj-xen-xx3:/mnt/log # df -h | grep mnt
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/loop4p2 2.0G 1.6G 359M 82% /mnt
bj-xen-xx3:/mnt/log # rm tsar.data
rm: cannot remove `tsar.data': Operation not permitted
bj-xen-xx3:/mnt/log # chattr -a tsar.data
bj-xen-xx3:/mnt/log # echo >tsar.data
使用完後,需要按順序乾淨卸載:
# umount /mnt
bj-xen-hispace3:~ # losetup -a
/dev/loop11: [0806]:3463787 (/opt/xxx/xen/images/VM0B0521/root.raw)
# kpartx -dv /dev/loop11
del devmap : loop11p1
del devmap : loop11p2
del devmap : loop11p3
# losetup -d /dev/loop11
拉起虛擬機
bj-xen-xx3:/etc/xen/auto # xm cre VM0B0521
Using config file "./VM0B0521".
Started domain VM0B0521 (id=26)