分区修改记录

以前是根目录/一个分区,/home目录一个分区,分别在固态硬盘和机械硬盘。

后来在/home下建了个swapfile当交换空间,以及将/var/lib/docker也移过来再软链回去。

为了进一步降低写操作对固态硬盘的寿命损耗,现打算将机械硬盘划出一个分区给目录/var,不过因为先前整个机械硬盘被格式化成lvm的pv,而/home则用了整个lv,现需要调整大小。

进入Kali Linux LiveCD

貌似不能修改挂载中的分区,所以进LiveCD的系统修改。

网上好像有说可以进入单用户模式(init 1)修改。

调整/home所在分区大小

本人硬盘500G,实际vg大小为465.76,打算留8G的swap分区和16G的/var分区。故决定将原本的/home分区调整到441G。

先在文件系统层面修改。

1
2
3
4
#不同情况下在mapper/目录下显示的是不同的,根据具体情况修改
e2fsck -f /dev/mapper/server--vg--home #先尝试文件系统检测与修复
resize2fs /dev/mapper/server--vg--home 441G
lvresize -L 441G /dev/mapper/server--vg--home

至此,vg卷会空出部分空间用以添加新的lv卷。

这里我有点不太明白,通过ls -l /dev/mapper/server--vg--home 可以看到其实是软链到/dev/dm-0,但是使用gparted查看时,前者能看到文件系统,而后者不能。

添加swap分区和/var分区并格式化

以下假设vg卷名称为server-vg,实际vg卷名称可用命令vgscan查得。

1
2
3
4
lvcreate -L 16G -n var server-vg #创建名为var的lv卷
lvcreate -L 8G -n swap server-vg #创建名为swap的lv卷
mkfs.ext4 /dev/mapper/server--vg--var #格式化为ext4
mkswap /dev/mapper/server--vg--swap #格式化为swap分区

文件搬迁

将原先/var目录里的文件搬过去。

这里假设原操作系统根目录/已挂载在/media/root/xxx-xxx-xxx/

1
2
3
4
mount /dev/mapper/server--vg--var /mnt
syncy -apx /media/root/xxx-xxx-xxx/var/* /mnt #此处也可用cp命令
mv /var /backup_var #先备份var目录,以防不测
mkdir /var

/home/docker内的文件搬回/var/lib/docker不做记录。

配置开机挂载

编辑原操作系统的fstab/media/root/xxx-xxx-xxx/etc/fstab),加入两行

1
2
/dev/mapper/server--vg-var /var ext4 defaults 0 2
/dev/mapper/server--vg-swap none swap defaults 0 0

若先前有swapfile什么的,直接注释掉。

重启并测试

退出Kali Linux,进入原系统,看相关分区是否正常挂载。

最后确认没有问题后,删除/backup_var,另外删除原先的swapfile(若有)