本人电脑上安装了Win10 + Ubuntu 12.04双系统。前段时间因为在Ubuntu上做项目要安装一个比较大的软件,导致Ubuntu根分区的空间不够了。于是,从硬盘又分出来一部分空间,分给Ubuntu。于是有了这篇Ubuntu扩容过程记录,也可以当作是一篇教程吧。

1. 起因

最近在做一个项目,有关KinectFusion算法,需要用到CUDA。但是在我的Ubuntu中安装CUDA的时候,提示根分区空间不足,无法完成安装。

  1. Not enough space on parition mounted at /.
  2. Need 3548872704 bytes.
  3. Disk space check has failed. Installation cannot continue.

于是,开始着手对Ubuntu分区进行扩容。

2. 扩容前后各分区状态

在此次扩容前,我的整个硬盘上的各分区状态如下:

(注:上图是在分区扩容前在Ubuntu系统中安装的GParted软件显示得到的。)

其中可以看出,在整个硬盘的末尾有大约20G空间分配给了Ubuntu,并分成了几个分区,按顺序依次为:

  • /boot分区190M
  • swap分区(虚拟内存分区)3.81G
  • /分区(根分区)11.44G
  • /home分区4.55G

(注:由于分区格式化需要占用一部分空间,因此上面显示的分区大小小于实际的分区大小)

经过扩容操作,最后的Ubuntu分区状态如下:

(注:上图以及以下各相似图片是在分区扩容过程中在Parted Magic启动盘中的GParted软件显示得到的。)

其中可以看出,整个分配给Ubuntu的空间增加了15G,并且调整了个Ubuntu分区之间的顺序,各分区按顺序依次为:

  • /home分区9.55G(增加了5G)
  • /分区(根分区)21.26G(增加了10G)
  • /boot分区190M
  • swap分区(虚拟内存分区)4G

PS:调整分区的顺序的原因是:

  1. /boot分区和swap分区一般不会需要扩容,也就是说以后一般不会变动,因此将其放到磁盘最后;
  2. /home分区和/分区今后可能会再次扩容,而扩充需要的空间是从前面的Windows分区压缩来的,所以放在靠近Windows分区的位置。

3. 分区扩容操作步骤

下面详细记录分区扩容操作步骤。

(1) 制作Parted Magic启动盘

Parted Magic是一个轻量的Linux发布版(可用来制作U盘启动盘),包含了许多可用于硬盘分区以及数据恢复的自由软件。

参考:Parted Magic 分区魔术师 2015.11.15-dev版 BIOS,UEFI双启 —不再更新 - USB启动区 - 无忧启动论坛 - Powered by Discuz!

下载地址:http://pan.baidu.com/s/1pJ6vlgR

我下载的是镜像文件pmagic_2016_03_02.iso

下载完成之后插入U盘,用UltraISO打开pmagic_2016_03_02.iso,然后点击菜单“启动”->“写入硬盘映像”,然后点击“写入”开始制作启动盘。

制作完成之后拔出U盘即可。

(2) 从U盘启动电脑

将刚才的U盘插入电脑,然后将电脑重启,选择从U盘启动(具体操作依不同电脑型号有所区别,在此不赘述)。

从U盘启动后会看到该启动盘系统的界面如下:

(3) 打开GParted分区软件

打开GParted分区软件,即双击桌面上的图标:

(4) 调整分区顺序并扩容

因为要调整分区顺序,所以先将/home分区复制到前面空余的未分配的磁盘部分,然后将/boot分区和swap分区移动到原来/home分区所在的位置。具体步骤如下:

① 将/home分区复制到前面空余的未分配的磁盘部分的最前端,并调整大小为9.55G;

② 删除原/home分区;

③ 将swap分区复制到原/home分区的最后端,并调整大小为4G;

④ 将/boot分区复制到原/home分区除去现swap分区后剩余部分的最后端,也就是紧挨着现swap分区,大小不变(注意:此步需将Free space sollowing设为1M,否则会出错,但忘记当时出了什么错了);

⑤ 删除原/boot分区和原swap分区;

⑥ 调整/分区大小,使其充满所有剩余空间。

(5) 修复启动

参考:GParted – Frequently Asked Questions

Fixing Operating System Boot Problems

此时分区扩容已经完成,但是如果此时重启,会发现系统无法正常启动,因为分区变化导致引导程序出错了。

因此还需修复启动。

还是在启动盘系统中,打开终端,即点击下方任务栏中的图标:

执行以下命令(以root身份):

  1. mkdir /tmp/mydir
  2. mount /dev/sda8 /tmp/mydir (注:其中的`/dev/sda8`为我的`/`分区标识,根据自己情况修改为自己的`/`分区标识)
  3. mount /dev/sda11 /tmp/mydir/boot (注:同上,`/dev/sda11`为`/boot`分区标识)
  4. mount --bind /dev /tmp/mydir/dev
  5. mount --bind /proc /tmp/mydir/proc
  6. mount --bind /sys /tmp/mydir/sys
  7. chroot /tmp/mydir (此步可能输出一些信息,可以无视)
  8. grub-install /dev/sda (注:其中的`/dev/sda`为`/`分区所在硬盘的标识)
  9. exit

下面是我执行上面命令的截图:

(6) 重启系统

重启系统,搞定!

