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/p_w_picpaths/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)