From: Michael A Cassaniti Date: Wed, 17 Aug 2022 05:52:53 +0000 (+1000) Subject: Use chunked reads when inserting partition X-Git-Tag: v14~80 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=154f59f1797e98bac2de671435ba40081fa08a30;p=thirdparty%2Fmkosi.git Use chunked reads when inserting partition --- diff --git a/mkosi/__init__.py b/mkosi/__init__.py index 9d0c8c424..f540f768f 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -3713,7 +3713,10 @@ def insert_partition( # Let's discard the partition block device first, to ensure the GPT partition table footer that # likely is stored in it is flushed out. After all we want to write with dd's sparse option. run(["blkdiscard", path]) - path.write_bytes(blob.read()) + + # Without this the entire blob will be read into memory which could exceed system memory + with open(path, mode='wb') as path_fp: + os.sendfile(path_fp.fileno(), blob.fileno(), offset=0, count=blob_size) return part