- 浏览: 1489250 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (691)
- linux (207)
- shell (33)
- java (42)
- 其他 (22)
- javascript (33)
- cloud (16)
- python (33)
- c (48)
- sql (12)
- 工具 (6)
- 缓存 (16)
- ubuntu (7)
- perl (3)
- lua (2)
- 超级有用 (2)
- 服务器 (2)
- mac (22)
- nginx (34)
- php (2)
- 内核 (2)
- gdb (13)
- ICTCLAS (2)
- mac android (0)
- unix (1)
- android (1)
- vim (1)
- epoll (1)
- ios (21)
- mysql (3)
- systemtap (1)
- 算法 (2)
- 汇编 (2)
- arm (3)
- 我的数据结构 (8)
- websocket (12)
- hadoop (5)
- thrift (2)
- hbase (1)
- graphviz (1)
- redis (1)
- raspberry (2)
- qemu (31)
- opencv (4)
- socket (1)
- opengl (1)
- ibeacons (1)
- emacs (6)
- openstack (24)
- docker (1)
- webrtc (11)
- angularjs (2)
- neutron (23)
- jslinux (18)
- 网络 (13)
- tap (9)
- tensorflow (8)
- nlu (4)
- asm.js (5)
- sip (3)
- xl2tp (5)
- conda (1)
- emscripten (6)
- ffmpeg (10)
- srt (1)
- wasm (5)
- bert (3)
- kaldi (4)
- 知识图谱 (1)
最新评论
-
wahahachuang8:
我喜欢代码简洁易读,服务稳定的推送服务,前段时间研究了一下go ...
websocket的helloworld -
q114687576:
http://www.blue-zero.com/WebSoc ...
websocket的helloworld -
zhaoyanzimm:
感谢您的分享,给我提供了很大的帮助,在使用过程中发现了一个问题 ...
nginx的helloworld模块的helloworld -
haoningabc:
leebyte 写道太NB了,期待早日用上Killinux!么 ...
qemu+emacs+gdb调试内核 -
leebyte:
太NB了,期待早日用上Killinux!
qemu+emacs+gdb调试内核
使用qemu建立虚拟机
1.需要内核文件 bzImage
2.制作操作系统的镜像 hda.img
内核编译参考:http://haoningabc.iteye.com/blog/2237569
制作简单的镜像需要使用https://github.com/killinux/jslinux_reversed
具体建立一个120M的精简操作系统,debian的etch版本
要求支持ip,ifconfig,dhclient等网络命令
建立方法,这个debootstrap命令国内可能不通,去aws上操作吧
建立方法:
在ubuntu操作系统上
得到
/opt/etch
为所需要的操作系统的文件,注意这里选的包包含基本的网络命令ip,dhclient等
下载生成镜像的工具
主要使用https://github.com/killinux/jslinux_reversed/blob/master/contrib/createimage.sh
生成hda.img文件
在linux启动的时候默认先调用/sbin/init
所以检查init文件的正确性
mkdir hda
mount -o loop hda.img hda
vim hda/sbin/init
这里注释掉#. /dev/clipboard
注意如果启动失败,可能需要加上
/sbin/mdev -s
作用是初始化/dev下面的文件
这里关键点是挂载/proc /sys 和/dev 三个文件系统
有了bzImage内核和hda.img镜像
就可以建立虚拟机了
或者
-hda或者使用-drive的方式
cache参数可以使用
writethrough 直写模式:在调动write写入数据的同时将数据写入到磁盘缓存中
writeback 回写模式:数据写入到磁盘缓存即返回
none 关闭缓存
btw,如果不想破坏原来的hda.img
使用增量建立vm
可以指定hda.img为backing_file
即hda.img 作为基础模板,
新的hda_hasbacking_file.qcow2 保存hda.img的增量部分
使用hda_hasbacking_file.qcow2建立的vm不会对原来镜像造成破坏
如果加了-boot order=dc,menu=on
可以控制启动顺序,和是否显示启动菜单
d为光驱,c为第一个硬盘
如果添加网络则用-net 参数
-net nic 为必须的参数表明这是一个网卡配置
vlan表示blan编号,默认0
macaddr是mac地址,进虚拟机后
ctrl+a c 切换到monitor模式
info network查看网卡
可以看到mac地址
52:54:00:12:34:22
是我们建立vm的时候指定的
model为网卡类型,可以查看qemu查看网卡的类型有哪些
更多网络相关的,可以参考
桥接的方式使用qemu建立虚拟机:http://haoningabc.iteye.com/blog/2306736
NAT的方式使用qemu建立虚拟机:
http://haoningabc.iteye.com/blog/2306952
1.需要内核文件 bzImage
2.制作操作系统的镜像 hda.img
内核编译参考:http://haoningabc.iteye.com/blog/2237569
制作简单的镜像需要使用https://github.com/killinux/jslinux_reversed
具体建立一个120M的精简操作系统,debian的etch版本
要求支持ip,ifconfig,dhclient等网络命令
建立方法,这个debootstrap命令国内可能不通,去aws上操作吧
建立方法:
在ubuntu操作系统上
cd /opt/ debootstrap --variant=minbase --include=dhcp-client,ssh,vim,make,psmisc,mini-httpd,net-tools,iproute,iputils-ping,procps,telnet,iptables,wget,tcpdump,curl,gdb,binutils,gcc,libc6-dev,lsof,strace --exclude=locales,aptitude,gnupg,cron,udev,tasksel,rsyslog,groff-base,manpages,gpgv,man-db,apt,debian-archive-keyring,sysv-rc,sysvinit,insserv,python2.6 --arch i386 etch etch 'http://archive.debian.org/debian'
得到
/opt/etch
为所需要的操作系统的文件,注意这里选的包包含基本的网络命令ip,dhclient等
下载生成镜像的工具
主要使用https://github.com/killinux/jslinux_reversed/blob/master/contrib/createimage.sh
cd /var/www/html/ git clone https://github.com/killinux/jslinux_reversed mv /opt/etch /var/www/html/jslinux_reversed/contrib/squeeze ./createimage.sh
生成hda.img文件
在linux启动的时候默认先调用/sbin/init
所以检查init文件的正确性
mkdir hda
mount -o loop hda.img hda
vim hda/sbin/init
#!/bin/sh show_boot_time 2>/dev/null echo "JSLinux started, initializing..." export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin export HOME=/root export TERM=vt100 mount -n -t proc /proc /proc mount -n -t sysfs /sys /sys mount -n -t devpts devpts /dev/pts mount -n -t tmpfs /tmp /tmp mkdir -p "/tmp/root" ip link set up dev lo main() { echo >/dev/clipboard while :; do setsid sh -c "exec bash 0<>/dev/ttyS0 1>&0 2>&0" done } #. /dev/clipboard main "$@"
这里注释掉#. /dev/clipboard
注意如果启动失败,可能需要加上
/sbin/mdev -s
作用是初始化/dev下面的文件
这里关键点是挂载/proc /sys 和/dev 三个文件系统
有了bzImage内核和hda.img镜像
就可以建立虚拟机了
qemu-system-i386 -kernel bzImage -drive file=hda.img,if=ide,cache=none -append "console=ttyS0 root=/dev/sda rw rdinit=/sbin/init notsc=1" -nographic
或者
qemu-system-i386 -kernel bzImage -hda hda.img -append "console=ttyS0 root=/dev/sda rw rdinit=/sbin/init notsc=1" -nographic
-hda或者使用-drive的方式
cache参数可以使用
writethrough 直写模式:在调动write写入数据的同时将数据写入到磁盘缓存中
writeback 回写模式:数据写入到磁盘缓存即返回
none 关闭缓存
btw,如果不想破坏原来的hda.img
使用增量建立vm
可以指定hda.img为backing_file
qemu-img create -f qcow2 -o backing_file=hda.img hda_hasbacking_file.qcow2
即hda.img 作为基础模板,
新的hda_hasbacking_file.qcow2 保存hda.img的增量部分
使用hda_hasbacking_file.qcow2建立的vm不会对原来镜像造成破坏
qemu-system-i386 -kernel bzImage -drive file=hda_hasbacking_file.qcow2,if=ide,cache=none -append "console=ttyS0 root=/dev/sda rw rdinit=/sbin/init notsc=1" -nographic
如果加了-boot order=dc,menu=on
可以控制启动顺序,和是否显示启动菜单
d为光驱,c为第一个硬盘
如果添加网络则用-net 参数
qemu-system-i386 -kernel bzImage -drive file=hda_hasbacking_file.qcow2,if=ide,cache=none -append "console=ttyS0 root=/dev/sda rw rdinit=/sbin/init notsc=1" -nographic -boot order=dc,menu=on -net nic,vlan=0,macaddr=52:54:00:12:34:22,model=e1000,addr=08 -net tap,ifname=tap1,script=no,downscript=no
-net nic 为必须的参数表明这是一个网卡配置
vlan表示blan编号,默认0
macaddr是mac地址,进虚拟机后
ctrl+a c 切换到monitor模式
info network查看网卡
root@(none):/# QEMU 2.5.1 monitor - type 'help' for more information (qemu) info network hub 0 \ hub0port1: tap.0: index=0,type=tap,ifname=tap1,script=no,downscript=no \ hub0port0: e1000.0: index=0,type=nic,model=e1000,macaddr=52:54:00:12:34:22 (qemu)
可以看到mac地址
52:54:00:12:34:22
是我们建立vm的时候指定的
model为网卡类型,可以查看qemu查看网卡的类型有哪些
qemu-system-i386 -net nic,model=? qemu: Supported NIC models: ne2k_pci,i82551,i82557b,i82559er,rtl8139,e1000,pcnet,virtio
更多网络相关的,可以参考
桥接的方式使用qemu建立虚拟机:http://haoningabc.iteye.com/blog/2306736
NAT的方式使用qemu建立虚拟机:
http://haoningabc.iteye.com/blog/2306952
发表评论
-
tinyemu
2019-01-24 17:59 1459参考https://bellard.org/jslinux/t ... -
jslinux-deobfuscated-network
2017-02-13 22:37 755基础知识 查看网络包 tcpdump -i eth0 -e ... -
用buildroot为jslinux建立最小rootfs
2016-11-18 17:59 1295############################### ... -
nginx rewrite替代apache rewrite
2016-10-18 20:30 853清理chrome的缓存 chrome://appcache-i ... -
qemu用tap方式启动vm的网络试验(ip route)
2016-09-14 11:29 2864ip route add 192.168.8.0/24 via ... -
qemu的不断网动态迁移的试验
2016-06-28 16:16 967需求: 目前有两台服务器 192.168.139.117 19 ... -
kvm的nested嵌套
2016-06-27 18:25 1355关键点是 modprobe kvm_intel nested= ... -
qemu的动态迁移的试验
2016-06-25 21:48 14401.安装qemu-2.5.1.tar 解决 ... -
libvirt建立快照和基本使用
2016-06-25 15:51 1659如果使用qemu的快照方式 在monitor中操作 (qe ... -
socket的方式使用qemu建立虚拟机
2016-06-24 17:54 1953qemu的-net参数 -net nic 必须有,基本配置mo ... -
tap的方式使用qemu建立虚拟机NAT网络
2016-06-23 18:03 9944基本概念: vm:虚拟机 ... -
qemu用nat的方式使用tap建立虚拟机
2016-06-23 16:15 11普通桥接参考 http://haoningabc.iteye. ... -
tap的方式使用qemu建立虚拟机桥接网络
2016-06-22 20:53 7940需求:建立一个虚拟机,使网络和内网一样,当一台普通接入内网的服 ... -
使用buildroot为jslinux创建root.bin
2016-05-02 00:37 1373环境 gcc 版本 4.8.5 centos ... -
i386上的busybox
2016-04-26 22:51 1045环境:在64位机器上总莫名其妙问题,交叉编译也会有想不到的地方 ... -
qemu以64位和32位的方式跑busybox
2016-04-07 22:06 1625两种方式x86_64 和32位的i386方式 ------ ... -
neutron基础九(qemu nat网络)
2016-02-06 17:21 1644接上基础八,kvm透传nested忽略 1.在主机ce ... -
neutron基础七(qemu tap)
2016-02-02 17:02 1047使用qemu 建立个虚拟机 然后用tap设备, 根据基础六,t ... -
使用devstack安装magnum
2015-11-18 21:22 1445在redhat6.5上建立个centos7的虚拟机,使用cen ... -
使用jslinux的hda.bin制作rootfs
2015-09-01 18:13 923把jslinux的硬盘下载下来 host=http: ...
相关推荐
2. 网络通信:为了实现对虚拟机的控制,开发者可以利用易语言的网络编程功能,如TCP/IP协议,建立与QEMU的通信管道,发送控制指令。 3. 数据交换:通过管道或套接字实现主机与虚拟机之间的数据传输,例如传递文件、...
本文主要分享了两个重要的虚拟化平台——Qemu-kvm和VMware ESXi的虚拟机逃逸实例,这对于理解虚拟化安全以及如何防范高级威胁至关重要。虚拟机逃逸是指攻击者在获得虚拟机内部的权限后,进一步突破虚拟化层的限制,...
windows x86_64系统上建立arm(aarch64)centos虚拟机。 需要准备以下安装包和工具包: qemu-w64-setup-20210505.exe(虚拟机) QEMU_EFI.fd(引导工具,bios) tap-windows-9.21.2.exe (用于虚拟机与宿主机建立通信...
QEMU是一种流行的开源机器模拟器和虚拟化器,它支持多种虚拟化技术,包括KVM、Xen...通过本文的介绍,希望读者能够掌握QEMU的两种基本网络配置方式,并根据自己的需求进行适当的配置,以达到最佳的虚拟机网络使用体验。
### AIX虚拟机安装方法详解 #### 一、概述 AIX虚拟机的安装方法是在Linux系统中模拟AIX环境,使用户能够在不熟悉AIX系统的情况下进行学习和操作,从而减少对实际服务器的直接干预风险。本文档将详细介绍如何在Dell...
- **函数`kvm_create()`**:创建KVM虚拟机实例,通过`ioctl(KVM_CREATE_VM)`在内核中建立虚拟机数据结构。 - **函数`kvm_create_vcpu()`**:创建vCPU,通过`ioctl(KVM_CREATE_VCPU)`创建vCPU的内核数据结构。 - **...
- 使用管理员权限打开命令提示符,进入qcow2镜像文件所在目录,运行QEMU命令启动虚拟机。 实验流程涉及的步骤包括QEMU的下载、安装、环境变量配置,以及openEuler操作系统的下载、解压、虚拟机创建等。通过这些...
qemu可以在安卓手机上建立虚拟机,但是性能就呵呵可,没什么卵用,但是可以用来装13
在IT行业中,虚拟化技术是不可或缺的一部分,它允许我们在一台物理机器上运行多个独立的操作系统实例。本话题将深入探讨如何在CentOS环境下创建一个...希望以上信息能帮助你成功地在CentOS上建立OpenSUSE虚拟机。
可以使用以下命令建立虚拟机磁盘镜像文件: `qemu-img create -f qcow2 test.qcow2 20G` `qemu-img create -f raw test.raw 20G` 2. 建立虚拟机示例 可以使用以下命令建立虚拟机示例: `virt-install --name ...
安装QEMU,了解QEMU对multiboot的 支持情况 可以使用其他虚拟机或模拟器 遵守multiboot协议,写multiboot header 直接在VGA的显存中写“helloworld” 使用串口输出“HELLOWORLD” 了解并掌握必要的汇编 了解Makefile...
在IT行业中,虚拟化技术是不可或缺的一部分,尤其在服务器管理和开发测试环境中,Linux虚拟机的安装扮演着重要的角色。本文将详细阐述如何安装Linux虚拟机,重点围绕“源码”和“工具”这两个标签展开。 首先,让...
QEMU是一个强大的虚拟机,能模拟多种处理器架构,使得我们能够在本地环境中运行不同版本的Linux系统。在QEMU中启动自编译内核,需要指定内核映像和文件系统,这样就可以观察和测试内核的行为,这对于调试和安全分析...
3. **网络套接字**:通过TCP/IP或其他网络协议,虚拟机和管理域可以直接建立连接进行数据交换。这种方法灵活,但可能涉及网络安全和性能问题。 4. **共享内存**:在某些高性能场景下,共享内存可提供低延迟通信。...
然后在本地运行VNC客户端,如RealVNC或TightVNC,输入KVM主机的IP地址和端口号(如`192.168.1.100:5900`),即可建立连接。 需要注意的是,VNC虽然方便,但其通信过程未加密,可能会暴露敏感信息。因此,在生产环境...
KVM的基本结构包含两大部分:KVM驱动和QEMU。KVM驱动作为Linux内核的一部分,负责虚拟机的管理,包括创建虚拟机、分配虚拟内存、管理虚拟CPU的寄存器和运行虚拟CPU。QEMU则扮演着模拟PC硬件的角色,处理I/O设备模型...
QEMU是一款强大的虚拟机软件,可以模拟多种CPU架构,并支持在用户模式下运行目标操作系统,这对于调试内核非常方便。要启动QEMU,你可能需要使用类似以下的命令: ```bash qemu-system-x86_64 -kernel vmlinuz-...
4. **建立虚拟机** - 分配硬盘空间:使用`qemu-img`命令创建虚拟磁盘。 ```bash qemu-img create -f qcow2 -o preallocation=metadata /home/kvm/centos65-x64-mysql.qcow2 200G ``` - 配置网络连接:默认情况...
- 拖拽四个QEMU虚拟机到工作区,并命名为QEMU1至QEMU4。 - 使用FastEthernet连接线将这四个虚拟机分别连接到交换机的端口1至4。 - 启动所有QEMU虚拟机。 3. **配置IP地址** - 在QEMU1和QEMU2上配置IP地址为192....
亲切的问候,雅各布介绍packer-qemu-templates提供了Packer模板,可用于无人参与地以qcow2格式构建相关的虚拟机映像,以供KVM使用。 此外,通过将所有与Vagrant一起使用的模板配置为允许Packer通过libvirt后...