[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.