vbox vdi磁盘注册_第16篇: Linux中的vbox虚拟化

前言

Linux虚拟化中我们两个非常强大的虚拟化平台,这两大平台是免费的

  • VirtualBox:配置操作简单,轻量级,友好的GUI界面,丰富的技术文档支持。
  • KVM:配置复杂,技术文档资源较VirtualBox少。

cc6ee3c3aa895d2c1c916b1974a42094.png

本文VirtualBox用于生产环境和开发测试,一直受到笔者的青睐,其实Vbox更复杂的应用都隐藏在其强大vboxmanage命令行工具中。我自己管理的十多个中小型的虚拟应用都部署在一台性能较为强大的IBM服务器上。操作系统是CentOS 7,我们经常需要对操作系统更新完后,都需要手动地将每台虚拟机启动一篇,对于懒人来说是一个非常痛苦的事情,最大化地追求自动化管理方式,我们本文会用到Vbox的虚拟机系统引导自启动服务

在本指南中,我们将学习如何在Linux上的系统启动时自动启动VirtualBox VM。 本演示使用CentOS 7作为承载多个VirtualBox 6.0虚拟机的Linux计算机。

VirtualBox带有一项名为vboxautostart-service的服务,可让您轻松地在系统重新引导期间自动启动虚拟机。

为了将VirtualBox VM配置为在Linux上的系统引导时启动,您需要激活自动启动服务。 可以通过在/ etc / default / virtualbox中设置两个变量来激活自动启动服务。

  • VBOXAUTOSTART_DB:定义自动启动数据库目录的绝对路径,通常是/etc/vbox。
  • VBOXAUTOSTART_CONFIG:定义虚拟机自动启动配置的路径。

这些变量可以定义为:

VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_CONFIG=/etc/vbox/autostartvm.cfg

要将这些变量放在/etc/default/virtualbox中,请运行以下命令;

echo -e "VBOXAUTOSTART_DB=/etc/vboxnVBOXAUTOSTART_CONFIG=/etc/vbox/autostartvm.cfg" | 
 sudo tee /etc/default/virtualbox

定义虚拟机自动启动配置设置。 自动启动配置文件包含用于控制如何自动启动虚拟机的选项。

vim /etc/vbox/autostartvm.cfg

配置文件

default_policy = deny

itdog = {
    allow = true
    startup_delay = 10
}
  • default_policy :定义默认情况下是允许还是拒绝虚拟机自动启动。 在上面的示例中,我们拒绝任何人自动启动VM,并明确允许一个用户itdog。
  • 用户名(itdog):使用默认的拒绝策略,您可以定义允许自动启动虚拟机的特定用户(allow = true)。 您还可以定义延迟VM启动的时间。 本演示中使用10秒。

设置数据库目录的所有权

数据库目录/etc/vbox应该是用户可写的,用于自动启动VM。为了简化操作,您可以简单地将用户添加到vboxusers组,并将数据库目录的组所有权设置为vboxusers组。 之后设置组的写权限。 在这种情况下,将使用itdog用户自动启动虚拟机。

sudo usermod -aG vboxusers itdog
sudo chgrp vboxusers /etc/vbox

在自动启动数据库目录上分配组写权限。

sudo chmod g+w /etc/vbox

为了防止目录被所有者或root用户以外的其他用户修改或删除,请设置sticky位。

sudo chmod +t /etc/vbox

启用虚拟机自动启动

作为用户,您可以为单个计算机启用自动启动。 这要求您首先定义数据库目录的路径。

VBoxManage setproperty autostartdbpath /etc/vbox/

完成后,您现在可以将虚拟机设置为在系统引导时自动启动。在此之前,我们需要知道要自动启动的虚拟机的名称。在虚拟机图形界面的设定界面可以查看得到,如下图所示

18f6ded914ab3949e1d6a3fec638fc11.png

本示例的虚拟机名称是windows7,然后使用下面命令

vboxmanage modifyvm {43d98d04-370f-4fbe-94e8-cd42368da135} --autostart-enabled on

其中windows7是UUID或您的虚拟机名称。

重新启动vboxautostart-service

现在完成配置。 要生效设置,您需要重新启动vboxautostart-service。

sudo systemctl restart vboxautostart-service

测试虚拟机自动启动

要测试您的虚拟机是否可以在系统启动时自动启动,请重新启动系统并进行检查。 系统启动时,您的VM现在应该正在运行。我们可以使用top命令查看到系统引动完成后会加载一个VBoxHeadless的进程。这个是Vbox虚拟机的无GUI的轻量级虚拟机进程。

ac523e33d8e276db40c989ef600a734c.png

VirtualBox的一个非常值得赞赏的功能是可以在没有GUI的无头环境中使用。如果在Linux服务器中用命令行管理Vbox虚拟机,需要认识如下vbox的命令行。

1.创建虚拟机

此命令将当前目录/fs设定为虚拟机文件的物理存放位置:

vboxmanage createvm --name "Win10" --ostype "Windows 10 (64-bit)" --register --basefolder /fs

59d8931b7e2f69227a14938bf6328a06.png

查看ostyles

vboxmanage list ostypes

66ceb6140e9f56bf54ec3415d61da2b6.png

如果需要比较精确地查找需要虚拟机的操作系统类型,可以结合管道和grep指令,例如:

vboxmanage list ostypes | grep Windows

删除虚拟机

vboxmanage unregistervm --delete "Win10"

c7f75788b567e009ab7a5afaedc3f708.png

2.设置内存和网络

在此示例中:4Gb RAM和1个位于NAT后的网卡。

vboxmanage modifyvm "Win10" --ioapic on                     
vboxmanage modifyvm "Win10" --memory 4096 --vram 128       
vboxmanage modifyvm "Win10" --nic1 nat

3.创建磁盘并连接CD ISO

创建虚拟硬盘

vboxmanage createhd --filename "./Win10/win10_disk.vdi" 
  --size 80000 
  --format VDI

创建硬盘控制器

vboxmanage storagectl Win10 
  --name "SATA Controller" 
  --add sata 
  --controller IntelAhci

硬盘控制器附加虚拟硬盘

vboxmanage storageattach Win10 
  --storagectl "SATA Controller" 
  --port 0 --device 0 --type hdd 
  --medium  fs/Win10/win10_disk.vdi

创建IDE控制器

vboxmanage storagectl Win10 
   --name "IDE Controller" 
   --add ide 
   --controller PIIX4

将安装镜像附加到光驱控制器

vboxmanage storageattach Win10 
   --storagectl "IDE Controller" 
   --port 1 
   --device 0 
   --type dvddrive 
   --medium /kvm/iso/Win10_1909_English_x64.iso

设置启动顺序

vboxmanage modifyvm Win10 
  --boot1 dvd 
  --boot2 disk 
  --boot3 none 
  --boot4 none

4.设置RDP访问权限并启动VM

在端口10001上启用了远程桌面(用于在无头环境中进行管理)。

VBoxManage modifyvm Win10 --vrde on                  
VBoxManage modifyvm Win10 --vrdemulticon on --vrdeport 10001

5.关闭虚拟机

vboxmanage controlvm Ubuntu poweroff soft

6.查看已注册的VM实例

vboxmanage list vms

81ab3fc6c1ef75d3df7a451957af9023.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值