VirtualBox Headless后台运行Linux
前言
如何在Windows上优雅的使用Linux,一直是一个困惑我的问题。WSL虽好,但是没法在Linux上安装docker;WSL2虽然可以安装docker了,但是这个系统和主机通信又是一个大麻烦,就连最基本的安装软件都要每次开机修改hostname(虽然有能修改后不复原的办法,但我没实验成功);使用虚拟机软件,又会占用太多的硬件资源,影响主机性能。前段时间偶然看到B站一个Up主提到使用virtualbox的headless无界面启动。遂研究了一下,但是网络上的资料大都太散太少,没有完整的介绍该方法。本文详细介绍在Windows上安装使用一个最优雅的Linux系统。
准备
虚拟机软件:Oracle VM VirtualBox
Linux镜像:本文使用 Ubuntu20.04
一个远程连接软件:可以使用Windows自带的powershell或者其他软件,本文使用Termius
前提步骤
首先需要使用VirtualBox安装好虚拟机;创建虚拟机的时候,推荐使用一个较为简单的名字作为虚拟机的名字,后面命令要使用;安装前的设置注意一点,设置密码的时候需要选择不使用密码登陆。如果该处没设置,安装好后进入设置用户中关闭该项,原因是如果打开该项,后台无法完全启动系统,最终系统会停留在用户登陆界面。
后台启动方法
- 首先进入图形化的Linux虚拟机中,更新源,使用
sudo apt install openssh-server
安装ssh的服务端。 - 检查开机是否需要密码。需要取消掉开机的密码。
- 关闭虚拟机,主机使用命令行进入VirutalBox的安装位置,默认情况在
C:\Program Files\Oracle\VirtualBox\
下,此处推荐使用cmd进入该位置,cmd可以直接调用文件名字作为命令,Powershell需要使用路径加文件名才能执行命令 - 执行
vboxheadless --startvm|-s 虚拟机名称|uuid vrde=off
即可以桥接网络的模式无界面打开 - 执行
vboxmanage controlvm 虚拟机名称 acpipowerbutton
即可关闭虚拟机
其他命令
VBoxManage list vms
- 查看有哪些虚拟机
VBoxManage list vms --long
- 查看虚拟机的详细内容
VBoxManage list runningvms
- 查看运行中的虚拟机
VBoxManage startvm <vm_name> -type headless
- 无界面运行虚拟机,与vboxheadless的区别就是这个命令是完全后台运行。注意:使用该命令需要将虚拟机手动设置为桥接网络。
vboxheadless --startvm|-s 虚拟机名称|uuid vrde=off
- 无界面运行虚拟机,在命令行卡住,停止命令行就停止了虚拟机
VBoxManage controlvm <vm_name> acpipowerbutton
- 正常关闭虚拟机
VBoxManage controlvm <vm_name> poweroff
- 强制关闭虚拟机
VBoxManage guestproperty enumerate <vm_name>
- 查看虚拟机配置信息,可以通过| findstr IP
查询到虚拟机的ip
参考批处理脚本
1 | @echo off |