介绍

Linux系统镜像文件(.img文件或.fw文件)大约有3.0GB大小。当把系统镜像文件烧写到MicroSD卡或eMMC NAND Flash后,你会发现“/”目录所在的系统分区只有3G大小的可用空间。由于这些存储空间会很快被用完,这可能会引起麻烦。例如安装一个emacs软件就要占用200M的存储空间。


因此我们需要扩展根目录系统分区。例如,有一个8GB大小MicroSD卡或8GB大小的eMMC  Flash,我们想要把剩余的存在空间扩展到根目录所在的分区。

parted:是一个硬盘分区和分区扩展工具,它允许你创建、撤销、扩展、移动和复制ext2、linux-swap、FAT、FAT32和reiserfs分区。它能够创建、扩展和移动Macintosh HFS分区,也能够检测jfs、ntfs、ufs和xfs分区。它对于新系统创建存储空间,重新组织硬盘空间使用和复制数据到新硬盘非常有用。

resize2fs:能扩展ext2、ext3或ext4文件系统。他能够扩大或缩小设备上未挂载的文件系统。 如果文件系统已经挂载,也能够扩展已挂载的文件系统,只要内核支持在线扩展分区。

  1. sudo parted /dev/mmcblk0                        #mmcblk0表示MicroSD卡或eMMC NAND Flash
  2. GNU Parted 3.2
  3. Using /dev/mmcblk0
  4. Welcome to GNU Parted! Type 'help' to view a list of commands.
  5. (parted) print                          #查看分区
  6. Model: SD SL08G (sd/mmc)
  7. Disk /dev/mmcblk0: 7948MB
  8. Sector size (logical/physical): 512B/512B
  9. Partition Table: gpt
  10. Disk Flags:

  11. Number  Start   End     Size    File system  Name     Flags
  12. 1      8389kB  58.7MB  50.3MB  fat16        primary  msftdata
  13. 2      58.7MB  3670MB  3611MB  ext4         primary  msftdata

  14. (parted) resizepart                    #扩展分区
  15. Partition number? 2                    #选择分区2
  16. End?  [3670MB]? -1                     #扩展到最末
  17. (parted) print                         #查看分区
  18. Model: SD SL08G (sd/mmc)
  19. Disk /dev/mmcblk0: 7948MB
  20. Sector size (logical/physical): 512B/512B
  21. Partition Table: gpt
  22. Disk Flags:

  23. Number  Start   End     Size    File system  Name     Flags
  24. 1      8389kB  58.7MB  50.3MB  fat16        primary  msftdata
  25. 2      58.7MB  7947MB  7888MB  ext4         primary  msftdata

  26. (parted)  q
  27. Information: You may need to update /etc/fstab.

  28. sudo reboot
  29. sudo resize2fs /dev/mmcblk0p2

复制代码

(注意:/dev/mmcblk0表示MicroSD卡, /dev/mmcblk1表示eMMC NAND Flash。 parted 2.3及以下版本不支持动态分区。)


另请参阅 


​http://wiki.lemaker.org/LeMaker_Guitar:How_to_resize_system_partition/zh-hans​​http://www.thegeekstuff.com/2011/09/parted-command-examples/

http://www.gnu.org/software/parted/manual/parted.html

http://man.he.net/man8/resize2fs

http://man.he.net/?topic=parted§ion=all