从命令行收缩 .img 文件

从命令行收缩 .img 文件

从命令行收缩 .img 文件

我需要能够缩小 .img 以便在其他驱动器上使用。我可以使用 来执行此操作gparted,但并不总是有 GUI,所以我想将gparted下面的步骤转换为parted

详细地说,这是我使用gparted

插入 SD 卡

$ lsblk

复制图片

$ sudo dd bs=4M if=/dev/mmcblk0 of=rp4-ubuntu-server-22.04-fresh.img status=progress oflag=sync

创建环回设备

$ sudo losetup -f
$ sudo losetup /dev/loop0 /home/phil/dl/rp4-ubuntu-server-22.04-fresh.img
$ sudo partprobe /dev/loop0

调整分区大小(这是我需要帮助的地方!)

$ sudo gparted /dev/loop0

调整大小 --> 拖动到所需大小 --> 应用 --> 退出gparted

完成环回设备

$ sudo losetup -d /dev/loop0

查找最后一个扇区

$ fdisk -l /home/phil/dl/rp4-ubuntu-server-22.04-fresh.img
   Disk /home/phil/dl/rp4-ubuntu-server-22.04-fresh.img: 59.63 GiB, 64021856256 bytes,
125042688 sectors
   Units: sectors of 1 * 512 = 512 bytes
   Sector size (logical/physical): 512 bytes / 512 bytes
   I/O size (minimum/optimal): 512 bytes / 512 bytes
   Disklabel type: dos
   Disk identifier: 0x1b140081

   Device                                           Boot  Start     End Sectors  Size Id Type
   /home/phil/dl/rp4-ubuntu-server-22.04-fresh.img1 *      2048  526335  524288  256M
c W95 FAT32
   /home/phil/dl/rp4-ubuntu-server-22.04-fresh.img2      526336 7739391 7213056  3.4G 83 Linux

调整 .img 的大小

$ sudo truncate --size=$[(7739391+1)*512] /home/phil/dl/rp4-ubuntu-server-22.04-fresh.img

您能向我演示如何gparted使用 cli 完成该步骤parted吗?

答案1

是的。下面是我的做法。

假设您的帖子中提供了数据,那么这应该可以解决问题:进入 parted 应用程序来调整所需分区的大小:

parted /dev/loop0

检查当前状态:

print

假设您想要调整第二个分区的大小 - 并且您希望第二个分区在“7739391”扇区上“结束”,则可以使用“resizepart”(在“parted”CLI 内)调整所需分区的大小:

resizepart 2 7739391s

你可以使用 再次检查print。如果一切正常,保存并退出 parted

quit

通常的警告 - 在做这样的事情之前请备份所有重要数据,等等等等:) ...祝你有美好的一天

相关内容