简介
rock3a的板子用32GB的SD卡作为启动介质,发现只划分了两个分区,剩下大概25GB的空间没有用到。想在wsl把这25GB多划分为一个分区,给利用起来,同时保持原有的两个分区里面的数据,文件系统格式不变。


过程
之前博客的文章已经提到了怎么在wsl上支持usb,这里已经支持上了。我们通过读卡器接到windows,再通过usbip转到wsl上,此时输入lsblk可以看到卡里确实有25GB没有利用起来。

这个利用方法,一种是我可以整张SD卡只划分两个分区,剩下的25GB全无损扩大到/dev/sdd2。一种是划分三个分区,第三个分区划分为25GB的大小。
无损扩大第二个分区
列出当前wsl的分区情况
sudo fdisk -l

这里可以看到我们的32GB的SD卡的分区情况,文件名字为/dev/sdd

开始用工具调整分区
sudo fdisk /dev/sdd

输入p,列出当前分区

记录下sdd2的起点,这里是1081344
然后输入d,回车,再输入2,回车,那么就删除了2号分区,也就是sdd2

此时可以看一下分区表(输入p,回车),只剩sdd1了

接下来输入n,回车,表示要新建分区。
fdisk要求选择是主分区还是扩展分区。这里选择主分区,即输入p,回车。接着输入2,回车,表示创建sdd2。然后输入起始扇区,我们把刚刚记录的1081344填写进去,或者这里也已经帮我们算好默认值了。然后输入结束扇区,可以使用默认值,也就是最后一个扇区。
这里不要把signature去掉,选择n

最后,输入w,回车,把修改后的分区表写入SD卡即可。

然后输入命令修复可能存在的文件系统问题
sudo e2fsck -af /dev/sdd2
sudo resize2fs /dev/sdd2

新建第三个分区
跟前面步骤差不多


最后同样修复下可能存在的文件系统问题,不过这次是针对/dev/sdd3
sudo e2fsck -af /dev/sdd3
sudo resize2fs /dev/sdd3
SD卡启动
用了新建了分区后的SD卡启动rock3a,可以看到这里识别到了第三个分区p3

这里直接挂载会提示错误,因为我们还没把mmcblk1p3格式化为ext4格式(总是会犯这种错误)

格式化为ext4格式
mkfs.ext4 /dev/mmcblk1p3

挂载ext4文件系统
mount -t ext4 /dev/mmcblk1p3 /sd3

如果想要开机自动挂载,就把挂载命令加在/etc/profile文件就好

因为ubuntu通过apt下载的软件包,一般都会放在/var/cache/apt/archives中,为了把软件包放到我们新建的分区,我们直接编辑/etc/apt/apt.conf,(文件可能不存在)改变我们存放的路径
dir::cache::archives /sd3/apt-archives;

其他
在前面的Do you want to remove the signature的时候,一开始选择了Y。然后貌似用卡去启动,出现了些奇奇怪怪的问题,感觉可能损坏了文件系统的分区表?等后续学习文件系统再来看这个问题。