Qemu源代码中有一个翻译块的定义(cpu-exec.c)
第127行说
static TranslationBlock*tb_find_slow(target_ulong pc,target_ulong cs_base,uint64_t flags)
这是什么意思?
我写了一个小的16位汇编程序,它在一些内存位置写入了一些值.有没有办法可以在Linux上以32位保护模式测试它?
我下载了Qemu 1.5.当我即将配置时,我收到了这个错误:ERROR:编译QEMU需要glib-2.12
尝试后我在命令提示符下写了这个: sudo apt-get install glib2*
它开始下载很多东西,我看到了对mono和Microsoft的引用.
最后我可以做./configure和make.
但我认为qemu比VirtualBox和其他人更少臃肿.qemu使用单声道吗?
我发现glib是用C语言制作的.所以,对我而言,我看到那些单声道引用很奇怪.我认为.NET是一种很棒的技术,在某些情况下它很有用,但如果我使用的是Lubuntu和Linux,我想要远离单声道,.NET和微软.我只想用qemu.
我有一个运行kvm/qemu的Windows VM正在经历时间漂移.Windows guest虚拟机的最佳libvirt设置是什么?
目前我正在使用它,但它没有帮助:
<clock offset='localtime'>
<timer name='rtc' tickpolicy='catchup' track='guest'>
<catchup threshold='123' slew='120' limit='10000'/>
</timer>
</clock>
Run Code Online (Sandbox Code Playgroud) 在查看QEMU的源包时,我在exec.c文件中找到:
struct PhysPageEntry {
/* How many bits skip to next level (in units of L2_SIZE). 0 for a leaf. */
uint32_t skip : 6;
/* index into phys_sections (!skip) or phys_map_nodes (skip) */
uint32_t ptr : 26;
};
Run Code Online (Sandbox Code Playgroud)
我想知道:运算符意味着什么.我在C的语法定义列表中找不到它.
我正在学习操作系统制作的基础知识.我已经制作了一个兼容多引导头的.asm文件和一个.c文件..asm文件中的代码调用.c文件的主函数.
问题是QEMU无法从编译和链接.asm和.c文件后生成的文件启动.
它只是说它找不到可启动的设备.
虽然,我能够从一个简单的.asm文件启动,如: -
mov ax, 0x0e
mov al, 'H'
int 10h
times 510 - ($ - $$) db 0
jmp $
dw 0xaa55
Run Code Online (Sandbox Code Playgroud)
我还有什么需要做的吗?
我一直在尝试让虚拟机在centos上使用cfg文件但不幸的是,我收到的错误是ks.cfg文件不存在.
以下是我运行以启用VM的命令.
virt-install --name FedoraTest --ram 1024 --disk pool=default,size=10 --location ~/Desktop/CentosOS --initrd-inject ks.cfg --extra-args "ks=file:~/Desktop/ks.cfg"
Run Code Online (Sandbox Code Playgroud)
我是VM设置的新手,我不确定我是否做得对.
任何有关如何解决这个问题的建议将不胜感激.
另外,initrd-inject做了什么?是否可以将上述命令保存到文件中并运行该文件?
将我的KVM更新到更新版本后,我无法再安装Windows7.
以下是安装命令:
virt-install --name win7 --memory 8192 --vcpu sockets=1,cores=8,threads=1 \
--cdrom=/usr/local/kvm/iso/win7.iso \
--disk path=/usr/local/kvm/images/win7.img,size=100,bus=sata \
--network bridge=br0,model=virtio \
--os-type windows --os-variant win7 \
--noautoconsole --accelerate --hvm \
--graphics vnc,password=123456,listen=0.0.0.0,port=20001 \
--cpu host-passthrough --arch x86_64
Run Code Online (Sandbox Code Playgroud)
在我两天前更新我的服务器之前,我确信它早先使用相同的命令工作.
它被困在这里: 点击这里查看图片
一些版本信息:
centos7 3.10.0-327.18.2.el7.x86_64
libvirt 1.2.17
Run Code Online (Sandbox Code Playgroud)
我试图安装windows10,它正常工作.
有谁知道这个问题?
我刚刚发现,如果使用来运行QEMU -monitor telnet::45454,server,nowait -nographic,那么Ctrl-C会杀死QEMU VM而不是在来宾上生成SIGINT:使用-nographic运行qemu时如何将Ctrl-C传递给来宾?| Unix和Linux堆栈交换
但是,我不想删除-monitor它,因为它使监视命令自动化非常方便,例如,它允许我创建一个执行以下操作的帮助程序脚本:
echo 'savevm my_snap_id' | telnet localhost 45454
Run Code Online (Sandbox Code Playgroud)
有没有办法让我Ctrl-C和我保持-monitor合作-nographic?
完整的QEMU命令:
qemu-system-x86_64 -append 'root=/dev/vda console=ttyS0' -kernel 'bzImage' -drive file='rootfs.ext2.qcow2,if=virtio,format=qcow2' -nographic -monitor telnet::45454,server,nowait
Run Code Online (Sandbox Code Playgroud)
在QEMU 2.10.1,Ubuntu 17.10上,完整的QEMU命令:
./x86_64-softmmu/qemu-system-x86_64 \
-append "root=/dev/sda console=ttyS0 nokaslr printk.time=y" \
-drive file="${dir}/out/x86_64/buildroot/images/rootfs.ext2.qcow2,format=qcow2" \
-kernel "${dir}/out/x86_64/buildroot/images/bzImage" \
-nographic \
Run Code Online (Sandbox Code Playgroud)
如果我添加:
-chardev stdio,id=s1,signal=off \
-serial none -device isa-serial,chardev=s1
Run Code Online (Sandbox Code Playgroud)
然后Ctrl+C根据需要开始工作,但Ctrl+A X不能退出QEMU,这有时很烦人:我可以使用telnetto quit,但是它需要更多的键入/自动化操作。
http://lists.nongnu.org/archive/html/qemu-discuss/2018-04/msg00006.html
我想用命令运行qemu
qemu-system-x86_64 \
-drive file=zso_cow.img,if=virtio \
-enable-kvm \
-smp 2 \
-net nic,model=virtio -net user \
-m 1G -balloon virtio \
-fsdev local,id=hshare,path=hshare/,security_model=none -device virtio-9p-pci,fsdev=hshare,mount_tag=hshare \
-chardev stdio,id=cons,signal=off -device virtio-serial-pci -device virtconsole,chardev=cons \
-device harddoom
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:qemu-system-x86_64:-device virtio-9p-pci,fsdev = hshare,mount_tag = hshare:'virtio-9p-pci'不是有效的设备型号名称
qemu是使用配置选项从分支harddoom上的源代码编译的:
--target-list=i386-softmmu,x86_64-softmmu --python=$(which python2)
--audio-drv-list=alsa,pa
Run Code Online (Sandbox Code Playgroud)
我没有从ubuntu仓库安装qemu的问题,但是我需要使用从源代码编译的版本。
我当然可以在不使用-device virtio-9p-pci选项的情况下运行,但是我没有共享的hshare文件夹
使用以下命令创建zso.img:
qemu-img create -f qcow2 -o backing_file=zso.img zso_cow.img
Run Code Online (Sandbox Code Playgroud)
其中zso.img是Debian映像