今天拿到了一个vmware的虚拟机硬盘镜像,是其他公司的演示产品。

启动之后是带着ubuntu字样的grub。进入系统之后也不是shell,而是一个定制的命令行。所以如果想了解细节的话,只能单独挂硬盘了。

首先现在同事的vmware虚拟机里用CentOS的光盘挂载了一下,简单的看了看,用起来不太方便,遂准备把整个虚拟机镜像拿到T7来处理。

文件名:wobeidalemasaike.ova 共15GB。

一:ova 就是 tar格式的。先解压

  1. /home/tong/Temp [tong@T7] [:]
  2. > tar xvf wobeidalemasaike.ova
  3.  
  4. /home/tong/Temp [tong@T7] [:]
  5. > ll
  6. total
  7. -rw-r--r-- tong tong 15G Apr : wobeidalemasaike-disk1.vmdk
  8. -rw-r--r-- tong tong 135 Apr : wobeidalemasaike.mf
  9. -rw-r--r-- tong tong 15G Apr : wobeidalemasaike.ova
  10. -rw-r--r-- tong tong 10K Apr : wobeidalemasaike.ovf

二:转换成qcow2格式。这个过程我用了4个小时,并且硬盘IO始终100%,电脑几乎动不了,而无法进行其他工作。。。

  1. /home/tong/Temp [tong@T7] [:]
  2. > qemu-img convert -f vmdk -O qcow2 wobeidalemasaike-disk1.vmdk wobeidalemasaike-disk1.qcow2
  3.  
  4. /home/tong/Temp [tong@T7] [:]
  5. > ll |grep disk1
  6. -rw-r--r-- tong tong 19G Apr : wobeidalemasaike-disk1.qcow2
  7. -rw-r--r-- tong tong 15G Apr : wobeidalemasaike-disk1.vmdk

另外,可以对比一下文件格式的大小。

三:挂载。这个时候,就要吐草一下步骤二的,转格式真的很愚蠢,因为无论是使用qemu-nbd挂载还是直接启动,都可以直接使用vmdk格式,而不需要一定使用qcow2。

  简直是愚蠢透了,浪费了4,5个小时的时间。

  启动是这样的:

  1. /home/tong/Temp [tong@T7] [:]
  2. > qemu-system-x86_64 -hda wobeidalemasaike-disk1.vmdk

  挂载可以参考这个:

  http://www.cnblogs.com/hugetong/p/5903105.html

四:挂好之后,预料之中,分区是加密的:

  1. /home/tong [tong@T7] [:]
  2. > blkid
  3. /dev/nbd0p1: UUID="7e126a21-4f25-4c78-a39d-ad891d3809e1" TYPE="ext4" PARTLABEL="boot" PARTUUID="40670754-aee2-4f4a-a85c-48d4667f65f8"
  4. /dev/nbd0p2: UUID="115a6d13-b04e-4e56-9a52-05408487431f" TYPE="swap" PARTLABEL="swap" PARTUUID="b8fbd911-1b24-4be4-bdc9-3ffc884c6d0c"
  5. /dev/nbd0p3: UUID="7b98be95-b401-44d2-9889-1c266ab9d0c3" TYPE="crypto_LUKS" PARTLABEL="root" PARTUUID="cb8c0f4f-fd20-475b-993a-0b82f144caf2"
  6. /dev/nbd0p4: UUID="f9edf6ec-0cda-4b88-ab0c-d87627f24d9d" TYPE="crypto_LUKS" PARTLABEL="recovery" PARTUUID="24151f98-f6f0-4ee1-8c25-6f045835b3de"
  7. /dev/nbd0p5: UUID="d75fd96e-7ee9-44ba-94d6-b342dbafe72d" TYPE="ext4" PARTLABEL="data" PARTUUID="ae85b8cd-2816-4e03-87b1-83ef159ceeda"

  TODO: 加密分区。

五: 分区在加密,也会被initrd解出来,所以initrd应该怎么处理呢?

六: 内核呢?

七:解压内核:(14441 = 14432 + 8 )就是1f8b08的地址偏移。

  1. [root@jay-rhel boot]# od -t x1 -A d vmlinuz-2.6.-.el6_jay.x86_64 | grep "1f 8b 08"
  2. 8d 3d ff e0 1f 8b c4 9c
  3. [root@jay-rhel boot]# dd if=vmlinuz-2.6.-.el6_jay.x86_64 bs= skip= | zcat > vmlinux-jay
  4.  
  5. gzip: stdin: decompression OK, trailing garbage ignored
  6. [root@jay-rhel boot]# file vmlinux-jay
  7. vmlinux-jay: ELF -bit LSB executable, x86-, version (SYSV), statically linked, stripped

参考:http://smilejay.com/2013/06/extract-vmlinuz-and-initrd/

八:解密了!@2017-04-19

  我费劲心机的研究,也没有把它解出来。测试部轻轻松的一个single就搞定了。。。。

8.1 把boot分区挂载起来,把grub里面的password去掉。

8.2 添加kernel选项:

  1. rw single init=/bin/bash

8.3 给root一个密码。

8.4 重启。

8.5 用root登录。整个加密分区就都拿到了。

九,进来了才知道,不过只是干了这么一件事而已。。。。。

  1. # cat /etc/passwd
  2. super:x:::Super User:/home/super:/opt/radar-console/bin/clish-shell
  3. admin:x:::Admin User:/home/admin:/opt/radar-console/bin/clish-shell

十,加个什么破密,防君子啊。。。。

