我有一张装有 Ubuntu 20.10 的 microSD 卡,用于 RaspberryPi 4。microSD 卡大小为 32GB,但总共只占用了大约 2GB。我想将其克隆到 16GB 的 microSD 卡上,虽然我知道如何使用 GUI 工具成功完成此操作,但我很难使用 CLI。
我目前想到的步骤如下:
- 关闭树莓派
- 取出 SD 卡并插入运行 Ubuntu 20 的计算机(显示为 /dev/sdb)
- 使用检查分区
parted -l
,显示我想要缩小的分区有编号2
。 - 由于此 microSD 卡上的分区已自动安装在此操作系统上,
umount /dev/sdb1
因此我使用以下命令卸载所有分区:umount /dev/sdb2
- 我运行文件系统检查并让它完成使用
e2fsck -f /dev/sdb2
- 我使用以下方法缩小文件系统
resize2fs /dev/sdb2 10G
- 我使用以下方法缩小分区
parted /dev/sdb resizepart 2 10G
此时,我打开 GParted 只是为了直观地验证我的工作,并且在分区 /dev/sdb2 上出现了此错误:
如果我现在将此 microSD 卡插入我的 RaspberryPi 4,它将无法启动并卡在以下屏幕上:
我只是在这里玩一下,所以我不怕丢失任何数据,我只是想学习如何使用 CLI 正确缩小 RaspberryPi microSD 的分区。
答案1
我自己也刚刚搞明白了。第 7 步之后,还需要一步:
resize2fs /dev/sdb2
缩小分区后,再次运行而不指定新大小,将文件系统扩展到新分区的限制。