VirtualBox 虚拟机的目录结构

说明

由于博客已经全面由 CSDN 迁往 SegmentFault, 故将部分文章进行改写和迁移. 这些文章的开头均有本说明. 由于时间较为久远, 部分内容可能发生变更, 稳重的实例请斟酌后再尝试.

环境

Manjaro Linux 19.0, Linux Kernel 5.5, XFCE 4.4, Virtual Box 6.1 (均是英文版)

VBox 虚拟机的结构

在一个正确的VBox虚拟机中,可以发现以下目录组成。
以我的Kali Linux虚拟机为例。

Kali Linux
├── Kali Linux.vbox
├── Kali Linux.vbox-prev
├── Kali Linux.vdi
├── Logs
│   ├── VBox.log
│   ├── VBox.log.1
│   ├── VBox.log.2
│   └── VBox.log.3
└── Snapshots
    └── 2020-03-02T02-46-17-417352000Z.sav

2 directories, 8 files

如下所示。

VBox 文件:Kali Linux.vbox

这是VBox虚拟机的配置文件,包含了对虚拟机软硬件的描述,使用XML语法。
内容如下所示。




  
    
      
        
      
      
        
        
      
    
    
      
      
      
      
    
    
      
        
        
        
        
      
      
      
      
      
      
      
        
        
      
      
        
          
        
      
      
        
          
            
            
            
          
          
        
      
      
      
      
      
      
        
        
        
        
        
        
        
        
        
        
        
        
      
    
    
      
        
          
        
      
      
        
          
        
      
    
  

我们将在下一篇中仔细研究这个文件。

VBox-prev 文件:Kali Linux.vbox-prev

这是历史版本的VBox配置文件,有备份的作用,内容与Kali Linux.vbox相似,但属性不同,在这里我们不过多描述。

VDI 文件:Kali Linux.vdi

VDI 文件是Virtual Box独家格式的虚拟硬盘文件,在VBox文件中指定。通过GHex编辑器,我们可以看到这个VDI 文件的内容。
VirtualBox 虚拟机的目录结构_第1张图片可以看到,它的文件头是:

<<< Oracle VM VirtualBox Disk Image >>>

除了VDI文件,Virtual Box 虚拟机还支持VHD,VMDK 格式的虚拟硬盘。其中,VMDK 格式正是VMWare虚拟机使用的虚拟硬盘格式。

Virtual Box与VMWare的兼容性问题

如上所述,Virtual Box可以采用VMWare的虚拟磁盘。通过创建带有VMDK磁盘的虚拟机,可以方便的将其在VBox与VMWare之间来回移动而正确运行。但是,经本人实验发现,这种方法只适用于在创建时选择“使用一个VMDK文件作为虚拟硬盘“的选项。本人亲测,如果VMWare虚拟机采用了多个VMDK文件(Split选项),只有一个没有数字序号的VMDK文件对于VBox是合法的,可读的。

然而,当我们启动这块虚拟磁盘时,会出现类似

INT xxx code cannot be executed: Error!

的错误,因此,对于使用多块虚拟磁盘的VMWare虚拟机,Virtual Box不能使用,但是,对于使用一块虚拟磁盘的VMWare虚拟机,VBox 可以正确启动,运行。

Logs 文件夹:VBox.log, VBox.log.1, ...

每次VBox 启动,都会产生一个 log (日志)文件,可以提供对错误排查等方面的信息。以下是VBox.log文件的内容

00:00:01.677201 VirtualBox VM 6.1.2 r135662 linux.amd64 (Jan 14 2020 22:33:16) release log
00:00:01.677205 Log opened 2020-03-01T11:52:06.893608000Z
00:00:01.677206 Build Type: release
00:00:01.677210 OS Product: Linux
00:00:01.677213 OS Release: 5.5.2-1-MANJARO
00:00:01.677215 OS Version: #1 SMP PREEMPT Tue Feb 4 19:22:35 UTC 2020
00:00:01.677250 DMI Product Name: HP ZBook 14u G5
00:00:01.677265 DMI Product Version: 
00:00:01.677273 Firmware type: UEFI
00:00:01.677817 Secure Boot: Disabled
...... 
04:49:22.678899 E1000#0: TX frames up to 32768: 0
04:49:22.678902 E1000#0: Larger TX frames    : 0
04:49:22.678904 E1000#0: Max TX Delay        : 0
04:49:22.724032 GIM: KVM: Resetting MSRs
04:49:22.730560 Changing the VM state from 'DESTROYING' to 'TERMINATED'
04:49:22.733887 Console: Machine state changed to 'Saved'
04:49:23.467202 GUI: Passing request to close Runtime UI from machine-logic to UI session.

可以看出,Virtual Box把所有的行为,数据都输出到了这些log文件里,对调试虚拟机非常有用。但是文件体积因此非常大,如下是ls结果。

~/VirtualBox VMs/Kali Linux/Logs » ls -l                                                                                 felix@felix-zbook
total 584
-rw------- 1 felix felix 139958 Mar  2 10:46 VBox.log
-rw------- 1 felix felix 209527 Mar  1 11:00 VBox.log.1
-rw------- 1 felix felix 128813 Feb 29 21:25 VBox.log.2
-rw------- 1 felix felix 107014 Feb 29 21:16 VBox.log.3

Snapshots文件夹:2020-03-02T02-46-17-417352000Z.sav

Snapshot,懂虚拟机的都明白,不用说了吧。。。

你可能感兴趣的:(vbox,virtualbox,vm,linux,linux运维)