mit USB Bootstick automatisiert formatieren, wie?

Tzk

Commodore
Registriert
Nov. 2016
Beiträge
4.241
Ich bin mir nicht sicher ob die Frage im richtigen Unterforum gelandet ist, hoffe aber dennoch auf gute Ideen.

Ich möchte einen bootbaren USB Stick erstellen, welcher mir - sobald er gebootet wird - automatisiert ("unattended") alle im PC befindlichen Massenspeicher neu partitioniert und anschließend mit dem Dateisystem meiner Wahl formatiert. Also z.B. eine große Paritition pro Laufwerk und das dann als NTFS. Gibt es Tools/Bootsticks die man so konfigurieren kann?

Hintergrund der Frage ist, dass ich einen Haufen PCs für den Verkauf vorbereiten muss und auf den Laufwerken keine Daten mehr vorhanden sein sollen. Ausbau+Entsorgung der Laufwerke kommt aber nicht in Frage, da die PCs mit verbauten Laufwerken an einen Reseller gehen.

Ich bin für jeden Fingerzeig dankbar, der mir Arbeit spart... :)
 
Bash:
#!/bin/bash
set -e


for drive in $(lsblk -d -o name | grep -v "loop"); do
  echo "Unmounting $drive"
  umount /mnt/$drive
  rmdir /mnt/$drive
done

echo "The following drives will be formatted with NTFS:"
lsblk -d -o name,size,type,fstype,mountpoint | grep -v "loop" | grep "disk"
read -p "Do you want to proceed? (y/n) " answer
if [[ $answer != "y" ]]; then
  echo "Aborting format process"
  exit 1
fi

for drive in $(lsblk -d -o name | grep -v "loop"); do
  echo "Formatting $drive with NTFS"
  mkfs.ntfs -f /dev/$drive
done

grob so :)

bei live linuxen ist das mit dem autostart skript meh..
systemd unit OK?

geht grob inn die Richtung:

Code:
[Unit]
Description=Format drives with NTFS

[Service]
Type=oneshot
ExecStart=/path/to/format-drives.sh

[Install]
WantedBy=multi-user.target


spricht was dagegen ein ramdon.file vorzubereiten und das via DD einfach drueber zu schreiben? oder vielleicht 1x secure erase?
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: BFF und Nilson
Tzk schrieb:
Hintergrund der Frage ist, dass ich einen Haufen PCs für den Verkauf vorbereiten muss und auf den Laufwerken keine Daten mehr vorhanden sein sollen.
wenn es nur darum geht (und nicht um das anlegen eines dateisystem, das macht das betriebssystem der wahl bei der installation ja sowieso), dann hilft dban.

edit: alternativ shredos, da dban nicht mehr weiterentwickelt wurde.
 
  • Gefällt mir
Reaktionen: Tzk
dban ist bekannt, mir geht's im speziellen ums automatisieren. Es sind über 500 PCs, da hilft jede gesparte Eingabe. Die dban Doku werde ich mir mal zu Gemüte führen, wenn das vollständig automatisierbar ist (keine Nutzerinteraktion nötig), dann wäre das perfekt.

Ich brauche die typischen dban Features (mehrfaches Überschreiben,...) nicht. Einfaches Löschen der alten Partitionen + Neuanlage reicht aus.

madmax2010 schrieb:
Ich bin eher bash Novize, aber der Ansatz ist interessant. Das in ein Live Linux gebastelt könnte mein Problem bereits lösen. Danke für die Idee, probiere ich aus!
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: madmax2010
ich habe das eben aus 3 scripten in meinem skript ordner zusammen kopiert.
Wuerde eigentlich sagen: Yo, teste das mal.
ANderersetis.. was soll schon schief gehen ¯\(ツ)
 
  • Gefällt mir
Reaktionen: Tzk
Tzk schrieb:
und auf den Laufwerken keine Daten mehr vorhanden sein sollen
Sind die Daten vorher schon gelöscht bzw. sind die Festplatten verschlüsselt? Wenn nicht sollte die Formatierung "langsam" sein, damit alles genullt wird. mkfs.ntfs -f macht ja eine "schnelle" Formatierung. Oder bei SSDs secure erase anstoßen.
 
  • Gefällt mir
Reaktionen: Tzk
0x8100 schrieb:
beim booten "autonuke" tippen wäre das einzige.
500x "autonuke" tippen wäre zwar nervig, aber dennoch besser als endlos durch Menüs zu navigieren. Eine einzige gesparte Minute pro PC spart mir einen ganzen Arbeitstag, deshalb überhaupt die Idee zu optimieren.
Nilson schrieb:
Sind die Daten vorher schon gelöscht bzw. sind die Festplatten verschlüsselt?
Es sind unverschlüsselte SSDs und auf diesen lief lediglich ein Linux als Citrix Terminal Client. Sensible Daten sind auf den PCs nicht gespeichert. Secure Erase ist ne sehr gute Idee.
 
  • Gefällt mir
Reaktionen: Nilson
Tzk schrieb:
500x "autonuke" tippen wäre zwar nervig, aber dennoch besser als endlos durch Menüs zu navigieren. Eine einzige gesparte Minute pro PC spart mir einen ganzen Arbeitstag, deshalb überhaupt die Idee zu optimieren.
https://forums.majorgeeks.com/threads/need-unattended-secure-delete-of-hdd.258578/#post-1736424

# Set this option to zero if you wish to skip the boot prompt.
PROMPT 0

# This label will be started if you just push enter at the boot prompt, or if
# you set the PROMPT option above to zero.
DEFAULT autonuke

Hört sich doch vielversprechend an...
 
  • Gefällt mir
Reaktionen: Tzk
Muessen die verbauten Datentraeger ueberhaupt mit einem Dateisystem vorbereitet sein?
Wenn Verkauf, wuerde es doch eigentlich reichen wenn alle gefundenen Datentraeger in einer Kiste geplaettet werden. Wuerde das aus Post #2 von @madmax2010 noch einfacher machen wenn z.B. dd genommen wird.
Wenn der Kaeufer spaeter Irgendwas installieren will, ist dem doch egal ob da Partitionen von Irgendwas schon da sind.
 
BFF schrieb:
Wenn der Kaeufer spaeter Irgendwas installieren will, ist dem doch egal ob da Partitionen von Irgendwas schon da sind.
Prinzipiell ja. Ich denke wenn keinerlei Partitionen drauf sind wäre das auch ok. Also wäre mit dd alles nullen auch ne Variante, die Fehlerpotenzial reduziert und Zeit spart. Danke.
 
Statt usb könntest ja pxe boot einrichten. Dann bootet das, dein Skript legt an was du willst. Oder installiert dir gleich dein OS
Sind das 500 mal die selben Rechner vom gleichen Hersteller?
 
  • Gefällt mir
Reaktionen: Tzk
konkretor schrieb:
Sind das 500 mal die selben Rechner vom gleichen Hersteller?
Jop, sind alles identische Geräte: x86 Thinclients. Gleicher Hersteller, gleiche Konfiguration. Lediglich zwei unterschiedliche Größen an SSD sind verbaut, aber das sollte egal sein. Notfalls mache ich zwei Stapel.

OS soll keins drauf, die Dinger müssen nur blank sein. Mit PXE Boot hatte ich noch keine Berührungspunkte, da muss ich mich erstmal einlesen wie man den entsprechenden Server aufsetzt, der das passende Image ausspielt.
 
Wenns SSDs sind kommst du doch nicht drum rum es im BIOS zu erasen oder? SSDs stumpf zu nullen wie normale Festplatten funktioniert doch nicht richtig, aufgrund der Artt und Weise wie die Zellen beschrieben werden.
Und da du am Ende ja eh noch eine Qualitätskontrolle machen müsstest, selbst wenn du alles automatisiert machst, kannst du einfach dann das Löschen im BIOS ausführen, dauert nur eine Sekunde.
 
Ich bin hier noch die Antwort schuldig, wie die Nummer letztendlich gelöst wurde. Zusammengefasst will bzw. musste ich folgendes bei 850 Geräten ( :freak: ) machen:

1. Bios Einstellungen auf Default zurück
2. Bios Passwort löschen
3. Festplatte löschen

Ich habe mir also einen Arduino micro pro besorgt. Das Teil hat im Gegensatz zu normalen Arduinos keinen Wandlerchip für seriell zu USB, sondern den USB Controller direkt on-die. Damit kann es Tastatur- und Mauseingaben simulieren, dabei sieht der jeweilige PC nur eine Tastatur.

Den Arduino hab ich mit ein paar 4,7kOhm Vorwiderständen und ein paar Tastern auf ein Breadboard gesteckt. Jede Taste löst im Programm einen anderen Loop aus. Damit kann ich also verschiedene Eingaben automatisiert ausführen. Das Rad braucht man natürlich nicht neu erfinden, das haben andere bereits übernommen ;) Damit steht die Hardware, ich habe mir insgesamt drei Knöpfe (für drei Makros) gebaut, wovon ich letztendlich zwei gebraucht habe.

