VirtualBox 中linux虚拟机 挂载额外硬盘的方法

http://www.zwsun.com/add_virtual_machine_space_2011_11_20_post

问题: 原来VirtualBox的虚拟机CentOS6.3 的空间不足了,在网上找了很多扩容的方法尝试都没有成功,唯独 “VirtualBox 中linux虚拟机 挂载额外硬盘的方法” 这个方法可行。再次感谢作者 阿文的自留地

1 增加一个虚拟硬盘的方法

优点:虚拟机中读写速度较快,虚拟硬盘也可以后面给其他的虚拟机使用

缺点:宿主机器无法读写块虚拟硬盘中的内容

操作方法:

1.1 先给虚拟机配备一个动态大小的虚拟硬盘

这个和一般的装虚拟机新建虚拟硬盘一样的操作。

打开虚拟机的配置 > storage 增加SATA控制器,然后在SATA控制器下增加一块虚拟硬盘;或者直接在IDE controller下面新增一块虚拟硬盘。

1.2 在虚拟机中进行分区,格式化,然后挂载

1.2.1 分区:

PS:必须要在root下操作,下面的描述中,红色字体的为输入的命令。

先用fdisk -l看看,如果没有找到你的虚拟硬盘,那就是前面的虚拟硬盘没有配置对。

root@dev-desktop:/home/dev#fdisk -lDisk /dev/sda: 8589 MB, 8589934592 bytes255 heads, 63 sectors/track, 1044 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk identifier: 0×00015130Device Boot Start End Blocks Id System/dev/sda1 * 1 993 7976241 83 Linux/dev/sda2 994 1044 409657+ 5 Extended/dev/sda5 994 1044 409626 82 Linux swap / SolarisDisk /dev/sdb: 2845 MB, 2845835264 bytes255 heads, 63 sectors/track, 345 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk identifier: 0×00000000

Disk /dev/sdb doesn’t contain a valid partition table

可以看到第二块虚拟硬盘 /dev/sdb 上面没有任何分区信息,当然无法用了。

接着 fdisk/dev/sdb 在第二块虚拟硬盘上建立分区,关于fdisk的详细用法请在进入fdisk后按m或者搜索之。

root@dev-desktop:/home/dev#fdisk /dev/sdbDevice contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0xadff2d79.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 0×0000 of partition table 4 will be corrected by w(rite)Command (m for help):n

Command action

e extendedp primary partition (1-4)p

Partition number (1-4):1First cylinder (1-345, default 1):1

Last cylinder or +size or +sizeM or +sizeK (1-345, default 345):回车Using default value 345Command (m for help):w

The partition table has been altered!

1.2.2 格式化

有分区了,还是无法使用的,这时候需要格式化,linux下普遍使用的是ext3。我们通过mkfs对刚才的分区格式化:

root@dev-desktop:/home/dev#mkfs.ext3 /dev/sdb1mke2fs 1.40.8 (13-Mar-2008)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)173888 inodes, 692795 blocks34639 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=71303168022 block groups32768 blocks per group, 32768 fragments per group7904 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912Writing inode tables: doneCreating journal (16384 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 38 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.

1.2.3 挂载

通过mkdir先建立一个挂载点,如在根目录下建立一个data目录用于挂载 mkdir /data/

root@dev-desktop:/home/dev#mount /dev/sdb1 /data/

通过df命令看看挂载情况,如果有相应的挂载信息就ok了。

root@dev-desktop:/home/dev#df -hFilesystem Size Used Avail Use% Mounted on/dev/sda1 7.6G 6.1G 1.2G 85% /varrun 352M 128K 352M 1% /var/runvarlock 352M 0 352M 0% /var/lockudev 352M 48K 352M 1% /devdevshm 352M 0 352M 0% /dev/shmlrm 352M 40M 313M 12% /lib/modules/2.6.24-27-generic/volatile/dev/sdb1 2.7G 69M 2.5G 3% /data

1.2.4 设置 /etc/fstab

做这一步的目的在于将第二块虚拟硬盘的信息写入系统分区信息表,便于开机自动挂载,否则,每次都需要手动去mount

在目前的/etc/fstab文件后面增加一行

/dev/sdb1 /data ext3 defaults 0 2

关于fstab的配置和各个参数的含义,可以自行搜索之。

2 和宿主机器通过数据空间共享的方法

优点:宿主和虚拟机都可以操作共享的文件,虚拟机内的空间完全决定于宿主机器的物理硬盘和实际分区,虚拟机开启后也可以使用该办法。

缺点:速度较慢

方法:

在虚拟机的设置 > 数据空间中设置宿主的目录和权限。

进入虚拟机后以root身份运行以下命令:

mount -t vboxsf 数据空间名称 挂载点

总结:如果你在宿主能够访问虚拟机中文件这方面没有需求,推荐使用增加虚拟硬盘的方法。

一个人行走,若是寂寞了,寻一座霓虹灯迷离闪烁,

VirtualBox 中linux虚拟机 挂载额外硬盘的方法

相关文章:

你感兴趣的文章:

标签云: