无头创建 Ubuntu Server VM

无头创建 Ubuntu Server VM

在 Ubuntu 桌面主机上,如何使用终端/完全无头安装和运行 Ubuntu Server guest 虚拟机vboxmanage? (这意味着根本没有 GUI,甚至对于初始 Ubuntu 服务器设置也是如此)

我的目标是仅使用文本用户界面(TUI)来宾(运行命令,就像apt-get update在来宾中一样),并使用共享文件夹来托管(将文件从来宾传输到主机)。

这是我到目前为止创建虚拟机 (VM) 并启动它的脚本:

vm_iso="ubuntu-server-20.04.iso"
vm_name="UbuntuServerTest"
vm_vdi="$HOME/virtualbox/${vm_name}.vdi"

curl -o "$vm_iso" "https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso"

vboxmanage createvm \
    --ostype Ubuntu_64 \
    --basefolder "$HOME/virtualbox" \
    --register \
    --name "$vm_name"

# VBoxManage showvminfo "$vm_name"

vboxmanage modifyvm "$vm_name" \
    --memory 1024 \
    --nic1 nat \
    --vrde on --vrdeport 33890

vboxmanage createhd \
    --filename "$vm_vdi" \
    --format VDI --size 10240

vboxmanage storagectl "$vm_name" \
    --name "SATA" \
    --add sata

vboxmanage storageattach "$vm_name" \
    --storagectl SATA --port 0 --type hdd \
    --medium "$vm_vdi"

vboxmanage storageattach "$vm_name" \
    --storagectl SATA --port 15 --type dvddrive \
    --medium "$vm_iso"

vboxmanage startvm "$vm_name" --type headless

# vboxmanage sharedfolder add "$vm_name" --name shared --hostpath "shared_path" --automount

# vboxmanage controlvm "$vm_name" pause --type headless
# vboxmanage controlvm "$vm_name" resume --type headless
# vboxmanage controlvm "$vm_name" poweroff --type headless

虽然脚本使用 VirtualBox,但我对 QEMU 或其他软件没问题(只要我可以无头运行任意命令,无头地将文件从客户机传输到主机,并且内核是虚拟化的)。

答案1

在 QEMU 中:

除了基于纯文本的方法之外,另一种可能性是使用 VNC 服务器启动 QEMU。这是通过-vncQEMU 的命令行选项完成的。然后,您可以通过 ssh 代理或其他方式从另一台计算机连接到该 VNC 实例,并获得可以安装任何支持的操作系统的 GUI。

如果您只想使用文本控制台,那么选择将更加有限。不管你做什么,Ubuntu 安装 ISO 似乎都会尝试使用图形模式。不过,已弃用的 Ubuntu mini.iso 可能可以工作。 Debian 确实可以工作,我将展示如何使用它。

这假设您有可用的 Debian ISO 安装程序映像这里

# create empty virtual hard drive
qemu-img create -f qcow2 debian.qcow2 16G
# start VM
qemu-system-x86_64 -machine accel=kvm -m 1G -nographic -hda debian.qcow2 -boot d -cdrom debian-11.2.0-amd64-netinst.iso

作为很快当它开始时,快速按ESC(或者 CTRL+C也有效),您应该会收到boot:提示。然后键入install console=ttyS0或使用附加 console=ttyS0 的其他引导选项之一(按可tab列出)。

根据您所需的设置修改 qemu 参数,包括磁盘配置/网络/等。

顺便说一句,您可以以类似的方式安装 OpenBSD(其他 BSD?)。在boot>提示符处键入set tty com0,然后按Return两次。


笔记:

  • -machine accel=kvm如果不起作用,您可能需要将其删除
  • 它是ttyS0(字母“S”,而不是数字“5”)
  • 完成后install,用于CTRL+AX关闭
  • 关机后,无需安装程序即可正常运行:qemu-system-x86_64 -m 1G -nographic -hda debian.qcow2
  • 要将文件从访客传输到主机,请遵循https://unix.stackexchange.com/a/196074

相关内容