记一次在linux系统fedora33中使用已有VirtualBox虚拟机的经历

本次是将一个已经在windows环境下,可以正常使用的VirtualBox虚拟机放到fedora33的VirtualBox中运行。

下面开始干:

将原在windows中的VirtualBox虚拟机注册到VirtualBox环境中

注册成功后,查看VirtualBox环境中的虚拟机

[root@localhost ~]# VBoxManage list vms
"centos-7-20210521" {b09f4765-c719-4fe6-98bb-061a1e21c731}

启动虚拟机

[root@localhost ~]# VBoxManage startvm centos-7-20210521
Waiting for VM "centos-7-20210521" to power on...
VBoxManage: error: The virtual machine 'centos-7-20210521' has terminated unexpectedly during startup because of signal 6
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MachineWrap, interface IMachine

经过一番百度后,确定是需要无界面启动虚拟机

[root@localhost ~]# VBoxManage startvm centos-7-20210521 --type headless
Waiting for VM "centos-7-20210521" to power on...
VBoxManage: error: Could not open the medium '/root/VirtualBox VMs/centos-7/centos-7-20210521/D:/ssd/VirtualBox VMs/centos-7/centos-7.vdi'.
VBoxManage: error: VD: error VERR_FILE_NOT_FOUND opening image file '/root/VirtualBox VMs/centos-7/centos-7-20210521/D:/ssd/VirtualBox VMs/centos-7/centos-7.vdi' (VERR_FILE_NOT_FOUND)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MediumWrap, interface IMedium

经过对以上报错信息进行分析后,发现虚拟磁盘路径不对,又是一番百度后,决定先看下硬盘列表

[root@localhost ~]# VBoxManage list hdds
UUID:           239206ae-49a3-4ed6-abfd-11b65b068b60
Parent UUID:    base
State:          inaccessible
Type:           normal (base)
Location:       /root/VirtualBox VMs/centos-7/centos-7-20210521/D:/ssd/VirtualBox VMs/centos-7/centos-7.vdi
Storage format: VDI
Capacity:       0 MBytes
Encryption:     disabled

通过对以上信息分析发现VirtualBox环境中虚拟磁盘路径就有问题,需要重新关联,又是一番百度,需要先把虚拟磁盘先解除关联,命令如下:

[root@localhost ~]# VBoxManage storageattach centos-7-20210521 --storagectl SATA --port 0 --device 0 --type hdd --medium none

好了解除关联后,还需要重新关联上,命令如下:

[root@localhost ~]# VBoxManage storageattach centos-7-20210521 --storagectl SATA --port 0 --device 0 --type hdd --medium "/root/VirtualBox VMs/centos-7/centos-7.vdi"
VBoxManage: error: Cannot register the hard disk '/root/VirtualBox VMs/centos-7/centos-7.vdi' {239206ae-49a3-4ed6-abfd-11b65b068b60} because a hard disk '/root/VirtualBox VMs/centos-7/centos-7-20210521/D:/ssd/VirtualBox VMs/centos-7/centos-7.vdi' with UUID {239206ae-49a3-4ed6-abfd-11b65b068b60} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBoxWrap, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 187 of file VBoxManageDisk.cpp
VBoxManage: error: Invalid UUID or filename "/root/VirtualBox VMs/centos-7/centos-7.vdi"

也关联不成功,是什么问题呢,又一番百度后,并分析后,是虚拟磁盘是UUID已经在VirtualBox环境中存在 ,需要重新生成虚拟 磁盘的UUID,命令如下 :

[root@localhost ~]# vboxmanage internalcommands sethduuid  "/root/VirtualBox VMs/centos-7/centos-7.vdi"
UUID changed to: 1a1982b2-ffc3-465f-96fe-350f7d54fd4b

好了现在可以重新对虚拟磁盘进行关联了,命令和上面一样,命令执行情况如下 :

[root@localhost ~]# VBoxManage storageattach centos-7-20210521 --storagectl SATA --port 0 --device 0 --type hdd --medium "/root/VirtualBox VMs/centos-7/centos-7.vdi"
[root@localhost ~]# 

好了,现在应该可以启动了吧,执行启动虚拟机的命令如下:

[root@localhost ~]# VBoxManage startvm centos-7-20210521 --type headless
Waiting for VM "centos-7-20210521" to power on...
VBoxManage: error: Nonexistent host networking interface, name 'Realtek 8822BE Wireless LAN 802.11ac PCI-E NIC' (VERR_INTERNAL_ERROR)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component ConsoleWrap, interface IConsole

看来是网络设置的问题,又一次的一番百度,分析是需要重新设置网络名,先运行命令如下:

[root@localhost ~]# VBoxManage showvminfo centos-7-20210521 --details --machinereadable

系统输出如下信息: 

