Linux
如何創建一個壓縮的 buildroot 系統映像,該映像會擴展以填充它所快閃記憶體到的媒體的可用儲存空間?
我需要為具有不同儲存大小的各種 x86_64 EFI 系統創建一個 Buildroot 系統,但不幸的是,pc_x86_64_efi 配置創建了一個具有固定分區大小的 img 文件,而不是擴展到它被快閃記憶體到的媒體的完整大小的文件。如果我想讓它填充各種驅動器,我需要在文件系統配置中手動指定驅動器的大小,然後重新編譯,這是一個很大的痛苦,最終會生成一個 128GB 以上的海量圖像文件。我嘗試使用 resize2fs 從正在執行的系統中調整它的大小,但這不起作用。理想情況下,我希望它在刷新時擴展到驅動器的完整大小,或者在首次啟動時調整大小。這是可能的,還是超出了 Buildroot 的限制?
如果您已經建構了“parted”和“resize2fs”,您可以調整分區大小,調整文件系統大小,然後在腳本中重新啟動。
例如,這是我正在建構的一個系統,其中一個 500MB 圖像快閃記憶體到 16GB SD 卡上:
# parted -s /dev/mmcblk0 u s p Model: SD SL16G (sd/mmc) Disk /dev/mmcblk0: 31116288s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1s 65536s 65536s primary fat16 boot, lba 2 65537s 3111628s 3046092s primary ext4
第 2 行給出了磁碟的總大小,假設您需要調整大小的分區是最後一個分區,您可以發出以下命令將其擴展至最大值:
# parted -s /dev/mmcblk0 u s resizepart 2 31116287 # resize2fs /dev/mmcblk0 # reboot