双系统 Ubuntu 扩容

好久没有在笔记本上装linux的系统了,之前给我本的装了个双系统,一个windows 7.一个Ubuntu 11.04.由于还要使用网银之类的,所以,不可能把windows的系统都删掉。
当时给ubuntu的分区的大小很小,就25G,感觉上,又不需要安装什么软件,这么打应该够了,谁知道升级了几次,这个25G就已经快不够了,虽然也还是没有安装什么软件呢。看来linux的系统也是越来越庞大了。
于是就想着给ubuntu的分区给扩容。正好也有能够扩容的空间,因为在windows中有一个E盘,作为数据盘,基本上也没怎么用,可以考虑划分出来一部分给linux用。
这时
首先需要调整E盘的大小,分出一部分新建一个盘给linux用。
这个时候,就出现了两种选择。因为我之前给linux只分了一个区,所有的目录都是挂载在一个分区/dev/sda7上的。那么现在从E盘拿出来了一些空间,一种方案是将多出来的这部分空间和/dev/sda7合并起来,使得/dev/sda7空间扩大。还有一种方案是将多出来的这部分空间单独建立一个分区,然后挂载到linux系统中。我最终采用了后者,准备将多出来的这部分空间创建一个分区/dev/sda6,并将其挂载到/usr目录上。原因是如果要做分区的合并的话,在linux下要使用fdisk工具分拆E盘,而且必须要分出来的空间比/dev/sda7大,因为之后会把/dev/sda7的数据暂时先搬移到这个分区中来,分完分区之后,然后搬移/dev/sda7的数据到新分区之后,再将/dev/sda7和/dev/sda6合并起来(为什么需要数据搬移呢?因为在一般的windows 和linux 共存的系统中,一般linux的分区都是放在window的分区的后面的,所以,如果linux的分区要扩容的话,就需要向前扩容.向后扩容容易,就是分区的后端加长了,向前扩容的话,就需要将原先放在后面的数据搬到前面去.).而这些操作,fdisk命令里面都有,但是我不是很熟,也就不想这么做了.
我采取的方法是,将E盘的空间进行拆分出来一个分区/dev/sda6.然后再将/dev/sda6挂载到linux系统的/usr目录上去(为什么要挂载到/usr目录上去呢?因为查看了一下系统,这个目录下存放的东西最多,也最占空间,很多可执行文件,以及库都是放在这个目录下面).
那么,具体是怎么做的呢?
首先,要拆分原来的E盘,拆出来的空间创建成一个新的ext3/ext4的新分区(也就是我的系统中的/dev/sda6).完成这个步骤的方法有很多,有很多软件可以用,当然我不喜欢使用fdisk.一般的话可以使用partition magic等等的软件,但是恰巧我有一个WinPE的USB启动盘,这个启动盘里面有分区的工具,所以我就直接进入WinPE系统,使用分区工具把硬盘给分区了,也就是一个大蛋糕切成了两个小蛋糕,一个给windows吃,文件系统还是FAT32,一个蛋糕给linux吃,文件系统类型改为了ext3.任务完成!!
接下来重启进入ubuntu系统,希望挂载上面切出来的linux的蛋糕,但是,出现了问题.进不去系统了!!停留在GRUB的界面,GRUB显示,缺少文件!!怎么办?
稍微想了想,记得以前看到过,GRUB的执行其实由两个部分组成,先在MBR里面执行一部分,然后跳转到linux的分区里面的另一部分继续执行,碰到这个问题的原因可能是因为分区的结构被我改变了(很明显,在原来的/dev/sda7的分区前面加上了一个/dev/sda6分区么?而MBR中的GRUB的部分并不知道这个改变,所以,我猜测,此时,它到/dev/sda6中去寻找GRUB的后半部分了,结果,当然是找不到!!).那怎么办呢?需要重新安装系统么(以前安装linux的时候,不知道重新安装了多少次).其实不需要,所需要做的,只要重新安装GRUB.怎么做呢?
其实也很简单,不是进不了linux系统么,那么拿出安装ubuntu的liveCD.启动就能进入系统了.然后使用下面的命令就能够重新安装GRUB了:
mount /dev/sda7 /mnt —>对于我的系统,原来的ubuntu系统是安装在/dev/sda7中的.
grub-install –boot-directory=/mnt /dev/sda –>将GRUB安装到/dev/sda上,指明boot的地方是在/dev/sda7上
按照上面的来做的话,GRUB就重新安装好了!!OK,重启就能够看到熟悉的GRUB界面了!!
然后需要做什么呢?然后需要做的只是将/dev/sda6挂载到/usr目录下(当然前提是,需要先把/usr目录下的已经存在的所有文件拷贝到/dev/sda6中),怎么实现呢?
其实也很简单.先将/dev/sda6随便挂载到任意一个目录上,这样我们就能够读写/dev/sda6了,我是把它挂载到/mnt目录上的:
mount /dev/sda6 /mnt
然后,将/usr目录下存在的所有文件和目录都复制到/mnt中,也就是/dev/sda6中,需要使用下面的命令,将文件的属性一起拷贝过去:
cp -rp /usr/* /mnt/
很明显,现在所有的/usr目录下的文件都已经被复制到了/mnt/目录下了.然后我们要做的就是在系统启动的时候,将/dev/sda6挂载到/usr目录上,这样,访问/usr目录的时候,其实就是访问/dev/sda6这个分区,而非/所在的/dev/sda7分区了.怎么做呢?也很简单,在linux系统中,管理分区的挂载点的配置文件是放在/etc/fstab文件中的,打开这个文件看看就知道是怎么回事了,所以,我们如果想添加一个新的挂载点,比如说就是我们现在的这个情况的话,只需要在fstab文件中添加一行就可以了.如下:
/dev/sda6 /usr ext3 0 0
注意,需要取得root权限之后才能够编辑fstab并保存.OK,这一步做完了之后,直接重启,就会发现/dev/sda6已经被挂载到/usr上面去了.需要注意的是,原来的/usr目录需要重新改个名字再重启,比如/usr_bak之类的,要不然的话,可能会起冲突.等到正常的启动之后,就可以把这个/usr_bak目录给删除掉.
这样子,所有的工作就都完成了,使用df -h查看你的新的分区的情况吧,是不是大了很多??

注:
有一个需要注意的地方,就是在拷贝/usr中的内容到/dev/sda6中时,需要是用cp -rp选项,这样的话,文件的所有属性都被同样的拷贝到了/dev/sda6中,如果不加-p选项的话,挂载之后会有问题,因为很多的可执行文件都是在/usr目录下,比如sudo之类的,就会执行不了,导致整个系统都很怪异.我一开始就是没有加上-p选项.结果费了好多的心思,才改过来.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值