[Ubuntu]如何调整分区大小

背景:

本人已安装了Windows7+Ubuntu14.04双系统,但由于Ubuntu系统分区数据不断增加,导致空闲空越来越小,无法安装大型软件,而其他分区(如Windows分区)仍有较多剩余空间,故考虑将这些剩余空间“挪到”系统分区。

这里主要使用gparted进行分区调整(类似于Windows下的分区魔术师)。之前也考虑过将一个空闲分区挂载到系统中直接使用,虽然操作很简单,但日后存储转移数据会比较麻烦,故考虑直接扩大系统分区这个一劳永逸的办法。

 

步骤:

0. 备份重要资料

将Ubuntu系统中重要数据进行备份,当然有条件的话全盘备份最稳妥。

1. 制作优盘启动盘

由于gparted是在优盘启动盘中的linux系统中运行,故需要分别下载LinuxLive USB Creator(简称lili)和gparted的iso文件。下载地址如下:

http://www.linuxliveusb.com/en/download

https://sourceforge.net/projects/gparted/?source=top3_dlp_t5

注意,lili需要在Windows下安装。

根据默认设置安装完后,插入优盘,启动lili,加载gparted的iso文件。若想保留优盘中原有数据,不要选中格式化优盘,也不要选中“Enablelaunching LinuxLive in Windows”,后者是用于在虚拟机中使用。点击闪电符号即可开始制作启动盘。

2. 使用gparted调整分区大小

这里我的空闲分区,是原先安装Ubuntu时创建的一个分区(ext4格式的),如果希望从Windows分区中划出一块空间,需要执行以下操作:

登录win7系统--> (右击)计算机-->  属性  -->存储 --> 磁盘管理 --> (选择一个空余较多的非系统盘如D盘右击选择)压缩卷 --> (输入需要压缩出来的空间,即可用空间) 压缩。压缩后显示的是一块浅绿色标示的可用空间。

此时空闲空间准备完毕。插入优盘,并以优盘启动方式重启系统,这时会进入启动盘系统。进入前会有一系列选项提示,都保持默认项进入或设置即可(当然,有个选择语言的设置,选择33(简体中文)即可)。

进入启动盘系统后,会自动打开gparted软件。这时会展现出当前系统各分区的列表,每一行即是一个分区。注意,空闲空间必须是没有任何分区格式的空间,如果待移动的空闲分区原先是ntfs或者ext4格式的,需要先删除之,成为空闲空间后才能移动。

右键点击分区,选择“调整大小/移动”项,在打开的窗口中可以拖动滑块直接调整分区大小(注意滑块左右边界都可以滑动),然后点击“调整大小/移动”按钮,此时仅仅是将该操作加入等待队列,还可以继续调整其他分区大小,全部调整完毕后,点击主界面的“应用”才开始执行真正的分区调整。

这里需要特别注意的是,由于空闲空间很可能不会和待扩大的分区紧挨着,因此需要逐个分区移动空闲空间,直至空闲空间和待扩大分区毗邻。这也是gparted功能上的一个局限。例如,要将分区6移至分区2,并与之合并:

分区1

分区2

分区3

分区4

分区5

分区6(空)

分区7

需首先将分区6移至分区5前面,即拖动滑块、调整分区5的左右边界,拉动右边界至最右边(这样会扩大分区5大小),然后拉动左边界,使分区5大小保持原来状态,这样分区6就位于分区5前面了:

分区1

分区2

分区3

分区4

分区6(空)

分区5

分区7

按照此方法继续移动,直至分区6紧挨分区2:

分区1

分区2

分区6(空)

分区3

分区4

分区5

分区7


然后扩大分区2(拉动右边界),使分区6被分区2所“吞并”即可。

注意:由于Linux分区会有多个(如swap、boot等),会比较零散,因此,强烈建议在调整分区前保留一份原分区情况(如手机拍照),这样每调整一个分区,就可以与原分区情况进行对比,以确认调整前后各个分区大小没有变化,而仅仅是移动空闲空间。

全部调整完毕后,重启系统。

 

3. 修复grub启动菜单

调整移动分区会影响分区号的顺序,因此会导致grub无法找到Ubuntu的启动分区:

启动的时候出现如下错误:

[Ubuntu]如何调整分区大小_第1张图片

 

解决方法并不难,首先输入ls,如下所示:

[Ubuntu]如何调整分区大小_第2张图片

会列出目前磁盘上可用的所有分区,根据原先磁盘上的分区顺序大概确定Ubuntu所在分区是这几个中的哪一个(无法确定也没关系,一个一个试呗)

输入set,如下所示:

[Ubuntu]如何调整分区大小_第3张图片

会列出当前grub的设置,正是因为这些设置错误,才导致grub无法找到Ubuntu分区,既然grub找不到,那我们要手动指定了。

以(hd0,msdos1)为例,分别输入:

set root=hd0,msdos1

set prefix=(hd0,msdos1)/boot/grub

如下所示:

[Ubuntu]如何调整分区大小_第4张图片

注:这里的格式可能会随grub的版本不同而不同,只要和之前set列出的格式一致就可以了。

再输入set,发现我们已经设置好了:

 [Ubuntu]如何调整分区大小_第5张图片

输入insmod normal回车,发现还是出错了,说明我们之前指定的msdos1是错误的:

[Ubuntu]如何调整分区大小_第6张图片

只能继续设置,直至找到正确的分区。找到后执行:

grub rescue>normal(进入启动菜单)

按C进入命令行模式:

grub>setroot=hd0,msdos6

grub>setprefix=(hd0,msdos6)/boot/grub

grub>linux/vmlinuz  root=/dev/sda6(可按Tab键自动补全/vmlinuz)

grub>initrd/initrd.img (可按Tab键自动补全/initrd*)

grub>boot

进入ubuntu修复grub:

sudo update-grub

sudogrub-install /dev/sda //重建grub到第一个硬盘mbr

最后重启即可。

 

4. 验证结果

在终端中执行df -h查看调整后的分区大小,Ubuntu分区确实是扩大了!

 

参考文章:

·     “双系统(win7+ubuntu)ubuntu磁盘空间不足时解决方法”(http://www.cnblogs.com/zengyonggang/p/3582373.html)

·     “gruberror: unknown filesystem的解决办法”(http://www.linuxidc.com/Linux/2012-06/61983.htm)

·     “ 系统出现error:unknown filesystem grub rescue解决办法”(http://www.cnblogs.com/zengyonggang/p/3582172.html)

 

 

你可能感兴趣的:(ubuntu,Linux)