Neue klassische HD (1TB) für Backup und ZFS vorbereiten

R

ralli

Guest
Neulich habe ich ja einen tollen Tipp von @Yamagi bekommen, wie ich die SSD mit blkdiscard schnell plattmachen kann. Diese Methode funktioniert ja mit normalen klassischen HD's nicht. Wie kann ich eine jetzt mit ext4 formatierte HD (1TB) schnell platt machen, damit ich ein ZFS Datenpool für Kodi darauf anlegen kann? Das sollte, wenn möglich, nicht Stunden dauern ... Geht ja irgendwie mit DD, oder gibt es noch eine andere Methode?
 
Gute Frage, aber ich meine mich zu erinnern, das es mal irgendwie trotzdem Ärger gab, wenn nur die Partionstabellen gelöscht wurden. Aber ich versuche es, geht das auch, ohne das ich FreeBSD 11 verlassen muß, oder muß ich die Knoppix DVD mit Gparted benutzen?
 
# gpart destroy [-F] <devicename>
# gpart create -s GPT <devicename>
# gpart add -t freebsd-zfs -a 1M -l pool <devicename>

Schon hast du eine GPT drauf und eine Partition, die so groß ist wie die ganze Platte.
Das Gerät hängt dann unter /dev/gpt/pool.

Rob
 
Und sollte das nicht genügen, kann du noch folgendes machen:
Code:
dd if=/dev/random of=/dev/<HDD> bs=1M count=10
Für ZFS gibt es auch noch:
Code:
zpool labelclear <HDD>
Gruss
 
Wozu überhaupt? Ich würde einfach die Partitionstabelle löschen und gut ist.

Rob
Die Begründung hier im Forum irgendwo zu finden:
Ist keine Partitionstabelle auf der Platte vorhanden, dann schlägt ein Betriebssystem aus Redmond sofort vor: "Festplatte formatieren?"
Bei einer vorhandenen Partitionstabelle ist es etwas zurückhaltender.
 
# gpart destroy [-F] <devicename>
# gpart create -s GPT <devicename>
# gpart add -t freebsd-zfs -a 1M -l pool <devicename>

Schon hast du eine GPT drauf und eine Partition, die so groß ist wie die ganze Platte.
Das Gerät hängt dann unter /dev/gpt/pool.

Rob
Hat leider nicht funktioniert. Nach dem ersten Kommando gab es die Meldung: kein Treffer! Habe dann die restlichen zwei Kommandos ausgeführt und nach einem Neustart bin ich dann in der Konsole gelandet mit dem Prompt rootmount oder mountroot. Jetzt schreibe ich gerade unter Debian. Mal sehen, ob ich morgen FreeBSD neu installiere. Das ist sehr ärgerlich, hätte ich gparted genommen, wäre das nicht passiert! Ich weiß auch nicht, was ich verkehrt gemacht haben könnte, denn ich habe vorher noch mal das Device mit camcontrol devlist überprüft.
 
Ich bin kein Experte, wünschte mir aber schon, das mir ein technisch affiner User erklären könnte, was hier passiert ist, damit in Zukunft ein solcher Fehler vermieden werden kann.
 
@ralli: Ich hätte vermutet dass du das falsche Device gewählt hattest aber du hast es ja überprüft.

Ist die Platte etwa am Rechner gesteckt beim Neustart? Dann vermute ich dass sich die Namen (ada0/ada1) geändert hat und deshalb der Rechner nicht bootet.

Du scheinst ja öfter zu installieren. Immer aus so einem Grund?

Debian nutzt UUIDs zum eindeutigen Identifizieren der Geräte. Unter FreeBSD kann man Label nutzen. Soweit ich weis nutzt ZFS auch ein Label aber der Bootparameter enthält vermutlich /dev/adaxyz.

Gruß
Georg
 
camcontrol devlist
das zeigt ja nicht an, welche Platte denn was ist. Natürlich kann das schon genügen, wenn man sich in seinem PC auskennt. Mir wäre das zu wenig. Ich würde natürlich auch nach mount sehen und vor einem gpart destroy nochmal ein gpart show auf die gleiche Platte loslassen.

