最开始安装Ubuntu 16.04系统时考虑欠周,给该系统分配的磁盘空间过少,运行了几次Docker以后,很快就提示磁盘空间已满。最简单的方法当然是分配一个更大的磁盘分区,然后在该分区上重装系统。但我在原系统中装了不少软件,不想重装系统,因此只能另辟蹊径。
按快捷键“Ctrl + Alt + T”键打开命令行终端,输入如下命令(题外话,可以使用cat /proc/partitions命令查看现有各分区的总尺寸):

df -ah

查看磁盘空间使用情况,发现/home/var目录占用空间较多,于是决定将/home/var目录重新挂载到新的分区。网上有很多介绍这方面的文章,但都不太靠谱,一不小心,就会让系统重启进不了图形化界面。下面将我机器上的实际操作过程记录下来,以利于后续查询。

一、增加新分区

增加新分区的最简单的方式当然是加一块新硬盘,我比较穷,没钱买新硬盘,只能在挖掘潜能方面做文章。考虑到我的机器上还安装了Windows 10系统,但平时基本不用,于是就打上它的主意了。进入Windows 10系统,按如下步骤增加新分区:

1.1 打开控制面板

如下图所示,点击工具栏中的小圆圈,在搜索框中输入:“控制面板”,点击上方出现的“控制面板”程序。
1

1.2 打开管理工具

如下图所示,在控制面板界面中,点击“管理工具”程序。
2

1.3 打开计算机管理

如下图所示,在管理工具界面中,点击“计算机管理”程序。
3

1.4 打开磁盘管理

如下图所示,在计算机管理界面中,点击左侧的“磁盘管理”选项。
4

1.5 压缩卷

如下图所示,在磁盘管理界面中,选中Windows分区,点击鼠标右键,在弹出的菜单中选择“压缩卷”。
5

1.6 设置新分区大小

如下图所示,在压缩卷界面中,根据需要设置新分区的尺寸,点击“压缩”按钮。注意:对于压缩卷后产生的新分区,不要在Windows系统中进行任何格式化操作。
6

二、将/home/var目录迁移到新分区

因为在Ubuntu 16.04图形化界面中迁移/home/var目录可能会影响到显卡驱动的正常运行,稍有不慎就会导致系统无法正常进入图形化界面,因此后续操作全部在文本界面中完成。你可以将本文内容用相机拍下来,然后通过查看手机照片的方式完成后续操作。

2.1 以“root”用户身份进入Ubuntu 16.04系统单用户文本界面

进入Ubuntu 16.04系统登录界面,不要登录,直接按下快捷键“Ctrl + Alt + F1”进入文本登录界面,以“root”用户身份进入(Ubuntu 16.04系统默认未启用“root”用户,可以在命令行中输入sudo passwd root加以启用),执行如下命令进入单用户文本界面模式:

init 1

2.2 使用fdisk创建新分区

首先使用如下命令查看新分区位于哪个设备中。假如只有一块硬盘,自然就在/dev/sda中,假如有多块硬盘,那有可能在/dev/sda/dev/sdb/dev/sdc甚至/dev/sdd中(第一块硬盘为/dev/sda,第二块硬盘为/dev/sdb,依此类推)。我只有一块硬盘,肯定就在/dev/sda中。

fdisk -l

确定了新分区所处设备后,输入如下命令,进入fdisk分区管理界面:

fdisk /dev/sda

进入fdisk界面后,如下图所示,按“F”(大写)查看新分区情况;再按“n”(小写)创建新分区,后面直接敲回车键,按默认值设置分区序号、分区起始扇区、分区结束扇区(注意:一定要记住这个分区号,在我机器上分配了两个新分区:sda4sda8,其中sda4用来挂载/home目录,sda8用来挂载/var目录);再按“w”(小写)将修改情况写入磁盘;最后按“q”(小写)退出fdisk分区管理界面。注意,在fdisk分区管理界面中,可以随时按“m”(小写)查看帮助
7

2.3 使用mkfs格式化新分区

使用如下命令格式化新分区,我这里使用ext4格式(我机器上增加的分区是sda4sda8,在你机器上肯定要根据步骤2.2中新分配的分区序号而定):

mkfs.ext4   /dev/sda4
mkfs.ext4   /dev/sda8

2.4 修改分区加载配置文件/etc/fstab

首先,使用如下命令查看新分区的UUID号:

# 查看sda4的UUID
sudo blkid | grep sda4
# 查看sda8的UUID
sudo blkid | grep sda8

请记住上述UUID号。
使用如下命令编辑分区加载配置文件:/etc/fstab

vi /etc/fstab

在文件尾部加入如下内容(注意:UUID=60d33ae6-dcc9-461a-a68c-35138c00264f对应的是我机器上的sda4分区,UUID=7dd563e8-856b-42d8-aa6f-53fc5e1913f7对应的是我机器上的sda8分区):

# /home is on /dev/sda4
UUID=60d33ae6-dcc9-461a-a68c-35138c00264f   /home    ext4          defaults       0       2 
# /var is on /dev/sda8
UUID=7dd563e8-856b-42d8-aa6f-53fc5e1913f7   /var     ext4          defaults       0       2

2.5 挂载新分区

/media目录中新建如下两个文件夹:

cd /media
mkdir home
mkdir var

使用mount命令将新分区挂载到上述目录:

mount /dev/sda4 /media/home
mount /dev/sda8 /media/var

2.6 将/home/var目录内容复制到挂载分区

使用如下命令(我已测试可用),将/home/var目录中的所有内容复制到挂载分区

rsync -aqxP /home/* /media/home
rsync -aqxP /var/* /media/var

网上还有另一种方法(我没有测试过,如感兴趣可以尝试一下,建议使用上面的方法):

cp -apx  /home/* /media/home
cp -apx  /var/* /media/var

2.7 将原有/home/var目录改名,并创建新的/home/var目录

使用如下命令,将原有/home/var目录改名:

mv /home /home.old
mv /var /var.old

使用如下命令,创建新的/home/var目录,以便重启电脑能挂载新分区sda4sda8(请看2.3步修改配置文件/etc/fstab来理解这么做的原因):

mkdir /home
mkdir /var

2.8 重启电脑

使用如下命令,重启电脑:

shutdown -r now

2.9 删除/home.old/var.old/media/home/media/var目录

重启电脑登录进入Ubuntu 16.04系统图形化界面后,按快捷键“Ctrl + Alt + T”键打开命令行终端,输入如下命令,删除/home.old/var.old/media/home/media/var目录,给/目录腾出空间:

sudo rm -rf /home.old
sudo rm -rf /var.old
sudo rm -rf /media/home
sudo rm -rf /media/var
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