如何扩展根分区

  1. 1. 说明

说明

修改根分区其实不难,只是时间可能比较长,最主要的修改有两个,/etc/fstab和引导,引导可以用 sudo update-grub 来更新,fstab则需要自己根据情况来修复,截图我会用16.04修改17.04的根分区,修改16.04的根分区时间太长,需要用麒麟的启动盘,版本无所谓,启动电脑,这里是把16.04当做启动盘启动之后的系统来用,需要说明的一点是,有的设备文件是不同的比如,这里是单硬盘双系统,你的可能是双硬盘双系统,不要全按照文中设备文件来写,文章尽量的描述应该找的分区特征,大家根据实际情况修改,文章会尽量啰嗦的写清楚,宁可多说不能漏说,在这里漏了你的电脑可能就开不了机,所以最好把这个读完再操作.

  1. 首先查看自己的根分区在哪个分区上,打开gparted就可以看到了,这是我在17.04下截的图 [图1] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114832fjg2dqvxgedddg8d.png),可以看到根分区所在的地方时/dev/sda7,那么sda7就是我们要扩大的分区,记住分区号码就可以了,因为sda可能会更改。 然后双系统的换到另一个Linux,或者用麒麟启动盘启动电脑,然后打开gparted,如果发现打开的磁盘没有自己要修改的分区,可以点击右上角切换磁盘,但是切换磁盘找到自己的分区号以后下边所有的分区操作都是以你新找到的分区进行操作的,你只要把sda7替换成你自己的分区就可以。[图2] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114832r3yqn8cq2cwq7ccv.png)

  2. 如图,17.04装在了/dev/sda7,所以我可以切sda12或者sda8,我选择把/dev/sda12的分区切出来5G,这里是实验,大家可以根据自己的需要修改,切前边还是切后边,都可以。这是无损的,切记要修改的分区不能挂载。
    注意:所有要修改的分区都不能挂载,已经挂载的可以在分区上右键选择卸载,不修改分区的是无所谓的,已挂载的分区前会出现一个钥匙,就像我的/dev/sda1那个一样。
    首先从/dev/sda7前边或者后边的分区切出来一部分,我切的是前边的sda12。[图3] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114832sv6vdz4c3ndnkgrt.png)
    [图4] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114832q0oubktydhmtthdd.png) [图5] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114832wx6xv6xc6zvf5w5e.png)。

  3. 因为我要在分区之后切出来5GB的空间,所以在之后的空余空间输入5120,如果希望在分区前边切出来空余的空间就只修改之前的空余空间,但是不推荐修改之前的空余空间,分区数据少的话还好,数据多的话最后修改大小的时候会很耗时间,输入完毕后回车之后点击调整按钮,会变成下边这样。[图6] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114832gf96nc1ktqzne79t.png)。

  4. gparted不会直接操作,他会等你点击应用后把你的操作按照顺序执行,这是如果执行修改的分区分布,下边则是执行的步骤顺序,然后同样的方式,把sda7扩大,这是选择调整sda7之后显示的窗口。[图7] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833wjjofhhujzf22hya.png).

  5. 我们可以拖动前边的箭头拖动到最前边,之后点击修改,然后会弹出一个窗口,提示可能无法启动,这个没事,但是Windows我好像没试过,点击确定之后是这样的 [图8] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833avyh9wffjd9wwify.png)。

  6. 然后点击上边的应用,就会按照你的步骤顺序来执行操作,有的操作是比较浪费时间的,所以有时候是需要等待的,在应用前边的是撤销,做错了可以用这个撤销掉,所以最好在应用前检查下 [图9] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833i5njn1nnn2kqk9ya.png)。

  7. 点击应用后会出现个应用操作到设备,点击应用即可,然后会出现具体的操作步骤 [图10] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833x15pvso2ja92c9cf.png).

  8. 在分区后边缩小分区比较快,如果在分区前边缩小,会移动整个分区的数据,速度的话,你自己想想,扩大分区倒是不用太长时间,这是我扩大之后的分区 [图11] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833wajhlg5d53uml3o3.png)。

  9. 然后打开文件管理,进入sda7所在的挂载目录,右键在此打开终端(表述可能不同,意思就是在这个地方打开一个终端),这是我的终端 [图12] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833o5cco0xtlcb5ztlc.png)。

  10. 终端默认都会显示当前的所在路径比如现在我的终端是在/media/root/17.04打开的,这个路径如果是用绝对路径挂载的话需要用到,具体的路径可以在自己的终端上查看,这里是相对路径是用不到的然后执行三条类似于新建挂载点的命令。
    sudo mount –rbind /dev dev
    sudo mount –rbind /proc proc
    sudo mount –rbind /sys sys
    注意:这是boot没有单独分区的情况,如果单独分区了还需要再挂载boot分区到boot目录
    假设boot分区在/dev/sda3
    sudo mount /dev/sda3 boot
    如果是efi还需要再挂载efi分区,假设efi分区在/dev/sda2
    sudo mount /dev/sda2 boot/efi
    然后执行
    sudo chroot .
    注意:最后是有一个英文状态下的点的。
    此时你的用户会变成root,目录会变成根目录也就是/ [图13] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833wmpko7a72mpqyohm.png)

  11. 然后在这个终端执行 update-grub [图14] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833i6ufr1bs6pussrs3.png)

  12. 这样引导就修复完成了
    注意:此处针对的是单系统的引导,多Linux系统的引导最好再用主引导来修复,第三方引导就只能自己修复了,之后还有最最重要的一步修改fstab,不修改fstab的话,虽然能启动内核但是是不能挂载根分区的,也就不能顺利启动系统。
    进入17.04所在分区的etc目录,然后打开终端,用管理员权限编辑fstab,注意:不是你现在使用的系统,是之前调整的分区那里的目录
    输入 sudo gedit fstab
    我们主要修改的是圈住的部分,那里是根分区的UUID,因为我们修改了分区,所以这里可能会被改变,我们需要手动修改下,如果对比没有变化的话,就可以不用修改 [图15] (https://www.ubuntukylin.com/ukylin/data/attachment/forum/201912/27/114833p99llub5l542br2b.png)。

  13. 打开gparted
    在17.04所在的分区右键,选择最底下的“信息”,弹出来这个,我们只要复制圈住的部分,就是UUID那里就可以了,快捷键Ctrl+C,如果右键没有复制的话。 图16。 这里分区的UUID没有被改变,我们可以不修改,如果发现gparted的UUID和fstab里边的不同,那么就把gparted里边的UUID替换到fstab里保存一下,然后就可以开机了。

本文撰写过程中参考了以下文章:
https://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=191476