Am 14.08.2010 20:28, schrieb Kevin Wolf: > On Sat, Aug 14, 2010 at 02:10:58PM +0200, Andreas Freimuth wrote: >> >> * Beim Erstellen von leeren Images auf dd verzichten, statt dessen ein >> kleines Python-Script verwenden >> >> Signed-off-by: Andreas Freimuth <m.nemo@xxxxxxx> >> --- >> build/scripts/empty_file | 24 ++++++++++++++++++++++++ >> build/scripts/image_cdrom | 2 +- >> build/scripts/image_floppy | 2 +- >> build/scripts/image_hd | 4 ++-- >> 4 files changed, 28 insertions(+), 4 deletions(-) >> >> diff --git a/build/scripts/empty_file b/build/scripts/empty_file >> new file mode 100755 >> --- /dev/null >> +++ b/build/scripts/empty_file >> @@ -0,0 +1,24 @@ >> +#!/usr/bin/python >> +# -*- coding: UTF-8 -*- >> + >> +# Eine leere Datei mit einer bestimmten Größe erzeugen >> +# Parameter: >> +# 1. Dateiname >> +# 2. Dateigröße >> +import sys >> + >> +def empty_file(filename, size): >> + f = open(filename,"wb") >> + if not f: >> + sys.exit(1) >> + >> + f.seek(size - 1) >> + f.write('\0') >> + f.close() > > Funktioniert nicht für size = 0 und verkleinert schon vorhandene Dateien > nicht. f.truncate (oder wie auch immer das heißen mag) wäre > wahrscheinlich besser. Ok das mit der 0 stimmt. Aber schon vorhanden Dateien werden auch verkleinert. mit 'w' wird eine evtl. Vorhanden Datei ersetzt. > >> + >> +if __name__ == "__main__": >> + if len(sys.argv[1:]) != 2: >> + print sys.stderr, "using: %s <filename> <size>" % sys.argv[0] >> + sys.exit(1) >> + >> + empty_file(str(sys.argv[1]), int(sys.argv[2])) > > Tut das ganze nicht dasselbe wie dd of=$file seek=$size count=0? (Bzw. > in deiner Version auch noch conv=notrunc, aber das halte ich wie gesagt > für einen Bug und nicht für ein Feature) Das hat zwar, mit dem passenden 'bs', den gleichen Effekt, aber es ist viel zu einfach, und außerdem hat es 0-Bug nicht ;) > > Die Idee, nicht erstmal endlos Nullen zu schreiben, ist aber gut. > > Kevin
Attachment:
signature.asc
Description: OpenPGP digital signature