2024年4月16日发(作者:)

最近在做Linux文件系统的课程设计,需要在VirtualBox

上扩展虚拟机硬盘,现将过程贴出来与大家分享:

1)打开VirtualBox,选中相应虚拟机(不要启动),点击“设置”

2)选择介质,选中SATA控制器,点选增加虚拟硬盘的图标

3)选择新建,进入“创建新的虚拟硬盘”向导,点击下一步

4)设定新虚拟硬盘所在位置和空间大小

5)确认信息后点击完成

6)若未成功,关闭窗口后重新进入设置,点选添加新盘图标,刚刚的新盘会自

动添加上

7)点击确定,现在虚拟机就多了一个虚拟硬盘

8)接下来几步很关键!在虚拟机上创建分区:重新运行虚拟机,开启终端

①root登录,切换到dev目录(cd /dev),会发现有一个sdb,这个就对应新盘

②命令:fdisk ./sdb,就像是开启windows的磁盘管理器,开始对新盘进行相应

操作。

③命令:p,查看当前新盘状态,会发现其属于未分配的空间

④命令:n,创建一个新的分区

⑤有两个选项:e(扩展分区)和p(主分区),选择p分配区号(1到4中选)

⑥再选择柱面起始位置(默认是可分配的第一个柱面,直接回车)

⑦选择分区大小:+100M

⑧现在再用p命令查看可发现多了一个./sdb1分区,就是刚刚新建的分区

⑨执行以上分区操作并退出:w。若不想保存修改,则直接输入q退出。

另外,若想删除某个分区,输入d,再按相应提示操作即可。

9)在硬盘分区上建立文件系统(只有创建了文件系统后,这个分区才能真正的使

用实现IO操作)

①查看支持的文件系统:ls /sbin/mk*

②将刚刚的新分区创建为ext2文件系统:mkfs –t ext2 /dev/sdb1

现在就可以看到新增的文件系统了~

10)挂载文件系统

①创建挂载点:mkdir /mnt/addDisk1

②挂在文件系统:mount /dev/sdb1 /mnt/addDisk1

③为了让该文件系统在开机时能自动挂载,需要修改文件系统的入口文件

/etc/fstab:

/dev/sdb1 /mnt/addDisk1 ext2 defaults 0 0

到此,新的文件系统就已成功挂载,可正常使用了~

卸载文件系统的命令也很简单:

使用umount命令可以卸载文件系统。利用设备名或挂载点都能umount文件系

统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)

时产生混乱。

# umount -v /dev/sdb1 通过设备名卸载

# umount -v /mnt/addDisk1/ 通过挂载点卸载

(如果设备正忙,卸载即告失败。卸载失败的常见原因是,某个打开的shell当前

目录为挂载点里的某个目录)

这几天编译内核基本上让我处在崩溃边缘,最大的问题就是空间不够。当初给虚

拟机分配空间的时候不知道哪根筋不对才分了2G多,现在报应来了。有人说 啦,

空间不够就精简内核呗。我当然想过,可是对着网上精简配置的方法花一个小时

调好配置,编译通过之后完全进入不了新内核。甚至有一次到了输入用户名和密

码的时候鼠标和键盘集体罢工岂有此理!由于时间问题,精简内核的方法

暂且放放,但是以我的性格肯定不会罢休的,小样,等有时间了再来削你!

还有人说啦,空间不够增加虚拟硬盘呗。pinggo,我也是这么想的,当然

也是这么干的。下面就说一下在virtualBox给Ubuntu增加虚拟硬盘的方法。

首先在virtualBox设置里,设置->介质->添加->选add hard disk,在弹

出的对话框里选择新建,点击下一步,选择动态扩展,点击下一步,选择大小,

点击下一步,完成。

接下来就要在Ubuntu里做相关设置。

进入终端模式

输入sudo fdisk /dev/sdb

会提示

The number of cylinders for this disk is set to 1365.

Command (m for help):

按m看help

Command action

a toggle a bootable flag

b edit bsd disklabel

c toggle the dos compatibility flag

d delete a partition

l list known partition types

m print this menu

n add a new partition

o create a new empty DOS partition table

p print the partition table

q quit without saving changes

s create a new empty Sun disklabel

t change a partition’s system id

u change display/entry units

v verify the partition table

w write table to disk and exit

x extra functionality (experts only)

按n创建分区,按p是查看分区

Command (m for help): n

Command action

e extended

p primary partition (1-4)

e是创建扩展分区

p是创建主分区

按p

p

Partition number (1-4): 1

First cylinder (1-1044, default 1): 1

Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044):

1044

Command (m for help): w

按w保存退出

格式化开始,我选择的是ext3格式

sudo mkfs -t ext3 /dev/sdb1

然后我把这个硬盘挂在~/src下就可以了

cd ~/src

sudo mkdir sdb1

sudo mount /dev/sdb1 ~/src/sdb1

sudo df

df命令是查看的意思

文件系统 1K-块 已用 可用 已用% 挂载点

/dev/sda1 3842376 2822092 825096 78% /

tmpfs 190020 0 190020 0%

/lib/init/rw

varrun 190020 120 189900 1% /var/run

varlock 190020 0 190020 0%

/var/lock

udev 190020 152 189868 1% /dev

tmpfs 190020 76 189944 1% /dev/shm

lrm 190020 2392 187628 2%

/lib/modules/2.6.28-11-generic/volatile

/dev/sda5 2885780 117632 2621560 5% /home

/dev/sdb1 10792216 709508 9534492 7%

/home/longzaitianguo/src/sdb1

share 20482840 15891500 4591340 78% /mnt/share

(注:这里的share是我的Ubuntu和主机win7的共享文件夹)

然后启动自动挂载

sudo gedit /etc/fstab

会看到如下文字

# /etc/fstab: static file system information.

#

# Use 'vol_id --uuid' 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).

#

#

point>

proc /proc proc defaults 0 0

# / was on /dev/sda1 during installation

UUID=b7806e98-1a61-48b2-b7c5-466626880479

/ ext3 relatime,errors=remount-ro 0 1

# /home was on /dev/sda5 during installation

UUID=94b20c91-2102-4544-8563-683a970b7677

/home ext3 relatime 0 2

# swap was on /dev/sda6 during installation

UUID=9a87d794-1296-4167-aa52-d7e496f8f5a3

none swap sw 0 0

/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8

0 0

/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8

0 0

依葫芦画瓢,添加

/dev/sdb1 ~/src/sdb1 ext3 defaults 0 0

这样就算完成了在虚拟机下添加虚拟硬盘的全部步骤