BPS*_*BPS 14 kvm virtualization qemu
我已经在 QEMU 上安装了 Ubuntu 16.04 Desktop,但是现在当我启动它时:
qemu-system-i386 -m 1024M -enable-kvm -drive file=./ubuntu-desktop.img,index=0,media=disk,format=raw
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?我怎样才能解决这个问题?
Cir*_*郝海东 19
运行 Ubuntu 18.04 设置
在 Ubuntu 18.10 主机中测试。
ubuntu-18.04.1-desktop-amd64.sh
#!/usr/bin/env bash
set -eux
# Parameters.
id=ubuntu-18.04.1-desktop-amd64
disk_img="${id}.img.qcow2"
disk_img_snapshot="${id}.snapshot.qcow2"
iso="${id}.iso"
# Get image.
if [ ! -f "$iso" ]; then
wget "http://releases.ubuntu.com/18.04/${iso}"
fi
# Go through installer manually.
if [ ! -f "$disk_img" ]; then
qemu-img create -f qcow2 "$disk_img" 1T
qemu-system-x86_64 \
-cdrom "$iso" \
-drive "file=${disk_img},format=qcow2" \
-enable-kvm \
-m 2G \
-smp 2 \
;
fi
# Create an image based on the original post-installation image
# so as to keep a pristine post-install image.
if [ ! -f "$disk_img_snapshot" ]; then
qemu-img \
create \
-b "$disk_img" \
-f qcow2 \
"$disk_img_snapshot" \
;
fi
# Run the copy of the installed image.
qemu-system-x86_64 \
-drive "file=${disk_img_snapshot},format=qcow2" \
-enable-kvm \
-m 2G \
-smp 2 \
-soundhw hda \
-vga virtio \
"$@" \
;
Run Code Online (Sandbox Code Playgroud)
此脚本将执行两次 QEMU 运行:
QEMU第一次出现:
安装程序如下所示:
安装完成后,脚本会自动将安装后磁盘快照生成到ubuntu-18.04-desktop-amd64.img.qcow2,并创建到 的差异副本ubuntu-18.04-desktop-amd64.snapshot.qcow2。
然后它运行ubuntu-18.04-desktop-amd64.snapshot.qcow2, 并在那里保存任何定期启动后的更改。
因此,下次您重新运行时,./ubuntu-18.04.1-desktop-amd64.sh只需从上次停止的地方重新开始。
如果您想从原始的手动安装后阶段开始在干净的环境中测试东西,您可以:
rm ubuntu-18.04-desktop-amd64.snapshot.qcow2
./ubuntu-18.04.1-desktop-amd64.sh
Run Code Online (Sandbox Code Playgroud)
快照将从全新安装开始重新生成。
快照仅存储原始图像之间的差异,因此不会占用大量磁盘空间。
默认情况下,此设置具有一个时髦的系统,可自动调整来宾分辨率以最适合 QEMU 窗口大小,如果您执行以下操作之一,您可以看到这一点:
Ctrl + Alt + F或 或启动 QEMU-full-screen笔记:
-vga virtio选项是能够获得更高的分辨率:https : //superuser.com/questions/132322/how-to-increase-the-visualized-screen-resolution-on-qemu-kvm/1331924#1331924
-soundhw hda启用声音。为什么 QEMU 在默认情况下不启用它击败了我。
进入 VM 后,减少 GRUB 菜单等待时间并显示一些引导消息以供下次引导:
printf 'GRUB_TIMEOUT=1\nGRUB_CMDLINE_LINUX_DEFAULT=""\n' | sudo tee -a /etc/default/grub
sudo update-grub
Run Code Online (Sandbox Code Playgroud)
TODO剪贴板共享
试过-spice port=5930,disable-ticketing+ remote-viewer spice://127.0.0.1:5930,并spice-vdagent预装在来宾上,但没有成功。
混乱的根本原因是 QEMU 开发人员似乎更专注于非交互式使用,而不是可靠地实现这样的事情,因此一劳永逸地杀死 VirtualBox:https : //bugs.launchpad.net/qemu/+bug/ 614958
TODO:主机 3D 加速
仍然使用 SPICE 和 QXL,glxgears提供 1k FPS,与常规 SDL 完全相同。但是在主机上__GL_SYNC_TO_VBLANK=0 vblank_mode=0 glxgears提供 20k FPS,所以我猜图形没有加速?
相关:https : //unix.stackexchange.com/questions/108122/installing-ubuntu-13-0-desktop-in-qemu
禁用网络(例如恶意软件分析)
通过:-nic none在 CLI 上。
提到:https : //wiki.qemu.org/Documentation/Networking#How_to_disable_network_completely
与来宾共享主机目录
添加到 QEMU CLI:
-virtfs local,path=/path/to/share,mount_tag=host0,security_model=mapped,id=host0
Run Code Online (Sandbox Code Playgroud)
并安装在来宾上:
sudo mkdir /mnt/9p
mount -t 9p -o trans=virtio,version=9p2000.L host0 /mnt/9p
Run Code Online (Sandbox Code Playgroud)
更多详细信息,请访问:https : //superuser.com/questions/628169/how-to-share-a-directory-with-the-host-without-networking-in-qemu/1301973#1301973这也显示了相应的 fstab 条目.
https://serverfault.com/questions/516097/how-to-efficiently-share-hosts-folder-with-kvm-guests声称并不是超快。
更专门的问题:如何使用 virt-manager 在 KVM 主机和来宾之间共享文件夹?
本节在 Ubuntu 20.04 主机上进行了测试。
预构建的可启动映像
如果您想要一个无需在安装程序上进行任何交互即可启动的映像,请参阅:是否有任何预先构建的 QEMU Ubuntu 映像(32 位)在线?
服务器
与桌面提到的完全相同的过程也适用于服务器映像。
我只是无法进行初始安装以-nogrphic完全摆脱 GUI:如何在没有 GUI 的情况下在 QEMU -nographic 上启动和安装 Ubuntu 服务器映像?
但是在初始启动后,在编辑 GRUB 配置后,我实现了:如何在启动时使用串行控制台进入 GRUB 菜单?
但是,在大多数情况下,您可能只想使用云映像而不是带有仿真的服务器映像,因为它没有交互式安装程序,并且默认情况下可从 CLI 使用。
在 Ubuntu 18.04 主机、QEMU 1:2.11+dfsg-1ubuntu7.3、nvidia-384版本390.48-0ubuntu3、Lenovo ThinkPad P51、NVIDIA Corporation GM107GLM [Quadro M1200 Mobile]GPU 上测试。
| 归档时间: |
|
| 查看次数: |
22149 次 |
| 最近记录: |