[linux] 对一个虚拟机的研究的更多相关文章

  1. 在 Linux 的 KVM虚拟机 上安装 Mac OS 系统的研究总结

    在 Linux 的 KVM虚拟机 上安装 Mac OS 系统的研究总结 一.资料来源:    网上一共找到两个方法,一个是视频上的教程,一个是网页资料. 二.视频资料方法内容:1.install qe ...

  2. [转载]实战Linux下VMware虚拟机根目录空间扩充

    [转载]实战Linux下VMware虚拟机根目录空间扩充 (2011-07-31 21:34:34) 转载▼ 标签: 转载   原文地址:实战Linux下VMware虚拟机根目录空间扩充作者:shar ...

  3. Linux 容器 vs 虚拟机 —— 谁更胜一筹

    自从Linux上的容器变得流行以来,了解Linux容器和虚拟机之间的区别变得更加棘手.本文将向您提供详细信息,以了解Linux容器和虚拟机之间的差异. Linux容器vs虚拟机 – 应用程序与操作系统 ...

  4. Linux 容器 vs 虚拟机——谁更胜一筹

    自从Linux上的容器变得流行以来,了解Linux容器和虚拟机之间的区别变得更加棘手.本文将向您提供详细信息,以了解Linux容器和虚拟机之间的差异. Linux容器vs虚拟机 - 应用程序与操作系统 ...

  5. linux下安装虚拟机qemu kqemu

    一,为什么要装虚拟机,为什么选择qemu 我的系统里面有3个linux系统,这些系统都是独立的,有的时候,我想一台电脑,能更真实的模拟二台,这个时候我们就可以装个虚拟机.其实如果真的很有钱的话,可能考 ...

  6. linux下一个oracle11G DG建立(一个):准备环境

    linux下一个oracle11G  DG建立(一个):准备环境 周围环境 名称 主库 备库 主机名 bjsrv shsrv 软件版本号 RedHat Enterprise5.5.Oracle 11g ...

  7. linux下一个Oracle11g RAC建立(八)

    linux下一个Oracle11g RAC建立(八) 七.安装oracle软件   直接在图形界面里安装oracle.在node1操作 在虚拟机界面中,直接切换到oracle用户下: [grid@no ...

  8. [转帖] Linux 创建一个简单的私有CA、发证、吊销证书

    原创帖子地址:   https://blog.csdn.net/mr_rsq/article/details/71001810 Linux 创建一个简单的私有CA.发证.吊销证书 2017年04月30 ...

  9. 在 Linux 上创建虚拟机规模集和部署高度可用的应用

    利用虚拟机规模集,可以部署和管理一组相同的.自动缩放的虚拟机. 可以手动缩放规模集中的 VM 数,也可以定义规则,以便根据资源使用情况(如 CPU 使用率.内存需求或网络流量)进行自动缩放. 在本教程 ...

随机推荐

  1. Fluent动网格【1】:概述

    最近总有小伙伴向我询问Fluent中的动网格问题,因此决定做一期关于Fluent动网格技术的内容. 动网格技术在流体仿真中很特殊,应用也很广.生活中能够碰到形形色色的包含有部件运动的问题,比如说我现在 ...

  2. T-Pot平台cowrie蜜罐暴力破解探测及实现自动化邮件告警

    前言:Cowrie是基于kippo更改的中交互ssh蜜罐, 可以对暴力攻击账号密码等记录,并提供伪造的文件系统环境记录黑客操作行为, 并保存通过wget/curl下载的文件以及通过SFTP.SCP上传 ...

  3. linux每日命令(27):chmod命令

    chmod命令用于改变linux系统文件或目录的访问权限.用它控制文件或目录的访问权限.该命令有两种用法.一种是包含字母和操作符表达式的文字设定法:另一种是包含数字的数字设定法. Linux系统中的每 ...

  4. [原]关于在Python和C#之间消息传递的问题

    问题的描述: 鉴于Python强大的网络功能和丰富的开源组件和C#开发Windows Form程序时优秀的框架,使用Python和C#混合编程可以有效的结合二者的长处,快速开发产品. 然而在这两者之间 ...

  5. c# 使用GDAL处理大图

    注意问题: 1.GDAL 使用官网生成好的dll,必须把Bin目录下的dll一并加到执行目录下去,否则会出错.  2. 用环境变量设置引用路径可以避免一大堆dll放一起.代码如下: /// <s ...

  6. Java知多少(91)对话框

    对话框是为了人机对话过程提供交互模式的工具.应用程序通过对话框,或给用户提供信息,或从用户获得信息.对话框是一个临时窗口,可以在其中放置用于得到用户输入的控件.在Swing中,有两个对话框类,它们是J ...

  7. 【转载】Ubuntu安装之,硬盘分区

    关于分区 如果你只是简单地想用上Ubuntu,可以这样操作:1)如果你是直接将整个硬盘都用来装Ubuntu,机器上没有需要保存的数据,或者已经做好备份的情况下,可以直接在Ubuntu分区时选择“向导─ ...

  8. 关于Solaris 的磁盘的分区

    也许是深受LINUX  Windows  fdisk 影响,每次看完Solaris的format命令,总是云里雾里.我今天总结一下,各位给点指点 一. Linux.Windows  传统的磁盘区层级, ...

  9. 一、Bitcoin比特币与BlockChain区块链技术

    一.比特币历史 2008 年 10 月 31 日,一个网名叫中本聪(英文翻译过来滴)的家伙发布比特币唯一的白皮书:<Bitcoin:A Peer-to-PeerElectronic Cash S ...

  10. #Java学习之路——基础阶段二(第十篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...