yocto linux - 如何缩小磁盘映像

yocto linux - 如何缩小磁盘映像

菜鸟警报。

我使用 win32 磁盘成像器来备份 16Gb Scandisk SD 卡。我有一批 Verbatim 16GB SD 卡,我正在尝试将图像恢复到其中。 Win32 磁盘映像器抱怨它们的扇区较少。

阅读了很多帖子后,我想我可以dd用来conv=sparse创建一个较小的图像 sp 我......

  • 找到一张 32Gb 卡
  • 恢复了图像
  • 由于这创建了 2 个分区(一个 fat32 启动和一个 ext3),我使用未分配的空间创建了第三个分区然后尝试将原始的 2 个分区克隆到第三个分区上的文件,如下所示...

dd if=/dev/mmcblk0 bs=512 skip=8192 count=31108096 conv=sparse > /mnt/d/test.img

问题是,这个文件仍然很大

root@pcu:~# ls -al /mnt/d
total 1355300
drwxr-xr-x 3 root root        4096 Sep  7 17:55 .
drwxr-xr-x 3 root root        4096 Sep  7 17:40 ..
drwx------ 2 root root       16384 Sep  7 17:46 lost+found
-rw-r--r-- 1 root root 15927345152 Sep  7 18:09 test.img

我遇到的另一个问题是这是嵌入式芯片上的定制(yockto)linux,所以我不相信我可以使用 GParted。

我完全意识到,由于我缺乏经验,我可能错过了一些明显的东西,任何帮助/指示将不胜感激。

编辑

最终目标是拥有一个可以与 Win32 磁盘映像器一起使用的映像来写入 SD 卡。

答案1

我最终所做的是克隆第二个分区,缩小新分区,缩小第二个分区,将第三个分区克隆回第二个分区。其中“收缩”意味着使用 resize2fs 调整文件系统的大小并使用 fdisk 重新创建分区。然后我删除了第三个分区。最后,使用 Win32 磁盘映像器读取映像,记得勾选“只读分配的分区”框。

我最初尝试在第二个分区上使用“收缩”方法,而无需克隆它。这失败了。大概是因为它保存了操作系统文件。

我希望我有一个完整的 Linux,这样就可以创建一个可启动 USB 并使用 GParted 等。

相关内容