其实网上有很多关于扩容的文章,但是没有解决我的问题所以当扩容后成功后还是决定做个记录方便解决类似问题。不论是虚拟机还是物理机的扩容都可以试试下面的方法。
问题分析
Ubuntu的图形界面非常直观,上手难度也不大,所以使用VM虚拟机装了个Ubuntu系统,搭建专门跑实验室的一些linux软件环境,用到后面 / 挂载的磁盘仅剩500M不到,根本不够用就很难受。但是重配环境又很麻烦所以还是决定扩容分区。
扩容首先得有空间,虚拟机就直接如下图般添加空间即可(需要删除所有快照),如果有未分配的空间直接拿来用不用此步。
物理机的话就准备新的硬盘挂载分区。实在不行也可以从其他分区挤出些空间。
注意除非是windows的动态磁盘,否则分区物理分配逻辑是从左到右的顺序,不可以跨分区分配给其他空间。
Ubuntu有图形分区工具 gparted ,我这里添加了20g的空间(固态空间剩的不多了,所以也没扩多少)
所以搞过windows分区的话看起来很快就能搞定,图形界面点两下就完事了。
上锁的分区需要卸载后操作完毕再挂载。
# 查看挂载分区空间命令
df -Th
# 安装 分区工具
sudo apt-get install gparted
文件系统 类型 容量 已用 可用 已用% 挂载点
udev devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 391M 2.2M 389M 1% /run
/dev/sda6 ext4 9.4G 8.4G 475M 95% /
tmpfs tmpfs 2.0G 111M 1.9G 6% /dev/shm
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/loop1 squashfs 2.5M 2.5M 0 100% /snap/gnome-system-monitor/163
/dev/loop2 squashfs 219M 219M 0 100% /snap/gnome-3-34-1804/66
/dev/loop3 squashfs 219M 219M 0 100% /snap/gnome-3-34-1804/72
/dev/loop4 squashfs 640K 640K 0 100% /snap/gnome-logs/103
/dev/loop5 squashfs 2.5M 2.5M 0 100% /snap/gnome-calculator/884
/dev/loop6 squashfs 242M 242M 0 100% /snap/gnome-3-38-2004/70
/dev/loop7 squashfs 2.5M 2.5M 0 100% /snap/gnome-system-monitor/160
/dev/loop0 squashfs 640K 640K 0 100% /snap/gnome-logs/106
/dev/loop10 squashfs 66M 66M 0 100% /snap/gtk-common-themes/1515
/dev/loop9 squashfs 56M 56M 0 100% /snap/core18/2128
/dev/loop11 squashfs 768K 768K 0 100% /snap/gnome-characters/726
/dev/loop12 squashfs 768K 768K 0 100% /snap/gnome-characters/723
/dev/loop13 squashfs 62M 62M 0 100% /snap/core20/1081
/dev/loop14 squashfs 56M 56M 0 100% /snap/core18/2074
/dev/loop15 squashfs 33M 33M 0 100% /snap/snapd/12883
/dev/sda1 ext4 268M 118M 132M 48% /boot
/dev/loop16 squashfs 33M 33M 0 100% /snap/snapd/12704
/dev/sda3 ext4 15G 5.2G 8.2G 39% /home
/dev/loop17 squashfs 62M 62M 0 100% /snap/core20/1026
/dev/loop18 squashfs 65M 65M 0 100% /snap/gtk-common-themes/1514
/dev/sda4 ext4 3.9G 63M 3.6G 2% /tmp
/dev/loop19 squashfs 2.5M 2.5M 0 100% /snap/gnome-calculator/748
tmpfs tmpfs 391M 40K 391M 1% /run/user/1000
/dev/loop20 squashfs 243M 243M 0 100% /snap/gnome-3-38-2004/76
一开始我是想直接把home分区(看上面的记录 home分区基本没用多少)复制挂载到扩容硬盘新建立分区。然后把home分区删除分给 /。 但是也不知道当时为啥这么憨😓 装系统时 home 交换空间 tmp boot都拿来做主分区,拿一个10g的逻辑分区挂载 / 。而且系统分区表选的是mbr导致一个磁盘置多四个主分区。所以这个计划根本不可行,不能在当前系统下操作加新主分区。(我在当前系统下肯定是不太好操作当前系统的磁盘的)
回想起windows有pe工具,说不定Ubuntu也有类似的工具。网上一查ubuntu启动盘自身就是一个linux系统,可以直接使用这些linux软件包,说干就干准备启动盘。
解决步骤
如果是虚拟机:
找到安装该系统对应的iso镜像,并在虚拟机硬件设置中选项cd/dvd中选中该镜像并勾选启动时连接时。然后如下图直接进bios设置启动项即可。
如果是物理机,就跟装系统一样做一个你当前主板bios能识别的启动盘即可,镜像要与当前系统一样,这里就不赘述启动盘的制作了。之后进入bios设置启动盘。
成功进入启动盘后,选择试用Ubuntu就进入到启动盘中的linux系统了,由于与主硬盘分离所以可以操作挂载的路径分区等。
同样的进入 gparted中,没有就联网安装一个。
接下来就可以随心改变分区了不过有几个注意点,重要数据一定要先备份,数据无价。(虚拟机的话直接加个快照,有问题就还原回来)
有些仍挂载的分区上锁状态要先禁用或卸载,之后再启用或是挂载 例如我的swap交换空间。
逻辑分区的大小扩容要先扩容其主分区大小,再操作逻辑分区 例如我这挂载 / 的sda6扇区就是逻辑分区。
移动分区时,如果改变了扇区头要注意该扇区内是否挂载了 boot uefi等启动分区可能回造成启动项无法识别。
您可以在GParted FAQ中学习如何修复启动配置。http://gparted.org/faq.php。我使用的mbr分区表没有uefi启动分区,bios是单独的扇区挂载上去的所以可以放心操作。
最后扩容就完成了,图形界面的操作没啥说的。只能感叹linux的强大,windows to go要是也能如此功能强大、配置方便就好了。