|
你要用SDK,就得用VirtualBox3.2,而VirtualBox3.2支持虚拟硬盘的动态扩展,也就是VDI文件的大小随着guest使用的容量而增大,但是动态扩展的上限为最初指定的虚拟硬盘的大小。* c5 G4 _" l( P- O
/ v/ b8 }' `% M 也许是因为心理的原因,这个值你指定的过小了,你使用了一段时间才会发现这个问题。Virtualbox没有修改虚拟磁盘大小的功能。现在VirtualBox还没有提供改变虚拟硬盘大小上限的功能。其实安装guest时完全可以指定一个很大的值,毕竟它不会占用多余的硬盘空间,仅仅占用guest真正利用到的空间而已。但是问题已经出现了,重新来过显然太过麻烦了,办法还是有的。答案就是用一块更大容量的虚拟硬盘来替换原来的虚拟硬盘,把原来的内容完整的clone到新的虚拟硬盘上来。这次不要吝啬了,把虚拟硬盘设置的大一点吧。3 j9 a$ I7 l' m: t
1 q. r) e/ x+ h f4 `方法1——简单办法,步骤如下:
# }4 j) Y( g& U& u c5 J+ t6 c& Z) P1 a) Q9 \
1、在guest的HDD设置里面新建IDE硬盘,并挂载在primary slave接口上,原来的硬盘在primary master上,当然你也可以随便挂,但会影响到后面的硬盘编号。! I4 v1 ^, j" c8 K$ `
2 I% r( N5 S: p
2、下载GParted LiveCD(http://gparted.sourceforge.net/),将下载的ISO文件挂载到guest的光驱上面,并且从光驱启动。简单的回车默认启动就可以。+ I1 ]5 R5 x% s8 K3 r! k+ B
+ S; u. _& |% S$ b
3、拷贝旧硬盘的MBR到新硬盘(新硬盘的MBR为空),这样才能正常启动。启动terminal终端,输入fdisk -l //可查看到硬盘设备号,按上面的设置,旧硬盘应该是sda,而新硬盘是sdb
: G" F3 M0 ?- z1 Ydd if=/dev/sda of=/dev/sdb bs=512 count=1 //拷贝sda的mbr到sdb上,命令如前所示
5 O: @, x% V* U1 A6 A. u. R+ v8 i f切记不要搞反了,否则旧硬盘的MBR就成空白了。MBR里面包含有分区表信息,这样拷贝以后新硬盘里面也有了一个和旧硬盘一般大小的分区,我们不需要,可直接删除。删除办法如下:7 m* ?, [; o+ c6 ~1 F* E$ P1 }
fdisk /dev/hdb,然后输入fdisk命令d也就是在Command (m for help):后面输入d就可以删除掉这个分区,然后输入fdisk命令w把改变写回硬盘,然后q退出。2 m+ H: e8 B3 H
; ]( \/ w( r( O b3 ~" k( Y' J4、启动GParted程序。GParted会扫描到这两个硬盘。在旧硬盘hda的分区(我的是主分区hda1)上面右击选择copy,然后选择新硬盘hdb,在其上右击选择paste,并把目的分区拖到最大,起码我的guest只要一个主分区就可以了,如下图所示。最后点击apply进行真正的拷贝动作。耐心的等待一段时间。& T/ `1 I/ |: j5 m. ]) t
/ h& v" u# Z7 H$ l0 i0 Z
5、在新硬盘的主分区sdb1上右击选择”manage flags”,为此分区添加boot标志,以便从该分区启动。
$ s4 E2 I# f/ q+ z/ H0 c, A/ v8 x3 O/ K) }
6、从虚拟机设置里面为guest去掉cd rom,去掉旧的虚拟硬盘,把新虚拟硬盘挂载到IDE的Primary master上面,启动guest。第一次用新硬盘启动可能会遇到磁盘检查。
, C+ H0 }5 j( C7 @+ @0 o7 ]. B! j+ v: {
到此应该就OK了,以后新建guest的时候一定要把虚拟硬盘搞大一点,省的这么麻烦。4 i0 P! c+ |+ Y) `7 j
———–/ \2 R3 j- `2 r* ^- E* G+ B; N
/ o- S, \$ u0 `) t% n b
ps. Ubuntu 8.04 Grub修复; }+ z) C- j! A' |0 q9 {$ {' }
% b; @, }7 Q1 u o" R4 m. V- sUbuntu的Live CD,启动,终端
4 |2 _0 s) w1 }0 O* m3 g' ~* c" m9 z8 ^, k1 c
su //进入根用户/ o- O0 P. ?5 ~2 N( M
3 ^; Z* t, m1 [2 _
fdisk -l 查看分区情况 我的/ 是 sda1
2 `! m8 Z' a8 y3 u% S0 t$ P4 h$ x0 ^' b( N! Z' m$ |7 V7 X0 z: ^' l% u# L
mount 挂载到/mnt
/ n3 n6 M/ m& I" n$ z$ X8 w" F* ?7 D0 x$ m, }
grub-install --root-dircetory=/mnt /dev/sda8 h. u! q; \! k9 f# @8 s5 v
5 G4 V: y' {1 H' S$ B- ~- hupdate-grub
* q7 ]3 v, i+ V2 l- g7 }0 P& W, d) X+ J1 J9 P
grub>root (hd0,0) 我的/是0,boot没有单独划分
) p' G7 q: S B+ e' K8 }/ k+ s3 ]& s& V `; i, N0 e
grub>setup (hd0), @5 t- I& y' U) s! e9 Y8 }
$ I) s8 @$ h' w6 a/ g+ Y. H
grub>quit
7 Z. i- K0 {- h' H2 v$ `5 a
+ E! z) t& m7 T( N+ i; @" A/ W搞定& ?2 J: ^/ z) E3 V; R
3 B! C7 o6 \( q* y
方法2:
- q7 k1 | n1 u! v
+ [6 n! U* q- Fsudo apt-get install gparted
0 e; ]8 O. d+ G* I2 _: F) i9 c! Tsudo apt-get install ntfsprogs/ p0 y/ R( \0 v( R9 a; d' l
//在Ubuntu中,gparted在默认情况下并不支持NTFS分区,必须还要使用如下指令安装ntfsprogs) |: ~$ ~$ L! f" q8 E {9 r
sudo gparted //启动gparted
C0 ^( h9 q f' f这种安装方式只能用于非系统分区并且是尚未挂载的分区调整,所以在上图中,当选中一个Ubuntu所在的安装分区/dev/sda3时,点击“分区”菜 单,其中的调整分区相关的菜单项都是被禁用的,同时该分区的名称后显示了一个“锁定”的图标,表示该分区不能进行调整。建议直接在gparted的官网http://gparted.sourceforge.net中下载其Live CD的ISO光盘映象文件,然后將其该录成光碟。gparted的Live CD中自带了一个简版的Debian系统,利用该光碟启动计算机之后,可以直接硬盘上的任意支持格式的分区进行创建、删除或大小调整。 ——详见方法1
0 ~! A7 k/ s2 }; B8 Z1 \. T+ Y |
|