Nunja, du hättest in keinem Fall die beiden nachfolgenden Befehle absetzen sollen, nachdem der erste keinen Treffer ergab. Da muss was faul gewesen sein, was auch immer. Und das hättest du zuerst herausfinden müssen und nicht einfach fortfahren dürfen.
Es kann dir so kaum jemand sagen, was passiert ist.
Ich sage es mal so: hättest du alles richtig gemacht, wäre es nicht falsch gelaufen.
Es macht eher wenig Sinn, nun die Möglichkeiten im Single-User-Betrieb zu erklären. Du hast ja noch einen Teil deines FreeBSD gefunden und müsstest "nur" nachsehen, ob du den Rest finden und wieder einbinden kannst. Da gibt es noch geringe Chancen. Aber du hast sicher schneller neu installiert, als ich da was dazu geschrieben habe. Zudem habe ich keine Erfahrung mit ZFS in der Beziehung, da gibt es ja keine Einträge in einer fstab und ich müsste das auch alles erst lesen.
 
Code:
# gpart destroy [-F] <devicename>
Das löscht die Partitionstabelle auf dem angegeben Device. Ohne -F nur, wenn sich keine Partitionen mehr in ihr befinden. Ansonsten gibt es einen Fehler. Mit -F auch dann, wenn es noch Partitionen gibt. Gibt es keine Tabelle, gibt es in jedem Fall einen Fehler. Dein Fehler wird also eine von zwei Ursachen gehabt haben:
  • Du hast den Befehl ohne -F ausgeführt, obwohl noch Partitionen vorhanden waren.
  • Es gab keine Partitionsttabelle mehr.
Wenn es das richtige Device war, was du gelöscht hast, verhindern beide Fehler nicht den Systemstart.

Code:
# gpart create -s GPT <devicename>

Erstellt eine neue GPT Partitionstabelle. Das klappt nur, wenn nicht schon eine vorhanden gewesen ist. Gab es hier keinen Fehler, wird 'gpart destroy' also wahrscheinlich fehlgeschlagen sein, weil keine Tabelle mehr existierte.

Code:
# gpart add -t freebsd-zfs -a 1M -l pool <devicename>

Legt eine neue Partition vom Typ freebsd-zfs mit dem Label 'pool' an. Das Alignement beträgt dank '-a 1M' ein Megabyte und da keine Größe angegeben wurde, erststreckt sie sich über die ganze Festplatte.

Wenn du das richtige Device zu packen hattest, gibt es keinen Grund, dass das System anschließend nicht mehr hochfährt. Außer, dass sich die Devices der vorhandenen Speichermedien umbenannt haben, da sich ihre Reihenfolge geändert hat. In dem Fall muss man nur die /etc/fstab entsprechend anpassen. Wenn allerdings das falsche Device behandelt wurde, kann man die Sache nur dann retten, wenn noch nicht in die neue Partition geschrieben wurde. Dafür ist das Tool 'testdisk' zu empfehlen, es findet sehr zuverlässig gelöschte Partitionen.
 
@ralli: Ich hätte vermutet dass du das falsche Device gewählt hattest aber du hast es ja überprüft.

Ist die Platte etwa am Rechner gesteckt beim Neustart? Dann vermute ich dass sich die Namen (ada0/ada1) geändert hat und deshalb der Rechner nicht bootet.

Du scheinst ja öfter zu installieren. Immer aus so einem Grund?

Debian nutzt UUIDs zum eindeutigen Identifizieren der Geräte. Unter FreeBSD kann man Label nutzen. Soweit ich weis nutzt ZFS auch ein Label aber der Bootparameter enthält vermutlich /dev/adaxyz.

Gruß
Georg
Ja, ichhabe es natürlich vorher mit camcontrol überprüft, um sicher zu sein. Die klassische HD ist keine externe USB Platte, FreeBSD 11 war auf der internen SSD installiert und die klassische HD mit 1TB ist auch eine interne Platte.
 
@Yamagi, ich habe definitiv den Schalter -F benutzt und auch das richtige Device angegeben. Der frisch angelegte Datenpool wurde ja auch unter GPT/pool angezeigt. Gleich bei der Neuinstallation werde ich genau hinsehen, welches Device die zweite Platte hat. Dann werde ich Gparted nehmen, alle Partitionen löschen und später mit ZFS ganz einfach einen neuen Datenpool anlegen, hat ja früher auch funktioniert. Warum der Rechner danach nicht mehr hoch fuhr, bleibt mir auch ein Rätsel.
 
And the Winner is ..... ralli:D Alles neu installiert und konfiguriert, FreeBSD 11, KDE und Datenpool für die HD angelegt und schreibfähig gemacht.
 
Weil du, auch wenn du es dir nicht eingestehen willst, die falsche Platte platt gemacht hast :p
Natürlich kann das auch passiert sein. Ein Tippfehler ist schnell produziert und abends nimmt die Konzentration ab. Warum sollte ich mir das denn nicht eingestehen? Deshalb habe ich Rob auch keinerlei Vorwurf gemacht, denn schließlich bin ich in letzter Konsequenz selbst verantwortlich. Menschen machen Fehler und Fehler machen Menschen menschlich.:D
 
