You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何扩大树莓派dockerpi镜像中/dev/root分区的容量

dockerpi 模拟树莓派环境磁盘扩容方案

以下方案完全适配lukechilds/dockerpi项目默认运行场景,操作步骤如下:

前置准备

  • 停止正在运行的dockerpi容器:
    # 查看运行中的容器,找到dockerpi对应的容器名/ID
    docker ps
    # 停止容器
    docker stop <容器名/ID>
    
  • 导出容器内原始的树莓派系统镜像,避免原有数据丢失:
    docker cp <容器名/ID>:/sdcard/filesystem.img ./original_sdcard.img
    

扩容镜像文件

  • 创建指定大小的空镜像文件,示例为扩容到8G,可按需修改数值:
    fallocate -l 8G new_sdcard.img
    
  • 将原始镜像内容写入新的空镜像:
    dd if=./original_sdcard.img of=./new_sdcard.img conv=notrunc status=progress
    

调整分区与文件系统

  • 将新镜像挂载为loop设备:
    sudo losetup -fP ./new_sdcard.img
    
  • 查看镜像对应的loop设备号,示例输出对应设备为/dev/loop0:
    losetup -l | grep new_sdcard.img
    
  • 进入parted交互工具调整分区表:
    sudo parted /dev/loop0
    
    交互界面依次执行以下操作:
    1. 输入print查看分区信息,确认第二个分区为root分区
    2. 输入resizepart 2,提示结束位置时输入100%
    3. 输入quit退出parted
  • 检查并扩展root分区的ext4文件系统:
    # 先执行文件系统检查
    sudo e2fsck -f /dev/loop0p2
    # 扩展文件系统到整个分区大小
    sudo resize2fs /dev/loop0p2
    
  • 卸载loop设备:
    sudo losetup -d /dev/loop0
    

使用扩容后镜像启动容器

运行容器时挂载新的镜像文件即可:

docker run -it \
  -v ./new_sdcard.img:/sdcard/filesystem.img \
  lukechilds/dockerpi:latest

进入树莓派系统后执行df -h即可验证扩容结果。

注意事项

  • 所有操作前请备份original_sdcard.img,避免操作失误丢失数据
  • 若系统未安装fallocate、parted等工具,可通过对应包管理工具(如apt、brew)提前安装
  • Windows/Mac系统可使用WSL2执行上述所有操作,逻辑完全一致

内容的提问来源于stack exchange,提问作者Cam.Davidson.Pilon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 21:54:06