文章

在 VirtualBox 中向 Ubuntu (20.04) VM 添加新硬盘

我们将解释如何在 Oracle VM VirtualBox 的 Ubuntu(20.04) VM 中创建、附加和使用磁盘。

该过程的大致轮廓如下。

  • 在 Virtual Box Manager 中创建虚拟硬盘并将其附加到 Ubuntu VM
  • 初始化并格式化Ubuntu GUI界面上附加的磁盘设备
  • 使磁盘设备在每次 Ubuntu 启动时可用。

1. 创建磁盘映像并将其附加到 Ubuntu VM

可以通过 Virtual Box 管理器中的虚拟媒体管理器创建磁盘映像。

我计划创建一个55GB的镜像,创建磁盘镜像有两种选择。第一个是一个选项,占用我已经使用的硬盘容量,第二个是创建一个选项,一次性占用从一开始就计划的容量。不过,为了稳定运行,我会使用第二个选项一次创建55GB。

我使用预分配完整大小选项创建了一个虚拟硬盘。

Oracle VM VirtualBox Manager - 创建虚拟硬盘 Oracle VM VirtualBox Manager - 创建虚拟硬盘

创建虚拟磁盘映像后,经过虚拟磁盘映像初始化时间后,您可以在硬盘列表中查看创建的磁盘。

Oracle VM VirtualBox Manager - 正在进行虚拟硬盘初始化 Oracle VM VirtualBox Manager - 正在进行虚拟硬盘初始化

现在我们将创建的虚拟硬盘添加到Ubuntu VM中。

您可以在 Ubuntu VM 设置的存储选项卡中使用 SATA 控制器添加硬盘。

Oracle VM VirtualBox Manager - 将硬盘添加到 Ubuntu VM Oracle VM VirtualBox Manager - 将硬盘添加到 Ubuntu VM

当您选择您创建的硬盘时,您可以在信息部分检查该硬盘是否已连接。

Oracle VM VirtualBox Manager - 检查添加到 Ubuntu VM 的硬盘 Oracle VM VirtualBox Manager - 检查添加到 Ubuntu VM 的硬盘

2. Ubuntu VM 中的磁盘初始化

从虚拟机的角度来看,硬盘物理连接到 Ubuntu VM。

现在我们要在 Ubuntu VM 中格式化磁盘。我们可以使用经典的fdisk来完成此操作,但我们将继续使用一个更直观的 GUI 工具,称为Gparted

让我们使用 apt 安装并运行 gparted。

1
2
3
4
# install gparted
sudo apt-get install gparted
# run gparted
gparted

选择GParted右上角创建的硬盘后,我们将创建一个msdos分区表,并按照下图将其格式化为ext4

通过菜单应用分区msdos分区表。

Ubuntu VM - GParted - 以 msdos 格式创建分区表 Ubuntu VM - GParted - 以 msdos 格式创建分区表

然后,我们将创建一个分区。右键单击未分配的分区并创建一个ext4文件系统分区。我把它设置为全尺寸。

Ubuntu VM - GParted - 使用 ext4 文件系统创建分区 Ubuntu VM - GParted - 使用 ext4 文件系统创建分区

将 ext4 文件系统的分区格式化为etx4

然后单击绿色复选框以应用到目前为止所做的设置。

Ubuntu VM - GParted - 将分区格式化为 ext4 Ubuntu VM - GParted - 将分区格式化为 ext4

至此硬盘初始化完成。要挂载硬盘以便每次 Ubuntu VM 启动时都可以使用它,需要唯一的磁盘 ID 信息。右键单击创建的分区,在信息菜单中查看UUID,并记住它。

Ubuntu VM - GParted - 检查磁盘分区的 UUID Ubuntu VM - GParted - 检查磁盘分区的 UUID

3.每次启动,挂载磁盘

当前状态下,格式化的磁盘设备已就绪,但没有可写入文件的路径。因此,我们将通过将我的特定文件夹连接到硬盘设备来创建一条路径。这是挂载

上面gparted中标识的UUID代表硬盘设备,我们将这个设备连接到/mnt/data文件夹,创建一个可以写入文件的路径。由于每次 Ubuntu 启动时磁盘都需要可用,因此我们将在/etc/fstab中对此进行描述。

下面的行将添加到 /etc/fstab 中。

1
2
# UUID=<hard disk device UUID> <folder where the device will be mounted> ext4    defaults          0       0 
UUID=e47277b0-04dd-44f1-a4c0-861654b4d226 /mnt/data       ext4    defaults          0       0 

然后,我们将创建一个从挂载的/mnt/data到主目录中data文件夹的符号链接。

详细过程如下,如果完成所有步骤,请重新启动。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ mkdir -p /mnt/data
$ sudo chown -R ${USER}:users /mnt/data
$ cd ~/
$ sudo ln -s /mnt/data data
$ sudo vi /etc/fstab  
#-----------------------------------------------------------------------------
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda5 during installation
UUID=76a80216-1031-4871-945c-4c8de2845136 /               ext4    errors=remount-ro 0       1
UUID=e47277b0-04dd-44f1-a4c0-861654b4d226 /mnt/data       ext4    defaults          0       0 
# /boot/efi was on /dev/sda1 during installation
UUID=A4B5-D201  /boot/efi       vfat    umask=0077      0       1
/swapfile                                 none            swap    sw              0       0

本文由作者按照 CC BY 4.0 进行授权