[linux] 对一个虚拟机的研究
今天拿到了一个vmware的虚拟机硬盘镜像,是其他公司的演示产品。
启动之后是带着ubuntu字样的grub。进入系统之后也不是shell,而是一个定制的命令行。所以如果想了解细节的话,只能单独挂硬盘了。
首先现在同事的vmware虚拟机里用CentOS的光盘挂载了一下,简单的看了看,用起来不太方便,遂准备把整个虚拟机镜像拿到T7来处理。
文件名:wobeidalemasaike.ova 共15GB。
一:ova 就是 tar格式的。先解压
/home/tong/Temp [tong@T7] [:]
> tar xvf wobeidalemasaike.ova /home/tong/Temp [tong@T7] [:]
> ll
total
-rw-r--r-- tong tong 15G Apr : wobeidalemasaike-disk1.vmdk
-rw-r--r-- tong tong 135 Apr : wobeidalemasaike.mf
-rw-r--r-- tong tong 15G Apr : wobeidalemasaike.ova
-rw-r--r-- tong tong 10K Apr : wobeidalemasaike.ovf
二:转换成qcow2格式。这个过程我用了4个小时,并且硬盘IO始终100%,电脑几乎动不了,而无法进行其他工作。。。
/home/tong/Temp [tong@T7] [:]
> qemu-img convert -f vmdk -O qcow2 wobeidalemasaike-disk1.vmdk wobeidalemasaike-disk1.qcow2 /home/tong/Temp [tong@T7] [:]
> ll |grep disk1
-rw-r--r-- tong tong 19G Apr : wobeidalemasaike-disk1.qcow2
-rw-r--r-- tong tong 15G Apr : wobeidalemasaike-disk1.vmdk
另外,可以对比一下文件格式的大小。
三:挂载。这个时候,就要吐草一下步骤二的,转格式真的很愚蠢,因为无论是使用qemu-nbd挂载还是直接启动,都可以直接使用vmdk格式,而不需要一定使用qcow2。
简直是愚蠢透了,浪费了4,5个小时的时间。
启动是这样的:
/home/tong/Temp [tong@T7] [:]
> qemu-system-x86_64 -hda wobeidalemasaike-disk1.vmdk
挂载可以参考这个:
http://www.cnblogs.com/hugetong/p/5903105.html
四:挂好之后,预料之中,分区是加密的:
/home/tong [tong@T7] [:]
> blkid
/dev/nbd0p1: UUID="7e126a21-4f25-4c78-a39d-ad891d3809e1" TYPE="ext4" PARTLABEL="boot" PARTUUID="40670754-aee2-4f4a-a85c-48d4667f65f8"
/dev/nbd0p2: UUID="115a6d13-b04e-4e56-9a52-05408487431f" TYPE="swap" PARTLABEL="swap" PARTUUID="b8fbd911-1b24-4be4-bdc9-3ffc884c6d0c"
/dev/nbd0p3: UUID="7b98be95-b401-44d2-9889-1c266ab9d0c3" TYPE="crypto_LUKS" PARTLABEL="root" PARTUUID="cb8c0f4f-fd20-475b-993a-0b82f144caf2"
/dev/nbd0p4: UUID="f9edf6ec-0cda-4b88-ab0c-d87627f24d9d" TYPE="crypto_LUKS" PARTLABEL="recovery" PARTUUID="24151f98-f6f0-4ee1-8c25-6f045835b3de"
/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的地址偏移。
[root@jay-rhel boot]# od -t x1 -A d vmlinuz-2.6.-.el6_jay.x86_64 | grep "1f 8b 08"
8d 3d ff e0 1f 8b c4 9c
[root@jay-rhel boot]# dd if=vmlinuz-2.6.-.el6_jay.x86_64 bs= skip= | zcat > vmlinux-jay gzip: stdin: decompression OK, trailing garbage ignored
[root@jay-rhel boot]# file vmlinux-jay
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选项:
rw single init=/bin/bash
8.3 给root一个密码。
8.4 重启。
8.5 用root登录。整个加密分区就都拿到了。
九,进来了才知道,不过只是干了这么一件事而已。。。。。
# cat /etc/passwd
super:x:::Super User:/home/super:/opt/radar-console/bin/clish-shell
admin:x:::Admin User:/home/admin:/opt/radar-console/bin/clish-shell
十,加个什么破密,防君子啊。。。。
[linux] 对一个虚拟机的研究的更多相关文章
- 在 Linux 的 KVM虚拟机 上安装 Mac OS 系统的研究总结
在 Linux 的 KVM虚拟机 上安装 Mac OS 系统的研究总结 一.资料来源: 网上一共找到两个方法,一个是视频上的教程,一个是网页资料. 二.视频资料方法内容:1.install qe ...
- [转载]实战Linux下VMware虚拟机根目录空间扩充
[转载]实战Linux下VMware虚拟机根目录空间扩充 (2011-07-31 21:34:34) 转载▼ 标签: 转载 原文地址:实战Linux下VMware虚拟机根目录空间扩充作者:shar ...
- Linux 容器 vs 虚拟机 —— 谁更胜一筹
自从Linux上的容器变得流行以来,了解Linux容器和虚拟机之间的区别变得更加棘手.本文将向您提供详细信息,以了解Linux容器和虚拟机之间的差异. Linux容器vs虚拟机 – 应用程序与操作系统 ...
- Linux 容器 vs 虚拟机——谁更胜一筹
自从Linux上的容器变得流行以来,了解Linux容器和虚拟机之间的区别变得更加棘手.本文将向您提供详细信息,以了解Linux容器和虚拟机之间的差异. Linux容器vs虚拟机 - 应用程序与操作系统 ...
- linux下安装虚拟机qemu kqemu
一,为什么要装虚拟机,为什么选择qemu 我的系统里面有3个linux系统,这些系统都是独立的,有的时候,我想一台电脑,能更真实的模拟二台,这个时候我们就可以装个虚拟机.其实如果真的很有钱的话,可能考 ...
- linux下一个oracle11G DG建立(一个):准备环境
linux下一个oracle11G DG建立(一个):准备环境 周围环境 名称 主库 备库 主机名 bjsrv shsrv 软件版本号 RedHat Enterprise5.5.Oracle 11g ...
- linux下一个Oracle11g RAC建立(八)
linux下一个Oracle11g RAC建立(八) 七.安装oracle软件 直接在图形界面里安装oracle.在node1操作 在虚拟机界面中,直接切换到oracle用户下: [grid@no ...
- [转帖] Linux 创建一个简单的私有CA、发证、吊销证书
原创帖子地址: https://blog.csdn.net/mr_rsq/article/details/71001810 Linux 创建一个简单的私有CA.发证.吊销证书 2017年04月30 ...
- 在 Linux 上创建虚拟机规模集和部署高度可用的应用
利用虚拟机规模集,可以部署和管理一组相同的.自动缩放的虚拟机. 可以手动缩放规模集中的 VM 数,也可以定义规则,以便根据资源使用情况(如 CPU 使用率.内存需求或网络流量)进行自动缩放. 在本教程 ...
随机推荐
- 十大高明的Google搜索技巧
WHY 对于google检索,有时需要技巧会得到更好的检索结果,不用简单输入关键字检索后,一个个去浏览.对于这些技巧,基本都知道,但是如果不经常用,总是忘了,又得重新搜索下具体使用方法,这里就把它放到 ...
- windows server r2 安装vs2017 更新补丁Windows8.1-KB2919355-x6
方法一: 点击vs2017安装包后提示需要更新Windows8.1-KB2919355-x64补丁 点击链接进入全部下载后查看官方安装顺序为 注意 必须按照以下顺序安装更新:clearcompress ...
- EntityFramework 多数据库链接,MySql,SqlServer,Oracel等
环境:EntityFramework5.0,MySql5.6,MSSQL2012 EF是强大的ORM工具,真正意义上的多数据库链接指的是不同类型的数据库,以及同种类型的数据库多个库,EF很好的支持这一 ...
- Java知多少(50)Java throws子句
如果一个方法可以导致一个异常但不处理它,它必须指定这种行为以使方法的调用者可以保护它们自己而不发生异常.做到这点你可以在方法声明中包含一个throws子句.一个 throws 子句列举了一个方法可能抛 ...
- 解决Android8.0之后开启service时报错IllegalStateException: Not allowed to start service Intent ...
项目测试时发现的,在双击返回键关闭应用后(并未杀死后台)重新打开APP,其他手机都OK,但是8.0的手机会出现较频繁的crash.检查代码,问题锁定在重新开启应用时的startService()上. ...
- 安卓程序代写 网上程序代写[原]Android应用的自动更新模块
软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很 ...
- Windows 下单机最大TCP连接数
在做Socket 编程时,我们经常会要问,单机最多可以建立多少个 TCP 连接,本文将介绍如何调整系统参数来调整单机的最大TCP连接数. Windows 下单机的TCP连接数有多个参数共同决定,下面一 ...
- C#自定义按钮、自定义WinForm无边框窗体、自定义MessageBox窗体
C#自定义按钮.自定义WinForm无边框窗体.自定义MessageBox窗体 C#自定义Button按钮控件 效果展示 C#自定义Winform无边框窗体 效果展示 C#自定义无边框MessageB ...
- [原]Jenkins(十)---jenkins注册管理员admin并赋所有权限给admin
/** * lihaibo * 文章内容都是根据自己工作情况实践得出. * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/533 ...
- 实用方法 - 解决360Doc文章不能复制的问题(实现不登录直接复制)
问题: 有时搜索文章的时候看到一些有用的文字,或者在网上搜索一些文献资料,找到需要的部分后,通常都可以使用 Ctrl + C,或者右键复制下来.但有些网站,比如:360个人图书馆(360Doc)会强制 ...