如何在 Linux 上为 Oracle Virtual Box 添加磁盘存储
本文面向那些希望在 Virtual Box 上安装软件但遇到磁盘空间不足问题的用户。同时,您可能也需要通过创建新的、更大的驱动器来扩展现有驱动器,从而为 Oracle VirtualBox 添加磁盘存储。以下是通过为 Virtual Box 添加虚拟驱动器来分配更多空间的步骤,虚拟机正在运行 Red Hat Linux 6.7。
添加虚拟驱动器
打开 Oracle VM Virtual Box 管理器,选择要为其添加新磁盘的 Virtual Box,然后点击**设置**。

点击存储,选择硬盘,然后点击添加硬盘。

点击**创建新磁盘**。

按照屏幕上的说明创建新的硬盘驱动器。您也可以按照向导的提示,输入新硬盘的名称以及您希望创建磁盘文件的位置。在 Windows 上提供您希望创建驱动器的目录。
当向导完成时,点击**确定**关闭设置。
新驱动器的分区
通常,系统中的磁盘驱动器会分配以 hd 或 sd 开头的设备名称,后跟一个字母表示设备号。例如,第一个设备可能是 /dev/sda,第二个是 /dev/sdb,依此类推。
运行以下命令列出可用的硬盘驱动器
# ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sdb
从以上输出可以看到,新硬盘已分配给设备文件 /dev/sdb。目前驱动器没有显示任何分区(因为我们还没有创建任何分区)。
创建 Linux 分区
下一步是在新磁盘驱动器上创建一个或多个 Linux 分区。这可以通过使用 fdisk 实用程序来实现,该实用程序将要分区的设备作为命令行参数。
# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xd1082b01. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): As instructed, switch off DOS compatible mode and change the units to sectors by entering the c and u commands: Command (m for help): c DOS Compatibility flag is not set Command (m for help): u Changing display/entry units to sectors In order to view the current partitions on the disk enter the p command: Command (m for help): p Disk /dev/sdb: 34.4 GB, 34359738368 bytes 255 heads, 63 sectors/track, 4177 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xd1082b01 Device Boot Start End Blocks Id System
从以上 fdisk 输出可以看到,磁盘目前没有分区,因为它之前未使用过。下一步是在磁盘上创建一个新分区,此任务通过输入 n(表示新分区)和 p(表示主分区)来执行。
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4):
我们只能创建一个分区,可以命名为**分区 1**。接下来,我们需要指定分区开始和结束的位置。由于这是第一个分区,我们可以从第一个可用扇区开始,并且由于我们希望使用整个磁盘,因此可以将最后一个扇区指定为结束。请注意,如果您希望创建多个分区 - 您甚至可以按扇区、字节、千字节或兆字节指定每个分区的大小。
Partition number (1-4): 1
First sector (2048-67108863, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-67108863, default 67108863):
Using default value 67108863
Now that we have specified the partition we need to write it to the disk using the w command:
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
If we now look at the devices again we will see that the new partition is visible as /dev/sdb1:
# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1下一步是在我们的新分区上创建一个文件系统。
在 RHEL 6.7 磁盘分区上创建文件系统
我们现在安装了一个新磁盘,RHEL 6.7/CentOS 可以看到它,并且我们在磁盘上配置了一个 Linux 分区。下一步是在分区上创建一个 Linux 文件系统,以便操作系统可以使用它来存储文件和数据。在分区上创建文件系统的最简单方法是使用**mkfs.ext4**实用程序,它将标签和分区设备作为参数。
# /sbin/mkfs.ext4 -L /backup /dev/sdb1 mke2fs 1.41.12 (17-May-2010) Filesystem label=/backup OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 2097152 inodes, 8388352 blocks 419417 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 256 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
此文件系统会在 36 次挂载或 180 天后自动检查,以先发生者为准。
使用 tune2fs -c 或 -i 覆盖。
挂载文件系统
现在我们已经在新磁盘驱动器的 Linux 分区上创建了一个新的文件系统,我们需要挂载它才能访问它。为此,我们需要创建一个**挂载点**。挂载点只是一个目录或文件夹,文件系统将挂载到其中。
在本例中,我们将创建一个** /backup **目录以匹配我们的文件系统标签(尽管这两个值不必匹配)。
# mkdir /backup
然后可以使用 mount 命令手动挂载文件系统。
# mount /dev/sdb1 /backup
运行不带任何参数的 mount 命令将显示我们所有当前挂载的文件系统(包括我们的新文件系统)。
# mount /dev/mapper/vg_rhel6-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) /dev/sr0 on /media/RHEL_6.0 x86_64 Disc 1 type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=500,gid=500,iocharset=utf8,mode=0400,dmode=0500) /dev/sdb1 on /backup type ext4 (rw)
配置 RHEL 6.7 自动挂载文件系统
为了配置系统以便在启动时自动挂载新磁盘,我们需要在** /etc/fstab 文件**中添加一个条目。
以下是示例配置文件,其中显示了配置为自动挂载我们的 /backup 分区的 fstab 文件。
# Vi /etc/fstab /dev/mapper/vg_rhel6-lv_root / ext4 defaults 1 1 UUID=4a9886f5-9545-406a-a694-04a60b24df84 /boot ext4 defaults 1 2 /dev/mapper/vg_rhel6-lv_swap swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 LABEL=/backup /backup ext4 defaults 1 2
结论
成功配置和设置后,您的 VirtualBox 现在拥有更多空间。我们可以添加任意数量的硬盘,通过以上步骤,为 Linux 机器增加存储不同类型存储的空间。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP