tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von Raubkopierer
  • 1 Beitrag von Raubkopierer
ERLEDIGT
JA
ANTWORTEN
10
ZUGRIFFE
1101
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Feb 2004
    Ort
    Leinfelden-Echterdingen
    Beiträge
    781
    Hallo!

    wir haben einige unserer Server in die ESX Umgebung geladen, jetzt benötigen wir die alten Kisten nicht mehr. Bevor die nun auf dem Schrott landen dürfen, müssen die Festplatten sauber gelöscht werden. Es handelt sich dabei um unterschiedliche Server mit unterschiedlichen SCSI Controllern etc.

    Das Tool VS-Clean vom BSI hat bei den Desktop-PCs mit IDE noch saubere Arbeit geleistet, doch bei den Servern hat das Tool anscheinend seine Grenze erreicht. Ich suche daher nach einem Tool (egal ob Windows oder Linux), welches ich in einer PE/Live-Umgebung zur Formatierung einsetzten kann. Da ich mich in der Live-CD Erstellung für Linux gar nicht auskenne, dafür aber schon PE Erfahrung habe, wäre mir ein Windows Tool am liebsten.

    Jetzt kommt das Schwierigste: Es darf (erstmal) nichts kosten. Wir haben wie gesagt schon VSClean, noch ein Tool kaufen möchte mein Chef nicht. Wenns nicht anders geht, na denn muss es eben sein.

    Beste Grüße
    meilon
     
    Bitte dran denken!
    Wenn eure Frage geklärt ist, markiert nach eurer Antwort den Thread als erledigt und bewertet die Antworten

  2. #2
    Avatar von Raubkopierer
    Raubkopierer Raubkopierer ist offline Mitglied Diamant
    Registriert seit
    Feb 2007
    Ort
    Saultitz (Sachsen)
    Beiträge
    1.700
    Blog-Einträge
    7
    Prinzipiell eignet sich zum Löschen wunderbar das Buildin-Tool dd, das Byteweise Daten auf die Festplatten schreibt. Da es kein Problem ist mit einer LiveCD die Festplatten einzeln anzusprechen, sprich um eventuelle Raids herum etc. kann man jede Platte einzeln je nach belieben mit Nullen oder Zufallszahlen überschreiben (/dkmlmlnev/zero und /dev/urandom). Natürlich nimmt das ganze mit Zufallszahlen mehr Zeit in Anspruch als ohnehin schon aber daran sollte es ja nicht mangeln.

    Code bash:
    1
    2
    3
    
    dd if=/dev/zero of=/dev/devicefile
     
    dd if=/dev/urandom of=/dev/devicefile

    Weitere Optionen sind in der man-page nachlesbar. Unter Umständen befinden sich die betreffenden Device-Files je nach Controller auch in Unterverzeichnissen unter /dev. Sollte mit mount ja relativ leicht heraus zu finden sein wo die sich befinden.
     
    Albert Einstein sagte einmal:
    Es gibt 2 Dinge die unendlich sind: Das Universum und die Dummheit der Menschen. Beim Ersten bin ich mir allerdings nicht ganz sicher.

    Stoppt die Vorratsdatenspeicherung!

  3. #3
    Registriert seit
    Feb 2004
    Ort
    Leinfelden-Echterdingen
    Beiträge
    781
    Uff, aufs einfachste komme ich wieder nicht Das ganze in ein Script gepackt und ich muss nicht den ganzen Tag die 4 Etagen zwischen Serverraum und meinem Büro zurücklegen

    Da ich es nach BSI-Norm machen muss: Wie bekomme ich 0xFF und 0xAA geschrieben? VSITR schreibt vor, dass man die Festplatte in 7 Durchgängen mit unterschiedlichen Chars (0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xAA) beschreiben muss. Wie löse ich das mit dd?
     
    Bitte dran denken!
    Wenn eure Frage geklärt ist, markiert nach eurer Antwort den Thread als erledigt und bewertet die Antworten

  4. #4
    Avatar von Raubkopierer
    Raubkopierer Raubkopierer ist offline Mitglied Diamant
    Registriert seit
    Feb 2007
    Ort
    Saultitz (Sachsen)
    Beiträge
    1.700
    Blog-Einträge
    7
    Ich würde da ja jetzt einfach den Standard wechseln ...
    Denn ein Special Character Device wie /dev/zero würde sich nur durch ein entsprechendes Kernelmodul erzeugen lassen.
    Da bleibt eigentlich nur noch die Bytes mit einem Skript oder Programm an den stdout zu übergeben. Dies geht etwa wunderbar mit Python und sollte i.d.R. immer noch schneller als die Festplatte sein:

    Code python:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    #!/urs/bin/env python
     
    import sys
     
    bytes = "\xff" * 4096
     
    while True:
        try:
            sys.stdout.write(bytes)
        except IOError:
            pass

    Dann simpel dd vom stdin lesen lassen und voila:

    Code bash:
    1
    
    python script.py | dd of=dev/sd0 bs=4k
    Geändert von Raubkopierer (06.04.10 um 20:47 Uhr)
    meilon bedankt sich. 
    Albert Einstein sagte einmal:
    Es gibt 2 Dinge die unendlich sind: Das Universum und die Dummheit der Menschen. Beim Ersten bin ich mir allerdings nicht ganz sicher.

    Stoppt die Vorratsdatenspeicherung!

  5. #5
    Registriert seit
    Feb 2004
    Ort
    Leinfelden-Echterdingen
    Beiträge
    781
    Besten Dank, werde es ausprobieren!

    EDIT: Menno, zu einfach wollen mir es die alten Kisten nicht machen! Meine Ubuntu Desktop 9.04 CD bootet auf keinem der Server komplett durch, immer scheint es etwas mit dem Zugriff auf die Festplatten zu tun zu haben.

    Bevor ich viele andere Live CDs runterlade und Rohling nach Rohling verbrenne: Welche Distro kommt mit dem alten SCSI Kram besser zurecht? GParted vll? Oder Knoppix? OpenSUSE? Oder sind die alle im Grunde gleich? Dürfte eigentlich nur ein Treiber Problem sein, die Server sind teilweise schon zwei Jahre ohne Strom, aber vor Außerbetriebnahme liefen sie einwandfrei.

    @Mods: Da es nun doch auf Linux herausläuft, bitte den Thread ins Linux-Forum verschieben - Danke!

    EDIT2: Ein Kollege hate noch eine GParted Live CD rumliegen, mit der komme ich schon mal weiter, am Ende fehlen mir aber die Devices zum löschen! Während des Boots erscheinen Meldungen zu scsi0 und scsi1, aber im Linux selbst finde ich keine einzige Festplatte. Laut lsmod ist das sym53c8xx Modul geladen , genauso wie megaraid_mbox. Auch gparted findet keine partitionierbare Partition. Unabhängig davon, om im SCSI Controller ein logisches Laufwerk eingerichtet wurde oder nicht.
    Einzig ein /dev/sg0 konnte ich ausfindig machen, kein /dev/scsi oder /proc/scsi
    Was muss ich machen?
    Geändert von meilon (07.04.10 um 14:54 Uhr)
     
    Bitte dran denken!
    Wenn eure Frage geklärt ist, markiert nach eurer Antwort den Thread als erledigt und bewertet die Antworten

  6. #6
    Avatar von Raubkopierer
    Raubkopierer Raubkopierer ist offline Mitglied Diamant
    Registriert seit
    Feb 2007
    Ort
    Saultitz (Sachsen)
    Beiträge
    1.700
    Blog-Einträge
    7
    Vllt hättest du einfach ein neues Thema im Linux-Forum machen sollen. Aber vllt wird das hier noch verschoben.

    Also du findest keine Dateien /dev/sda etc?
     
    Albert Einstein sagte einmal:
    Es gibt 2 Dinge die unendlich sind: Das Universum und die Dummheit der Menschen. Beim Ersten bin ich mir allerdings nicht ganz sicher.

    Stoppt die Vorratsdatenspeicherung!

  7. #7
    Registriert seit
    Feb 2004
    Ort
    Leinfelden-Echterdingen
    Beiträge
    781
    Nein, nix da. Werde wohl ein neues Thema aufmachen!
     
    Bitte dran denken!
    Wenn eure Frage geklärt ist, markiert nach eurer Antwort den Thread als erledigt und bewertet die Antworten

  8. #8
    Registriert seit
    Feb 2004
    Ort
    Leinfelden-Echterdingen
    Beiträge
    781
    Gibt es noch eine bessere Methode bzw. kann man das vorhandene Script noch erweitern? Es scheint schon mal rasend schnell zu sein, da ich mit dem Script gute 40MB/s hinbekomme, mit /dev/zero gerade mal 8MB/s.
    Das Problem ist jetzt nur, dass sich das Script nicht beendet wenn dd fertig ist, in meinem Script muss ich also nach jedem Schreibvorgang != 0x00 Strg+C drücken, damit das Python Script auch beendet wird und der nächste Aufruf im Script durchgeführt wird.

    EDIT: Vergesst es, habe dcfldd gefunden! Mit dem Parameter "pattern" kann man einen HEX-Wert angeben (wie FF) und das schreiben lassen! Zusammen mit dem Multiple Output kann ich mit einem Kommando alle drei Festplatten gleichzeitig beschreiben lassen!
    Geändert von meilon (13.04.10 um 16:29 Uhr)
     
    Bitte dran denken!
    Wenn eure Frage geklärt ist, markiert nach eurer Antwort den Thread als erledigt und bewertet die Antworten

  9. #9
    Avatar von Raubkopierer
    Raubkopierer Raubkopierer ist offline Mitglied Diamant
    Registriert seit
    Feb 2007
    Ort
    Saultitz (Sachsen)
    Beiträge
    1.700
    Blog-Einträge
    7
    Natürlich kann man das Skript mit Python noch entsprechend erweitern. Die Geschwindigkeit des Skripts beim Schreiben dürfte übrigens primär damit zusammen hängen, dass der bs-Parameter genutzt wird und so immer genau so viele Daten gelesen werden wie das Skript auch schreibt. Dabei sind die 4 Kilobyte die Masse Daten, die der Kernel auf ner Pipe etc. buffert bevor er liest etc.

    Ich hab mal ein dd in ein python skript verlagert. Natürlich könnte man auch mit python selbst schreiben aber dd bietet ja am Ende ein paar kleine Informationen die theoretisch ausgegeben werden sollten. Mir fehlt momentan die Möglichkeit das zu testen. Insgesamt hab ich es recht prozedural gehalten ohne Klassen und Funktionen, da es nur eine Sache machen soll.

    Probiers mal aus

    Code python:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    #!/urs/bin/env python
     
    import sys, os, subprocess
     
    if len(sys.argv) != 3:
        print "Usage: script.py target [0|F|A]"
        print "0 - write zeros to target"
        print "F - write 0xFF to target"
        print "A - write 0xAA to target"
    else:
        target,byte=sys.argv[1],sys.argv[2]
    if os.path.isdir(target):
        sys.exit("target does not exist or is a directory.")
    if not byte.lower() in ["0","f","a"]:
        sys.exit("byte has to be one of 0, F or A")
    hash = {"0":"\0",
            "f":"\xff",
            "a":"\xaa"}
     
    bytes = hash[byte.lower()] * 4096
     
    process = subprocess.Popen(args=["dd","of="+target,"bs=4096"],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
    while True:
        try:
            process.stdin.write(bytes)
        except:
            raise
        else:
            if process.poll():
                print process.communicate()
                sys.exit(process.returncode)
    meilon bedankt sich. 
    Albert Einstein sagte einmal:
    Es gibt 2 Dinge die unendlich sind: Das Universum und die Dummheit der Menschen. Beim Ersten bin ich mir allerdings nicht ganz sicher.

    Stoppt die Vorratsdatenspeicherung!

  10. #10
    Registriert seit
    Feb 2004
    Ort
    Leinfelden-Echterdingen
    Beiträge
    781
    Danke für die Mühen mit dem Script, aber mit dcfldd geht es wie gesagt einfacher. Der Server kann sich bis morgen in Ruhe selbst formatieren, dann springe ich mit USB-Stick und Ubuntu Lucid Beta Live CD zum nächsten Server.

    Nochmal besten Danka für die Hilfe!
     
    Bitte dran denken!
    Wenn eure Frage geklärt ist, markiert nach eurer Antwort den Thread als erledigt und bewertet die Antworten

  11. #11
    Avatar von Raubkopierer
    Raubkopierer Raubkopierer ist offline Mitglied Diamant
    Registriert seit
    Feb 2007
    Ort
    Saultitz (Sachsen)
    Beiträge
    1.700
    Blog-Einträge
    7
    Das ist natürlich ne feine Sache und man muss sich nicht selbst hinsetzen um sowas zu machen. Außerdem kann man dort jedes Pattern schreiben und bekommt eine entsprechende Rückmeldung

    Bisschen doof, dass ich in genau der Viertelstunde geantwortet hab in der du deinen Edit verfasstest.
     
    Albert Einstein sagte einmal:
    Es gibt 2 Dinge die unendlich sind: Das Universum und die Dummheit der Menschen. Beim Ersten bin ich mir allerdings nicht ganz sicher.

    Stoppt die Vorratsdatenspeicherung!

Ähnliche Themen

  1. <INPUT> nach Typ per CSS formatieren?
    Von Mik3e im Forum HTML & XHTML
    Antworten: 7
    Letzter Beitrag: 30.11.05, 00:16
  2. Antworten: 2
    Letzter Beitrag: 24.11.05, 10:13
  3. Antworten: 1
    Letzter Beitrag: 10.04.05, 23:06
  4. Festplatten formatieren
    Von nachtschattengewächs im Forum Microsoft Windows
    Antworten: 9
    Letzter Beitrag: 07.02.04, 20:59
  5. Festplatten nach Dateien duchsuchen
    Von Sebastian Lippmann im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 02.12.03, 19:45