name="centos-7-20210521"
groups="/"
ostype="Red Hat (64-bit)"
UUID="b09f4765-c719-4fe6-98bb-061a1e21c731"
CfgFile="/root/VirtualBox VMs/centos-7/centos-7-20210521/centos-7-20210521.vbox"
SnapFldr="/root/VirtualBox VMs/centos-7/centos-7-20210521/Snapshots"
LogFldr="/root/VirtualBox VMs/centos-7/centos-7-20210521/Logs"
hardwareuuid="b09f4765-c719-4fe6-98bb-061a1e21c731"
memory=4096
pagefusion="off"
vram=16
cpuexecutioncap=100
hpet="off"
cpu-profile="host"
chipset="piix3"
firmware="BIOS"
cpus=1
pae="on"
longmode="on"
triplefaultreset="off"
apic="on"
x2apic="on"
nested-hw-virt="off"
cpuid-portability-level=0
bootmenu="messageandmenu"
boot1="floppy"
boot2="dvd"
boot3="disk"
boot4="none"
acpi="on"
ioapic="on"
biosapic="apic"
biossystemtimeoffset=0
rtcuseutc="on"
hwvirtex="on"
nestedpaging="on"
largepages="on"
vtxvpid="on"
vtxux="on"
paravirtprovider="default"
effparavirtprovider="kvm"
VMState="running"
VMStateChangeTime="2021-06-09T07:07:36.870000000"
graphicscontroller="vmsvga"
monitorcount=1
accelerate3d="off"
accelerate2dvideo="off"
teleporterenabled="off"
teleporterport=0
teleporteraddress=""
teleporterpassword=""
tracing-enabled="off"
tracing-allow-vm-access="off"
tracing-config=""
autostart-enabled="off"
autostart-delay=0
defaultfrontend=""
vmprocpriority="default"
storagecontrollername0="IDE"
storagecontrollertype0="PIIX4"
storagecontrollerinstance0="0"
storagecontrollermaxportcount0="2"
storagecontrollerportcount0="2"
storagecontrollerbootable0="on"
storagecontrollername1="SATA"
storagecontrollertype1="IntelAhci"
storagecontrollerinstance1="0"
storagecontrollermaxportcount1="30"
storagecontrollerportcount1="1"
storagecontrollerbootable1="on"
"IDE-0-0"="none"
"IDE-0-1"="none"
"IDE-1-0"="emptydrive"
"IDE-IsEjected"="off"
"IDE-1-1"="none"
"SATA-0-0"="/root/VirtualBox VMs/centos-7/centos-7.vdi"
"SATA-ImageUUID-0-0"="1a1982b2-ffc3-465f-96fe-350f7d54fd4b"
natnet1="nat"
macaddress1="080027D86E8B"
cableconnected1="on"
nic1="nat"
nictype1="82540EM"
nicspeed1="0"
mtu="0"
sockSnd="64"
sockRcv="64"
tcpWndSnd="64"
tcpWndRcv="64"
bridgeadapter2="Realtek 8822BE Wireless LAN 802.11ac PCI-E NIC"
macaddress2="080027F5106C"
cableconnected2="on"
nic2="bridged"
nictype2="82540EM"
nicspeed2="0"
nic3="none"
nic4="none"
nic5="none"
nic6="none"
nic7="none"
nic8="none"
hidpointing="ps2mouse"
hidkeyboard="ps2kbd"
uart1="off"
uart2="off"
uart3="off"
uart4="off"
lpt1="off"
lpt2="off"
audio="alsa"
audio_out="on"
audio_in="off"
clipboard="disabled"
draganddrop="disabled"
SessionName="headless"
VideoMode="800,600,32"@0,0 1
vrde="off"
usb="on"
ehci="on"
xhci="off"
VRDEActiveConnection="off"
VRDEClients==0
videocap="off"
videocapaudio="off"
capturescreens="0"
capturefilename="/root/VirtualBox VMs/centos-7/centos-7-20210521/centos-7-20210521.webm"
captureres="1024x768"
capturevideorate=512
capturevideofps=25
captureopts=""
GuestMemoryBalloon=0
GuestOSType="RedHat_64"
GuestAdditionsRunLevel=0

从上面的信息中找到下面这句

bridgeadapter2="Realtek 8822BE Wireless LAN 802.11ac PCI-E NIC"

接着执行如下命令:

