qemu启动vm后,如何host上使用ssh连接?
qemu启动vm后,如何从host ssh连接vm?
qemu启动参数
启动命令:
${cmd_qemu_system} --enable-kvm \
-machine type=q35,accel=kvm,kernel-irqchip=on -cpu host -smp 4 -m 16384 \
-serial mon:stdio -nographic -s \
-kernel $bzImage_name \
-device virtio-net-pci,netdev=unet,mac=52:54:00:f1:26:a6 \
-netdev user,id=unet,hostfwd=tcp::50959-:22 \
-initrd $rootfs_cpio_path \
-append "earlyprintk=ttyS0 console=ttyS0 debug" \
-hda $DISK_NAME
kenrel
linux 的.config 需要支持CONFIG_VIRTIO_NET=y:
[root@xxx /data/sandbox/open_linux/linux]
#cat .config | grep CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_NET=y
buildroot
实际上,我们知道,buildroot的目的就是要生成一个:rootfs.cpio.xz,然后,通过qemu命令启动一个vm的时候,执行参数-initrd 指定rootfs.cpio.xz 路径,就可以启动一个vm;
ssh:
我们需要预先在 buildroot 下载好 sshd, 这里,你会执行 make menuconfig 来给这个buildroot 指定sshd包要下载,之后,就会生成一个最新的.config文件,这个.config文件,应该包含:
[root@xxx /data/sandbox/open_linux/buildroot]
#cat .config |grep BR2_PACKAGE_OPENSSH
BR2_PACKAGE_OPENSSH=y
在buildroot中 将sshd配置文件修改正确,然后重新编译buildroot生成最新的:rootfs.cpio.xz
#vi ./output/target/etc/ssh/sshd_config
PermitRootLogin yes
PermitEmptyPasswords yes #这是是允许登录为空密码
通过这个rootfs.cpio.xz, 启动的vm 的sshd 配置:
# vi /etc/ssh/sshd_config
PermitRootLogin yes
PermitEmptyPasswords yes #这是是允许登录为空密码
network:
需要,现在buildroot中,增加配置eth0 :
#cd buildroot/
#vim output/target/etc/network/interfaces
auto eth0
iface eth0 inet static
address 10.0.2.15
netmask 255.0.0.0
或者,进入vm后:
ifconfig eth0 10.0.2.15
ifconfig eth0 up
如何使用虚拟bios?
git clone https://github.com/coreboot/seabios seabios
make menuconfig
make clean && make -j 8
在qemu启动中,增加bios:
In the command to start guest, you can specify the BIOS:
-bios seabios/out/bios.bin
start_vm(){
DISK_NAME="${muahao_tools_dir}/vm/disk02.raw"
if [[ ! -e $DISK_NAME ]];then
creat_image_01 "$DISK_NAME"
fi
${cmd_qemu_system} --enable-kvm \
-machine type=q35,accel=kvm,kernel-irqchip=on -cpu host -smp 4 -m 16384 \
-serial mon:stdio -nographic -s \
-kernel $bzImage_name \
-device virtio-net-pci,netdev=unet,mac=52:54:00:f1:26:a6 \
-netdev user,id=unet,hostfwd=tcp::2222-:22 \
-initrd $rootfs_cpio_path \
-append "earlyprintk=ttyS0 console=ttyS0 debug" \
-hda $DISK_NAME\
-bios ./open_linux/seabios/out/bios.bin
}
A debug test:
#vim src/boot.c
static void
boot_rom(u32 vector)
{
printf("Booting from ROM...\n");
struct segoff_s so;
so.segoff = vector;
call_boot_entry(so, 0);
}
如何给vm增加虚拟盘?
首先,你需要在host上创建一个image,然后,在使用qemu启动vm的时候,给qemu一个参数,挂载上这个image,启动guest后,可以在guest上 使用这个虚拟的硬盘;
首先,在host上创建一个image:
#qemu-img create -f raw /data/sandbox/images/vm_guest.img 5G
qemu启动参数:
${cmd_qemu_system} --enable-kvm \
-machine type=q35,accel=kvm,kernel-irqchip=on -cpu host -smp 2 -m 4096 \
-serial mon:stdio -nographic -s \
-kernel $bzImage_name \
-device virtio-net-pci,netdev=unet,mac=52:54:00:f1:26:a6 \
-netdev user,id=unet,hostfwd=tcp::2222-:22 \
-initrd $rootfs_cpio_path \
-append "earlyprintk=ttyS0 console=ttyS0 debug" \
-drive file=/data/sandbox/images/vm_guest.img,if=none,format=raw,id=nvme0 \ //<<<<<===增加
-device nvme,drive=nvme0,serial=foo \ //<<<<<===增加
-hda $DISK_NAME \
-bios /data/sandbox/open_linux/seabios/out/bios.bin
注意: 在linux中.config 一定要配置了nvme的支持
#cat .config | grep NVME
qemu启动vm后,如何host上使用ssh连接?的更多相关文章
- Mac上使用ssh连接服务器title显示服务器的ip
Mac上使用ssh连接服务器title显示服务器的ip 使用Mac开发时,管理的服务器过多时,会搞混乱.可能有时啪啪啪一顿操作,最后发现操作错了机器. 解决方案 在远程服务器上,编辑vim /etc/ ...
- 批处理启动vm虚拟机服务 vm12启动无界面启动vm虚拟机系统 windows上如何操作服务 sc net启动关闭服务
windows(win10)批处理脚本 打开vm虚拟机的服务,并且开启无界面虚拟机 @echo off net start "vds" net start "VMAuth ...
- github上创建ssh连接多个账户
简单的说用两对ssh密钥来连接多个github账户,有的同学问:用一对连接多个账户行吗?答案是不行,因为密钥和你的账户邮箱关联了. 1.生成密钥. sshkey -t rsa -b 4096 -C & ...
- 在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问--解决办法
在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问的原因是阿里云平台为了安全设置了安全组策略,必须我们授权的端口,其他计算机才能通过http访问 解决办法:(这里以阿里轻量应用服务器为 ...
- 解决:阿里云ECS上启动tomcat后,第一次访问时间特别长
Re在ECS上启动tomcat后,第一次访问时间特别长 2017-04-25 10:16:04 INFO com.world.socket.ServerSocketListener 25- ...
- JavaWeb问题记录——在Windows上启动Tomcat后命令行窗口乱码
JavaWeb问题记录——在Windows上启动Tomcat后命令行窗口乱码 摘要:本文主要记录了在Windows上启动Tomcat后,命令行窗口出现乱码的问题及解决办法. 问题重现 在Windows ...
- sshd 启动后 出现:Could not load host key: /etc/ssh/ssh_host_rsa_key
今天在启动sshd时,出现了如下问题,导致客户端不能成功连接服务端,不能建立ssh连接: 有两个提示 Could not load host key: /etc/ssh/ssh_host_rsa_ke ...
- [原] KVM 虚拟化原理探究(2)— QEMU启动过程
KVM 虚拟化原理探究- QEMU启动过程 标签(空格分隔): KVM [TOC] 虚拟机启动过程 第一步,获取到kvm句柄 kvmfd = open("/dev/kvm", O_ ...
- CloudStack系统虚拟机启动但不在Host表中
有网友问到这个问题,CloudStack中,系统虚拟机正常启动,Running状态. 可是在host表中没有对应项,上传下载模板等功能也不正常. 原因:系统虚拟机启动之后,会通过管理网段主动连接man ...
随机推荐
- 并不对劲的bzoj1853:[SCOI2010]幸运数字
传送门-> 据说本题的正确读法是[shìng运数字]. 听上去本题很适合暴力,于是并不对劲的人就去写了.其实这题就是一个很普(有)通(趣)暴力+神奇的优化. 首先,会发现幸运数字很少,那么就先搜 ...
- 单纯形 BZOJ3112: [Zjoi2013]防守战线
题面自己上网查. 学了一下单纯形.当然 证明什么的 显然是没去学.不然估计就要残废了 上学期已经了解了 什么叫标准型. 听起来高大上 其实没什么 就是加入好多松弛变量+各种*(-1),使得最后成为一般 ...
- Create
BOOL Create(LPCTSTR lpszClassName,LPCTSTR lpszWindowName, DWORD dwStyle,const RECT& rect,CWnd* p ...
- win10系统安装loadrunner11提示“为了对电脑进行保护 已经阻止此应用”的解决方案
在执行loadrunner安装包中的setup.exe时会有如下提示: 解决方法:点击Win+R快捷键打开运行,输入“ gpedit.msc”按下回车键打开组策略编辑: 在左边选择[计算机配置]→[W ...
- bzoj 2750: [HAOI2012]Road【spfa+dfs】
枚举起点做spfa,然后一条边在最短路上的条件是dis[e[i].to]==dis[u]+e[i].va,所以每次spfa完之后,dfs出a[i]表示经过i点的最短路的起点数,b[i]表示经过i点的最 ...
- Word Cloud (词云) - Python
>>What's Word Cloud 词云 (Word Cloud)是对文本中出现频率较高的词语给予视觉化展示的图形, 是一种常见的文本挖掘的方法.目前已有多种数据分析工具支持这种图形, ...
- Ubuntu 18.04 LTS 系统设置打不开了
在更换软件源后,安装了vim 和chrome,chrome很顺利,但是安装vim的时候后就显示有问题了,有的依赖版本不对,嫌版本太高,卸载后再装可以. 安装了python和python2 依旧是有些依 ...
- 利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减 直至765398并保持此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动 ,当数码管上数减到停止时,实验板上流水灯出停止然后全部开始闪烁,3秒后(用 T0定时)流水灯全部关闭,数码管上显示出“HELLO”,到此保持住
#include <reg52.h> #include <intrins.h> #define uchar unsigned char #define uint unsigne ...
- Qt事件系统之三:键盘事件
QKeyEvent类用来描述一个键盘事件.当键盘按键被按下或者被释放时,键盘事件便会被发送给拥有键盘输人焦点的部件. QKeyEvent的key()函数可以获取具体的按键,对于Qt中给定的所有按键,可 ...
- 【洛谷4769】[NOI2018] 冒泡排序(动态规划_组合数学)
题目: 洛谷 4769 博客页面左下角的嘴嘴瓜封神之战中的题目 分析: 一个排列交换次数为 \(\frac{1}{2}\sum_{i=1}^{n}|i-p_i|\) 的充要条件是这个排列不存在长度为 ...