Hinweis:
Bitte nutzt unbedingt eine Taste, einen Jumper o.Ä. zum Aufrufen der Makros auf dem Arduino. Lässt man das Teil einfach automatisiert beim Anschließen loslegen, dann ergibt sich schnell ein Problem: Beim Anschluss an den normalen PC würde das Teil ebenfalls losspammen, was die nächste Programmierung unmöglich macht. Man sollte also mindestens einen Jumper oder Schalter setzen, der abgefragt wird, bevor die Makros laufen. Ich habe mehrere Taster für den Makroaufruf eingesetzt.

Die Doku von Arduino dazu: https://docs.arduino.cc/tutorials/micro/keyboard-press

Meine PCs haben den extrem kurzen Tastendruck von keyboard.write() nicht zuverlässig registriert, ich bin daher notgedrungen auf keyboard.press() und .release() ausgewichen. Ein "halten" der Taste für ~300ms mittels eines delay() hat dabei gut funktioniert. Also press Taste1 -> delay -> release Taste1 -> delay -> press Taste2 und so weiter. Anders wurden die Anschläge nicht zuverlässig umgesetzt.

Zum Formatieren habe ich mir DBAN ausgesucht, weil es einen "schnellen" Modus hat den man mit der Eingabe von "quick" + Enter aufrufen kann. Der Rest läuft automatisch durch - perfekt. An dieser Stelle ein Wort der Warnung:
"quick" überschreibt nur einmalig, das gilt nicht unbedingt als sicherste Methode! In meinem Fall waren keine sensiblen Daten auf den Systemen, deshalb war das ausreichend. Bei euch kann das anders aussehen, also bitte einen für euch passenden Modus wählen.
Achtet außerdem darauf, das man SSDs besser via Secure Erase löscht und nicht via DBAN, da SSDs im Gegensatz zu HDDs von der Firmware des Laufwerks nicht zwingend sequenziell beschrieben werden. Ein Tool welches den Secure Erase automatisiert umsetzt habe ich nicht gefunden. Ideen dazu sind hier im Thread weiter oben.

Umgesetzt habe ich es so:

1. PC an Monitor, Strom und arduino anschließen, außerdem DBAN Stick (erstellt mit RUFUS 3.19p) anschließen.
2. PC starten, 1-2s warten
3. Knopf 1 auf Arduino drücken - dies aktiviert das erste Makro
4. Makro 1 läuft und macht folgendes:
während POST F2 spammen um ins Bios zu kommen
bios passwort eingeben
durchs bios navigieren, als erstes Defaults laden, dann USB Sticks als primäres Bootlaufwerk setzen, PW entfernen und zuletzt save & reboot
5. nach dem Bootvorgang startet der PC direkt in dban rein
6. Knopf 2 auf Arduino drücken, Makro 2 gibt "autonuke" ein und DBAN erledigt den Rest
7. Job done, Profit! :daumen:

Auch hier wieder ein kleiner Hinweis:
Das Award UEFI hat in meinem Fall beim Laden der Defaults alles überschrieben was gesetzt wurde. Heisst entfernt man das PW und lädt dann die Defaults, ist das PW nach dem Reboot wieder drauf! Deshalb habe ich die Reihenfolge umgedreht: Erst Defaults laden, dann "Prefer USB Boot" und "enable USB Boot" einschalten und das PW runterschmeissen. Das ist maximal dämlich, aber vermutlich ein Feature und kein Bug...

Bei der Masse an PCs kann man so gepflegt 10 Stück parallel laufen lassen. DBAN Sticks sind kein Problem und den Arduino kann man einfach umstecken.

Das Einzige was echt etwas nervig war und grob 2 Std. an Zeit gefressen hat war das ermitteln der nötigen Eingaben. Ich habe bei 2-3 PCs durchs Bios navigiert und dabei jeden Tastendruck mitgeschrieben. Paar Testläufe gemacht und es ging erstaunlich gut.

Bei 850 Geräten waren am Ende ~30 dabei wo das Timing der Eingaben nicht gepasst hat und händisch zurückgesetzt werden musste.

EDIT:
Hinweise als Zitate eingefügt, die mir als Stolpersteine aufgefallen sind.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Renegade334, Evil E-Lex, konkretor und eine weitere Person
Zurück
Oben