[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [tyndur-devel] [PATCH 1 of 2] build: dd if='/dev/zero' ... ist zu langsam
On Sat, Aug 14, 2010 at 08:45:42PM +0200, Andreas Freimuth wrote:
> 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.
Ja, du hast recht.
> >> +
> >> +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 ;)
Hm, ja. Würde es dir was ausmachen, trotzdem einen neuen Patch mit der viel
zu einfachen dd-Variante zu schicken? ;-) Und den anderen Patch auch
nochmal für das richtige Signed-off-by.