[root@localhost ~]# ifconfig -a
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.104  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::bacb:29ff:feaf:90e1  prefixlen 64  scopeid 0x20<link>
        ether b8:cb:29:af:90:e1  txqueuelen 1000  (Ethernet)
        RX packets 31724  bytes 17185511 (16.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6966  bytes 610655 (596.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 17  

eno2: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:cb:29:af:90:e2  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 18  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

经确认上面网络信息中“eno1”是需要的网卡名

接着执行如下命令:

[root@localhost ~]# VBoxManage modifyvm centos-7-20210521 --bridgeadapter2 eno1
[root@localhost ~]# 

现在再执行启动虚拟机命令:

[root@localhost ~]# VBoxManage startvm centos-7-20210521 --type headless
[root@localhost ~]# 

无任何信息提示,查看下当前正在运行的虚拟机:

[root@localhost ~]# VBoxManage list runningvms
"centos-7-20210521" {b09f4765-c719-4fe6-98bb-061a1e21c731}

完美了,虚拟机已经可以正常启动了,下面是连接虚拟机

通过SSH连接进入虚拟机,需要先知道他的IP,使用如下命令:

[root@localhost ~]# VBoxManage guestproperty enumerate centos-7-20210521
Name: /VirtualBox/HostInfo/GUI/LanguageID, value: zh_CN, timestamp: 1621572512183474600, flags: RDONLYGUEST
Name: /VirtualBox/HostInfo/VBoxVerExt, value: 6.1.22, timestamp: 1623222456869860001, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/VMInfo/ResumeCounter, value: 0, timestamp: 1623222456817796000, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/HostGuest/SysprepExec, value: , timestamp: 1623222456817796000, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/HostGuest/SysprepArgs, value: , timestamp: 1623222456817796000, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/VMInfo/ResetCounter, value: 0, timestamp: 1623222456817796000, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/HostInfo/VBoxRev, value: 144080, timestamp: 1623222456869860002, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/HostInfo/VBoxVer, value: 6.1.22, timestamp: 1623222456869860000, flags: TRANSIENT, RDONLYGUEST

没有IP地址显示,想起原来虚拟机有两个网卡:

一个网卡使用nat,

一个网卡使用桥接

经过一天的研究后,决定首先把VM中的两个网上配置给取消,重新配置虚拟机网络。

删除原虚拟机的配置命令如下 :

[root@localhost ~]# VBoxManage modifyvm centos-7-20210521 --nic1 none
[root@localhost ~]# VBoxManage modifyvm centos-7-20210521 --nic2 none

下面开始为虚拟机配置为hostonly网络作准备

新建宿主机hostonly网卡:

[root@localhost ~]# VBoxManage hostonlyif create

在此未指定hostonly网卡的名,系统默认为vboxnet0
 

指定宿主机IP:

[root@localhost ~]# VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.56.254 --netmask 255.255.255.0

此时,执行如下命令,可以看到vboxnet0的信息,具体命令如下:

[root@localhost ~]# ifconfig
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.104  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::bacb:29ff:feaf:90e1  prefixlen 64  scopeid 0x20<link>
        ether b8:cb:29:af:90:e1  txqueuelen 1000  (Ethernet)
        RX packets 10342  bytes 1663982 (1.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1996  bytes 209859 (204.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 17  

eno2: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:cb:29:af:90:e2  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 18  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 25  bytes 2184 (2.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 25  bytes 2184 (2.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vboxnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.254  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::800:27ff:fe00:0  prefixlen 64  scopeid 0x20<link>
        ether 0a:00:27:00:00:00  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 44  bytes 4952 (4.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

配置hostonly网卡的DHCP:

[root@localhost ~]# VBoxManage dhcpserver add --ifname vboxnet0 --ip 192.168.56.254 --netmask 255.255.255.0 --lowerip 192.168.56.101 --upperip 192.168.56.105  --enable

上面命令中的lowerip和upperip分别是DHCP动态分配IP的最小IP和最大IP,请一定要设置的范围小一下,这样有助于你使用ping命令来查看虚拟机分配的具体 IP;
 

查看虚拟DHCP信息,命令如下:

[root@localhost ~]# VBoxManage list dhcpservers
NetworkName:    HostInterfaceNetworking-vboxnet0
Dhcpd IP:       192.168.56.254
LowerIPAddress: 192.168.56.101
UpperIPAddress: 192.168.56.105
NetworkMask:    255.255.255.0
Enabled:        Yes
Global Configuration:
    minLeaseTime:     default
    defaultLeaseTime: default
    maxLeaseTime:     default
    Forced options:   None
    Suppressed opts.: None
        1/legacy: 255.255.255.0
Groups:               None
Individual Configs:   None

考虑到我打算把虚拟机的第一张网卡设置为nat网络、第二张网卡设置为bridge网络,所以决定将第三张网卡设置成hostonly网络;
命令如下:

[root@localhost ~]# VBoxManage modifyvm centos-7-20210521 --nic3 hostonly --nictype3 82540EM --cableconnected3 on --hostonlyadapter3 vboxnet0

启动虚拟机:

[root@localhost ~]# VBoxManage startvm centos-7-20210521 --type headless

使用ping命令在指定的DHCP动态分配的IP中一个个试,当ping 192.168.56.102时,通了,于是确定虚拟机的IP是192.168.56.102。
 

进行SSH登录:

[root@localhost ~]# ssh root@192.168.56.102

按提示录入 yes及密码后,顺利登录到虚拟机啦

至此可以在虚拟机上安装软件及你需要的操作啦。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

purple.taro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值