Ich habe gestern einfach mit der Knoppix DVD und Geparted alle Partionen auf der HD gelöscht und anschließend unter FreeBSD
Code:
# zpool create -f backup /dev/ada1
eingegeben. Ohne Schalter -f hat es nicht funktioniert. Anschließend die HD backup mit
Code:
chown -R ralph:ralph backup
beschreibbar gemacht. Mich würde jetzt interessieren, was passieren würde, wenn ich noch mal nach Rob's Anweisungen vorgehe und ob es dann funktionieren würde. Denn ich bin mir immer noch nicht sicher, das ich das falsche Device angeben haben soll, denn ich kann schon unterscheiden zwische ada0 (SSD) und ada1 (HD). Wenn es funktioniert, war es tatsächlich mein Fehler, wenn das gleiche passiert wie vorgestern ist irgendetwas oberfaul.
 
So neuer Versuch.

Code:
gpart destroy [-F /dev/ada1

ergibt folgende Fehlermeldung:

Code:
gpart: Invalid number of arguments.

dmesg sagt unter anderem:

Code:
GEOM: ada1: the primary GPT table is corrupt or invalid.
GEOM: ada1: using the secondary instead -- recovery strongly advised.

Nach der Anlegung des Datenpools gemäß meines vorherigen Postes wurde der pool back aber mit dm schaler -f ordnungsgemäß angelegt. Meine ganzen Daten sind da mittlerweile drauf gesichert und es funktioniert ja. Aber ich möchte das ganze auch technisch verstehen, komme aber bei den Fehlermeldungen nicht mehr mit. Wenn GPT corrupt, warum ließ sich dann ein datenpool back auf der HD ada1 anlegen?

Es wäre schön, wenn mich mal jemand aufklären könnte. Danke!
 
Ich sehe gerade, das eine Klammer fehlte, jetzt nehme ich
Code:
gpart destroy [-F] /dev/ada1

und es kommt die Fehlermeldung:

Code:
kein Treffer

Das hatte ich doch schon mal.
 
Als root:

Code:
gpart create -s GPT /dev/ada1

ergibt folgende Fehlermeldung:
Code:
gpart: geom 'ada1': Operation not permitted

Jetzt weiß ich nicht weiter.
 
Code:
gpart destroy -F /dev/ada1
Ohne Klammern. Die Klammern hat @KobRheTilla aus der Manpage kopiert. Sie sagen nur aus, dass -F optional ist.
 
Ok danke @Yamagi , habe ich jetzt gemacht:
Code:
gpart destroy -F /dev/ada1

Jetzt kommt folgende Fehlermeldung:

Code:
gpart: arg0 'ada1': Invalid argument
 
camcontrol devlist ergibt:
Code:
<INTENSO SSD 128GB O0213E>         at scbus0 target 0 lun 0 (pass0,ada0)
<ST1000DX001-1CM162 CC43>          at scbus1 target 0 lun 0 (pass1,ada1)
<HL-DT-ST DVDRAM GH24NSB0 LM01>    at scbus2 target 0 lun 0 (cd0,pass2)
<AHCI SGPIO Enclosure 1.00 0001>   at scbus3 target 0 lun 0 (pass3,ses0

also ist ada1 doch richtig für die HD?
 
Jetzt versuche ich:
Code:
geom disk list

Hier die Ausgabe:
Code:
Geom name: ada0
Providers:
1. Name: ada0
   Mediasize: 128035676160 (119G)
   Sectorsize: 512
   Mode: r2w2e3
   descr: INTENSO SSD 128GB
   lunid: 0000000000000000
   ident: F20641R00631
   rotationrate: 0
   fwsectors: 63
   fwheads: 16

Geom name: ada1
Providers:
1. Name: ada1
   Mediasize: 1000204886016 (932G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e1
   descr: ST1000DX001-1CM162
   lunid: 5000c500676d9274
   ident: Z1DCQ15K
   rotationrate: 7200
   fwsectors: 63
   fwheads: 16

Geom name: cd0
Providers:
1. Name: cd0
   Mediasize: 0 (0B)
   Sectorsize: 2048
   Mode: r0w0e0
   descr: HL-DT-ST DVDRAM GH24NSB0
   ident: (null)
   rotationrate: unknown
   fwsectors: 0
   fwheads: 0

Also auch hier wird für die HD ada1 angezeigt.
 
Zurück
Oben