raspi-config

最简单的方法是使用系统自带的配置工具:

sudo raspi-config

选择 Advanced Options → Expand Filesystem,按照提示重启即可。

手动扩展

原理

通常 SD 卡有两个分区:启动分区(mmcblk0p1)和系统分区(mmcblk0p2)。要把未使用的空间加入系统分区,常用做法是删除 mmcblk0p2 并以相同起始扇区重新创建一个扩展到末尾的新分区,然后调整文件系统大小。

该操作会修改分区表,请先备份重要数据并确保使用的起始扇区与原分区一致。

操作步骤

  1. 查看当前挂载与空间情况:

    df -h
    
  2. 查询 mmcblk0p2 的起始扇区:

    cat /sys/block/mmcblk0/mmcblk0p2/start
    

    记录该数字(后续创建分区时需相同起始扇区)。

  3. 使用 fdisk 修改分区表:

    sudo fdisk /dev/mmcblk0
    

    在 fdisk 交互中依次执行:

    • 输入 d,选择 2,删除第二分区;
    • 输入 n,选择 p(主分区),分区号 2
    • 当提示 First sector 时输入之前记录的起始扇区;
    • 当提示 Last sector 时直接回车使用默认(表示使用剩余空间);
    • 输入 w 写入分区表并退出。
  4. 重启,使内核加载新的分区表:

    sudo reboot
    
  5. 重启后调整文件系统大小:

    sudo resize2fs /dev/mmcblk0p2
    

完成后再次运行 df -h 检查系统分区已扩展到可用空间。

注意事项

  • 在修改分区表前务必备份重要数据;
  • 确保使用的起始扇区与原分区一致,否则可能导致数据丢失;
  • 对于使用其他文件系统(如 btrfs、xfs)的情况,调整文件系统的命令不同。

参考链接