如何缩小 SD 卡图像?

Lor*_*oh. 5 sd-card filesystems partitioning images

我使用 dd 命令对 16 GB SD 卡进行了映像。但是,该卡在 2 个分区(FAT32 和 ext3)上没有超过 4 GB 的数据。

我想将此图像传输到 8GB SD 卡上。如何缩小图像?

use*_*686 6

假设 Linux,可以做这样的事情:

  1. 使用 将图像附加到循环设备losetup。不要挂载任何分区。

    0 GB                              8 GB                             16 GB
    |--------fat32--------|--------------------ext3--------------------|
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用gparted,将第一个分区缩小到原始大小的 50% 以下。

    0 GB                              8 GB                             16 GB
    |--fat32---|          |--------------------ext3--------------------|
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将第二个分区移动到新创建的可用空间,缩小到 <50%。

    0 GB                              8 GB                             16 GB
    |--fat32---|---------ext3---------|                                |
    
    Run Code Online (Sandbox Code Playgroud)
  4. 确保第二个分区在 8 GB 之前结束。

  5. 拆下循环装置。

  6. 将图像文件截断为 8 GB。

注意:通常,您必须先缩小文件系统,然后调整分区大小以匹配文件系统。Gparted 只需一个“调整大小”步骤即可为您完成此操作,但其他工具可能不会。