双系统Ubuntu分区扩容过程记录的更多相关文章

  1. macbook装双系统多分区其实很简单,你只要把macbook当作一台普通pc就可以了!

    macbook装双系统多分区其实很简单,你只要把macbook当作一台普通pc就可以了! 不用理会苹果官网的警告,苹果官网警告你只能用bootcamp安装且不能多分区,把人吓得不轻.其实不用过多担心, ...

  2. 如何在Virtualbox中对Ubuntu系统根分区扩容

    转载:             参见博客: https://blog.csdn.net/LEON1741/article/details/56494797 前在Virtualbox中安装了一个Ubun ...

  3. 双系统Ubuntu无法访问windows磁盘分区解决方法

    为了更好的体验各种操作系统,在电脑中安装双系统是很好的选择,但在使用中难免会遇到这样或那样的问题. 最近总是遇到Ubuntu系统下无法访问windows磁盘分区问题,看了系统日志发现是挂载磁盘出问题了 ...

  4. 解决win7和ubuntu双系统ubuntu不能上网的问题

    1.电脑基本配置如下. 我的电脑 戴尔 OptiPlex 9020 Mini Tower操作系统 Windows 7 专业版 64位 SP1 Ubuntu 14.04 2.装系统的过程不再赘述. 可以 ...

  5. 双系统Ubuntu 无 启用wifi选项

    安装好双系统进入ubuntu(14.04)后发现只能用有线连接,不能用wifi.网络连接里无启用wifi选项. 1.查询网卡型号,发现是BCM43132 命令:   lspci | grep -i n ...

  6. ubuntu16.04双系统创建分区

    ubuntu安装分区 安装ubuntu 图1:Ubuntu Linux分区向导 如果希望对分区过程进行完全控制,可以使用"其它"选项.单击"继续"按钮,安装向导 ...

  7. WIN10+Ubuntu14.04 双系统 ubuntu无法有线上网的问题

    注:在WIN10 的引导下安装了双系统,ubuntu有线无法上网,无线却可以. 上网一查,发现之前许多安装双系统的人都存在以上的问题. 常见的解决方法是: 在WINDOWS下关闭网络唤醒,还有一些检查 ...

  8. 安装Windows和Ubuntu双系统--Ubuntu安装过程识别不了硬盘

    Linux识别不了固态硬盘 安装过程: 自己本身的是Windows 10,一块125g 固态 ,一块1T的机械硬盘. 通过rufus 制作ubuntu的启动盘 在BIOS中关闭电脑的安全启动选项,并且 ...

  9. 双系统Ubuntu无法访问Win10磁盘分区解决方法

    今天在linux下打开win的NTFS硬盘总是提示出错了,而且是全部的NTFS盘都出错,其中sda3错误显示如下: Error mounting /dev/sda3 at /media/struggl ...

随机推荐

  1. Struts2中的EasyUI

    Struts2中的EasyUI 一.easy UI是类似于jQuery UI的插件库,它提供了丰富的各种常用插件:tree.datagrid... tree插件: 语法:$(selector).tre ...

  2. 嵌入式Linux驱动学习之路(十三)按键驱动-异步通知

    之前的按键方式: 查询: 极度占用CPU资源 中断: 在读的时候产生休眠,在没有信号的时候永远不会返回. poll机制: 在中断的基础上加上超时时间. 异步通知就是通过信号来传送. 首先在应用程序中有 ...

  3. 利用Theme自定义Activity间的切换动画

    转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/22990643 大多Android系统默认Activity间的动画切换效果为,右边 ...

  4. TCP协议的三次握手和四次挥手

    暂时需要的信息有: ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1 SYN(SYNchronization) : 在连接建立时用来同步序号.当SYN= ...

  5. c#获取下载路径

    Request.ApplicationPath  返回/或者iis下目录.如果个人网站是在iis网站下面新建的目录aaa,返回如:/aaa Request.Url.Authority  返回域名和端口 ...

  6. gradle项目中如何支持java与scala混合使用?

    之前写过一篇maven项目中java与scala如何混用,今天来看看gradle项目中如何达到同样的效果: 一.目录结构 基本上跟maven一样,tips:这一堆目录结构不用死记,后面会讲如何用gra ...

  7. 让所有的浏览器都能识别HTML5标签样式的小插件

    如今HTML5愈来愈引发大家的关注了,但目前支持HTML5的浏览器还不是主流,特别是国内用户近50%以上仍旧使用IE6,由于支持HTML5的IE9不支持Xp系统安装,这样未来很长一段时间,HTML5的 ...

  8. sql server cross/outer apply 用法

    这是 sql server 帮助文档关于apply的描述: 使用 APPLY 运算符(2005或以上版本)可以为实现查询操作的外部表表达式返回的每个行调用表值函数.表值函数作为右输入,外部表表达式作为 ...

  9. 利用百度API Store接口进行火车票查询

    火车票查询 项目源码下载链接: Github:https://github.com/VincentWYJ/TrainTicketQuery 博客文件:http://files.cnblogs.com/ ...

  10. TCP/IP协议

    1.为什么有了IP地址还需要MAC地址? 首先,数据或者信息在网络上的传输需要两个地址:目的地址和下一跳地址.其中IP地址就是目的地址,而MAC地址则是下一跳地址.目的地址在经过路由器转发的时候是不会 ...