由于年少无知,在安装ubuntu系统的时候,以为/temp是软件包安装时解压的缓冲,所以给/temp留了10G,而以为/var只是记录一些log而已,因此把仅存的1G分配给了它。随后在安装软件时出现“设备空间不够”的报错,看了log才知道解压的路径是在/var里。进入/var目录,发现/var目录里也有/temp和/cache。

https://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/var.html

http://blog.leanote.com/post/jesse/Linux%EF%BC%9A%E5%88%86%E5%8C%BA%E6%8C%87%E5%8D%97

  因此需要扩大/var的分区大小,df -h命令可知/var挂载在/dev/sda8下,我当时也是把sda剩下的区域分配给它,所以是最后这一块分区sda8。在网上查询的话,大部分推荐的是一个工具Gparted(https://gparted.org/)。该工具可以在电脑运行时打开,也可以像启动盘、winPE那样从光盘或者u盘进入。电脑运行时打开的缺点在于一些磁盘正在被使用,因此可能某些分区存在数据读写的过程,尤其像/var这样的目录。因此我决定制作一个U盘版的。

1、首先是下载镜像文件(https://gparted.org/download.php

2、然后使用一个工具Tuxboot,来将镜像文件烧录进U盘中。因为Tuxboot不支持win10,因此我是在ubuntu中操作的。(https://gparted.org/liveusb.php#linux-setup

在ubuntu中安装Tuxboot很简单(https://tuxboot.org/download/)。安装完后打开的界面大致如下。因为已经下载了镜像文件,所以选择下面的diskimage,然后选择iso文件,接着选择要写入的已格式化的U盘,然后点击ok即可。但是值得注意的是,u盘必须被格式化为FAT32格式,否则即使写入了镜像文件也没用。

最后将镜像文件写入U盘中成功的界面如下。

3、制作好U盘后,像平时装系统那样,U盘插入电脑,开机进入Gparted Live。前面是一些键盘映射和语言设置等等,我都使用默认的,即英语。(https://gparted.org/display-doc.php?name=gparted-live-manual

界面如下图所示,显示了各个分区。

4、接下来开始对分区进行操作,已知最后一块分区/dev/sda8被我挂载了/var,计划将/dev/sda3(90+G)保留50G,剩下的45G左右给/var。

接下来的操作主要是参考:https://gparted.org/display-doc.php?name=help-manual

①首先是选择/dev/sda3,然后点击Resize/Move。preceding是释放前面的空间,而following是释放后面的空间。

确定之后即可看到出现了一个45G的未分配分区,并且操作队列多了Shrink(收缩)这个操作。

②接着选择/var所在的分区/dev/sda8,点击Copy,然后再选择这个未分配的分区,选择Paste。/sda8中的内容主要就是/var目录。

复制到未分配分区后,再点击Resize/Move,得到如下。现在Copy of /dev/sda8中的内容与/dev/sda8的内容是相同的,只是空间变为了45G。并且可以看到操作队列多了Copy和Grow两个操作。点击Apply后操作队列才会执行,上述操作才会生效,并且可以看到Copy of /dev/sda8会被命名为/dev/sda9。

(注:以Gparted Live形式进入,所有的分区都是not mounted状态的,方便操作)

③由于/dev/sda8和它的复制副本内容相同,因此可以预见到进入系统会出现/var,会起冲突,因此应该需要将/dev/sda8的内容删除。

删除/var原来所在的/dev/sda8分区,然后得到一个未分配的分区(unallocated),在那里创建(create)一个分区,如下图所示,在这里,分区的名字和label我都没有输入,然后创建出来。点击上方的Apply(应用后),操作队列中(如图中红框处)的操作便会执行。新分区(New Partition #1)便会变成/dev/sda8。

因为涉及到删除分区,因此会弹出下图提示,即删除会使该分区的数据丢失。因此实际上最好是先做备份,可能会安全一些。但是我当时是没有备份/var的。

④ 上述执行完后,关闭该窗口,然后双击桌面的Exit,关机(Shutdown)。

⑤Gparted分区后重启,命令行输入df -h,可看到/var的分区已经变为45G。

因此基本成功了,但是后面我发现了一个小缺陷,就是新创建的1.3G分区(也即原来的/var删除后的那个分区)没有挂载在哪个目录下,因此像一个驱动器插在电脑上那样,应该是还没有mount上来,后面再去弄一下吧。

Gparted Live分区调整的更多相关文章

  1. 小米3移动版 分区 调整/合并教程(16GB/64GB)

    (必读)版权声明:米3移动版TWRP Recovery为XueferH适配,分区脚本以及双数据置换脚本的知识产权,智力成果权归XueferH所有. 注:此教程仅适用于Xiaomi MI 3-移动版(1 ...

  2. centOS 6.8下使用Gparted进行分区扩容

    centOS 6.8下使用Gparted进行分区扩容 ​ 机器环境:windows上运行的VMware虚拟机,系统为centOS 6.8. ​ 由于前期分区分配空间过小,无法满足后续的数据存储预期,所 ...

  3. ubuntu文件系统分区调整(解决目录空间不足、分配不均问题)

    1. 安装 tuxboot (ubuntu下烧写工具) sudo apt-add-repository ppa:thomas.tsai/ubuntu-tuxboot sudo apt-get upda ...

  4. linux交换分区调整

      SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用.它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且 ...

  5. CentOS7上lvm分区调整(resize2fs: Bad magic number in super-block while trying to open ...)

    问题描述:根目录空间占用率100% 首先用传统resize2fs方式调整分区: resize2fs -p /dev/mapper/centos-home 50Gresize2fs 1.42.9 (28 ...

  6. HQL之动态分区调整

    动态分区插入可以基于查询语句分出出要插入的分区名称.比如,下面向分区表插入数据的SQL: insert into table chavin.emp_pat partition(dname,loc) s ...

  7. gparted 当分区空间大于1T 用gparted分区

    lsblkfdisk -lparted -s /dev/sdb mklabel msdos parted -s /dev/sdb mkpart primary 0 100%lsblk dfparted ...

  8. 第4节 hive调优:动态分区调整问题

    执行如下截图中的语句时卡住了: 原因:yarn未启动,hive底层是要提交mapreduce到yarn上才能计算结果的. 之前启动yarn时,未执行jps查看是否已经启动.其实未启动成功: [root ...

  9. 记录4-Ubuntu 16.04用gparted调整分区

    几天在安装双系统时,没注意居然把swap分区设置成了50G.今天才发现,于是用gparted重新分区. 1. sudo apt-get install gparted 2. 重新用u盘启动进入ubun ...

随机推荐

  1. Python系列之 - 异常处理

    python提供的异常处理 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常 ...

  2. n对n

    创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建多对多的关系:ManyToMan ...

  3. python学习02

    python的数据类型 程序=数据类型+算法 1.数据类型:数据型,字符串,列表list,字典dict,set集合(),tuple元组() 1)数据型 int,整数型,理论上是无限大,不过受到机器内存 ...

  4. 深入浅出UE4网络

    UE4中的官方文档结构比较混乱,且有部分错误,不方便学习.笔者试图通过本文,整理出一篇关于UE4网络的文章,方便朋友们对UE4中的网络同步部分的认识,并有进一步理解.如有讲得不清楚明白的地方,还望批评 ...

  5. 安装vs2017后造成无法打开xproj项目无法打开

    安装vs2017后,再用vs2015打开xproj项目的时候会报错: Error MSB4019 The imported project "C:\Program Files\dotnet\ ...

  6. SQL数据插入

    T-SQL中提供了多个将数据插入到表中的语句:insert values.insert select.insert exec.select into和Bulk insert: 1.  insert v ...

  7. PHP 必知的 16 个编程法则

    以双下划线(__)开头的方法称为魔术方法 -__construct():类的构造方法: -__destruct():类的析构方法: -__call($funName, $arguments):当访问未 ...

  8. [原创]FPGA JTAG工具设计(二)

    经过前期打样 基于FT2232H的JTAG &UART板级已经初步形成 在Viado环境和ISE(13.2+)环境可以使用 速度支持10MHz/15MHz/30MHz 在ISE iMpact下 ...

  9. python的单、双、多分支流程控制

    if流程控制总结: 1.当满足条件时,执行满足条件的代码. 2.当执行完if语句内代码,程序继续往下执行. 单分支: if 条件成立,执行满足条件的代码 如下: if a>50: print(' ...

  10. Linux系统下安装JDK

    注意:linux系统下使用mount命令挂载Windows系统下的共享文件,详情见我的另一篇“Linux系统挂载Windows系统下的共享文件” 一.安装jdk 1.进入usr目录cd /usr 2. ...