我有一个文件 FydeOS_for_PC_iris_v14.0-stable.img 只有6.8G,直接在ventoy里运行速度很快但是空间太小,可用空间只有1.3G,啥软件都装不了,所以我需要扩容这个镜像。
首先,给镜像增加5G的可用空间(未分配)
dd if=/dev/zero bs=1M count=5000 >> ./FydeOS_for_PC_iris_v14.0-stable.img
查看一下镜像内的分区:
sudo fdisk -l FydeOS_for_PC_iris_v14.0-stable.img
输出:
GPT PMBR 大小不符(14287004 != 24527004),将用写入予以更正。 The backup GPT table is not on the end of the device. Disk FydeOS_for_PC_iris_v14.0-stable.img:11.7 GiB,12557826560 字节,24527005 个扇区 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:gpt 磁盘标识符:1DF41F80-84D3-6B4E-B82A-D1B86AC5EEAA 设备 起点 末尾 扇区 大小 类型 FydeOS_for_PC_iris_v14.0-stable.img1 5898240 14286956 8388717 4G Linux 文件系统 FydeOS_for_PC_iris_v14.0-stable.img2 20480 53247 32768 16M ChromeOS 内核 FydeOS_for_PC_iris_v14.0-stable.img3 319488 5898239 5578752 2.7G ChromeOS 根文件系统 FydeOS_for_PC_iris_v14.0-stable.img4 53248 86015 32768 16M ChromeOS 内核 FydeOS_for_PC_iris_v14.0-stable.img5 315392 319487 4096 2M ChromeOS 根文件系统 FydeOS_for_PC_iris_v14.0-stable.img6 16448 16448 1 512B ChromeOS 内核 FydeOS_for_PC_iris_v14.0-stable.img7 16449 16449 1 512B ChromeOS 根文件系统 FydeOS_for_PC_iris_v14.0-stable.img8 86016 118783 32768 16M Linux 文件系统 FydeOS_for_PC_iris_v14.0-stable.img9 16450 16450 1 512B ChromeOS 保留 FydeOS_for_PC_iris_v14.0-stable.img10 16451 16451 1 512B ChromeOS 保留 FydeOS_for_PC_iris_v14.0-stable.img11 64 16447 16384 8M 未知 FydeOS_for_PC_iris_v14.0-stable.img12 249856 315391 65536 32M EFI 系统 分区表记录没有按磁盘顺序。
可以看到 FydeOS_for_PC_iris_v14.0-stable.img1 5898240 14286956 8388717 4G Linux 文件系统 ,这个4G大小的分区就是我们要扩容的分区。将这个分区的起点5898240 乘以512 (每个单元的字节数)得到 3019898880,这就是我们需要的偏移量 offset,等下挂载这个分区需要用到。
sudo fdisk -l FydeOS_for_PC_iris_v14.0-stable.img
然后将镜像挂载(偏移量从上面的计算得到):
挂载分区:
sudo mount -o loop,offset=3019898880 FydeOS_for_PC_iris_v14.0-stable.img /mnt
挂载镜像:
sudo losetup --find FydeOS_for_PC_iris_v14.0-stable.img
用lsblk查看系统磁盘分配情况:
lsblk -p
得到如下信息:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS /dev/loop0 7:0 0 8.9G 0 loop /mnt /dev/loop1 7:1 0 11.7G 0 loop /dev/nvme0n1 259:0 0 476.9G 0 disk ├─/dev/nvme0n1p1 259:1 0 100G 0 part │ └─/dev/mapper/ventoy 254:0 0 32G 0 dm │ ├─/dev/mapper/ventoy1 254:1 0 300M 0 dm /boot/efi │ └─/dev/mapper/ventoy2 254:2 0 31.7G 0 dm / ├─/dev/nvme0n1p2 259:2 0 200G 0 part /run/media/david/本地磁盘 └─/dev/nvme0n1p3 259:3 0 176.9G 0 part /run/media/david/1FFFC14652545540 /dev/nvme1n1 259:4 0 27.3G 0 disk ├─/dev/nvme1n1p1 259:5 0 27.2G 0 part /run/media/david/Ventoy └─/dev/nvme1n1p2 259:6 0 32M 0 part /run/media/david/VTOYEFI
可以看到 /dev/loop0 和 /dev/loop1 两个设备被挂载,其中 /dev/loop0是我需要调整的分区,而 /dev/loop1是整个镜像。输入:
sudo gparted /dev/loop0
在图形界面就可以看到灰色部分为未分配空间。
输入命令:
sudo resize2fs /dev/loop0
将未分配空间合并到该分区即可。再次进入Gparted可以看到扩容已完成: