从命令行收缩 .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
通常的警告 - 在做这样的事情之前请备份所有重要数据,等等等等:) ...祝你有美好的一天