扩展文件系统
如果您发现树莓派的 SD 卡或 eMMC 的可用空间小于实际 SD 卡或 eMMC 的容量,您需要执行以下操作来扩展树莓派。如果系统中没有 raspi-config 工具,可以使用方法 2(使用 GParted 分区工具)。
方法 1:使用 raspi-config 工具
如果您使用的是 2023 年 6 月之后的镜像,并且添加了第三个读写分区,则此方法不再适用。请参考方法 2 和方法 3。
1. 打开 raspi-config。
sudo raspi-config
2. 选择高级选项:
3. 选择扩展文件系统:
4. 确认:
5. 在终端中执行命令 resize2fs /dev/mmcblk0p2
,确认 SD 卡已成功扩展。
方法 2:使用 GParted 工具
1. 通过 USB 将已烧录镜像的 SD 卡或 eMMC 连接到电脑。以 Linux 上的 GParted 分区工具为例,其他平台也有类似的分区工具。
打开 GParted 软件并选择 SD 卡:
2. 通过观察上图中的 SD 卡分区,可以发现 sdb3 分区前后有 2.01GB 和 21.87GB 的未使用空间,这是我们需要扩展的空间。
选择 sdb3 分区并点击调整大小。
3. 您可以将 sdb3 的白色分区拖动到最左和最右,或者将“前置空闲空间”填为“0”,“新大小”填为“最大大小”,然后点击右下角的调整大小。点击确定后,您会看到 SD 卡的所有未使用空间已被利用。
4. 将 SD 卡插入设备并启动。
方法 3:使用脚本
- 如果您使用的是 BliKVM 镜像,可以在 KVM 上运行以下脚本自动扩展空间。
1. 登录到 KVM 终端,确认系统具有读写权限,在任意路径下运行 vim expand.sh
,并将以下内容写入 expand.sh。
如果您的硬件是 v1、v2 或 v3,请使用以下脚本:
#!/bin/bash
set -x
resize_mmcblk0p3() {
echo "正在调整 mmcblk0p3 分区大小..."
parted /dev/mmcblk0 resizepart 3 100%
resize2fs /dev/mmcblk0p3
echo "mmcblk0p3 分区大小调整成功。"
}
echo "开始调整分区大小..."
resize_mmcblk0p3
echo "分区大小调整完成。"
如果您的硬件是 v4,请使用以下脚本:
#!/bin/bash
set -x
resize_mmcblk0p1() {
echo "正在调整 mmcblk0p1 分区大小..."
parted /dev/mmcblk0 resizepart 1 100%
resize2fs /dev/mmcblk0p1
echo "mmcblk0p1 分区大小调整成功。"
}
echo "开始调整分区大小..."
resize_mmcblk0p1
echo "分区大小调整完成。"
如果您使用的是 PiKVM 镜像,可以在 KVM 上运行以下脚本自动扩展空间。
1. 登录到 KVM 终端,确认系统具有读写权限,在任意路径下运行 vim expand.sh
,并将以下内容写入 expand.sh
。
#!/bin/bash
set -x
if grep -q 'X-kvmd\.otgmsd' /etc/fstab; then
part=$(grep 'X-kvmd\.otgmsd' /etc/fstab | awk '{print $1}')
# shellcheck disable=SC2206
splitted=(${part//=/ })
if [ "${splitted[0]}" == LABEL ]; then
label=${splitted[1]}
part=$(blkid -c /dev/null -L "$label")
else
label=PIMSD
fi
unset splitted
disk=/dev/$(lsblk -no pkname "$part")
npart=$(cat "/sys/class/block/${part//\/dev\//}/partition")
umount "$part"
parted "$disk" -a optimal -s resizepart "$npart" 100%
yes | mkfs.ext4 -L "$label" -F -m 0 "$part"
mount "$part"
unset disk part npart label
fi
2. 在终端中执行 bash expand.sh
,等待执行完成。