Anfänger-Frage: USB-Sticks/Festplatten formatieren

Lance

Well-Known Member
Ich möchte mit FreeBSD NTFS formatierte Festplatten und einige USB-Sticks mit ZFS bzw UFS2 formatieren.

Bei Solaris 11 bekam ich das super hin, hier bei BSD ist das wieder anders, fdisk sieht und bedient sich hier ganz anders als bei Solaris.

Kann mir jemand kurz die Befehle geben um einen Stick (UFS2) bzw Festplatte (ZFS) zu formatieren bzw vorab zu partitionieren und dann zu formatieren? Den devicename habe ich mit camcontrol devlist herausgefunden. Die Befehle format bzw rmformat gibts bei BSD leider nicht.

da0 ist das Device. Ich nehme an ich muss mit fdisk das device partitionieren, dann mit newfs UFS2 anlegen bzw mit create zpool einen ZFS-Pool anlegen, richtig?

LG Lance
 
Ich bin da etwas verwirrt weil ich in verschiedenen Foren verschiedene Herangehensweisen finde, welche ist gut/sicher?

z.B.:
Code:
gpart create -s gpt da0

gpart add -s 50G -t freebsd-ufs da0

newfs /dev/da0p1a

So, hier wird wohl eine Partition angelegt (Slice) und diese dann mit UFS formatiert. (UFS2?)

dann gibts noch das hier:
Code:
dd=if=/dev/zero of=/dev/da0 bs=1m count=128

newfs -L usbdisk -O2 -U -m 6 /dev/da0

Ist das Untere mit den ganzen Parametern bei newfs jetz für nur eine Partition oder wo liegen die Unterschiede? Ich will es richtig, einfach und sicher machen. Dann eine Disk auch mit ZFS
 
Ok, so wie ich das sehe muss ich so vorgehen:

1.) dd if=/dev/zero of=/dev/da0 bs=1m count=128

2.) gpart create -s gpt da0

3.) zpool create usbdisk /dev/da0

Ich habe fast befürchtet dass es mit dem Mounten/Unmounten nicht so klappt wie mit UFS unter Solaris (Stick rein, Laufwerk sicher entfernen, Stick raus). Ich muss scheinbar als admin explizit sagen
Code:
zpool import usbdisk

zpool export usbdisk

Kann ich die ZFS Festplatte irgendwie auch als normaler Nutzer einbinden? Oder geht das nur mit UFS Datenträgern?
 
du arbeitest schneller, als man deine Beiträge lesen kann.
Deshalb ist es nun nicht so einfach, eine einzige Antwort zu geben und nicht so sinnvoll, alles nochmal zu beantworten, worauf du schon Antworten gefunden hast.

Deshalb nur ganz allgemeine Tips von mir.

-Zu Allererst: das FreeBSD Handbuch lesen!
Vor irgendwelchen Tips in Foren und möglicherweise unpassenden Kommentaren, lieber dort nachsehen, wo "fast alles zu FreeBSD" beschrieben ist. In der Version, die ich gerade offen habe, findet sich da zB: https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/usb-disks.html .Gelesen habe ich das allerdings nun nicht. Es beschreibt aber bestimmt, was zum Mounten als einfacher User sein muss und HAL und Konsorten sind auch nur solche User, die dir den Stick automatisch mounten wollen.
-Als nächstes, hier im Wiki nachlesen.
Das ist zwar nicht immer ganz aktuell und es ist auch sehr übersichtlich, aber manchmal reichen ja schon verwandte Themen, um einen weiter zu bringen.
-Dann hier im Forum suchen und danach fragen.

Hört sich ziemlich belämmert an, gebe ich gerne zu, aber es ist wirklich der bessere Weg, zumindest meinen eigenen Erfahrungen nach. Eine Suche im Internet liefert allzu oft nur halbgares Zeugs und manchmal auch Müll.


Mein Umgang mit irgendwelchen Medien am USB sieht allgemein etwa so aus (ohne ZFS, ZFS ist speziell und hat meiner Ansicht nach nichts an USB verloren, doch das wäre ein anderes Thema und meine Ansicht dazu interessiert eh kein Schwein):
- Gerät identifizieren
- Partition identifizieren
- Dateisystem identifizieren
- mounten

Das Formatieren von USB Medien geschieht bei mir nur sehr selten unter FreeBSD und allermeist mit MSDOS-FS. UFS ist sicher gar kein Problem, mit ZFS habe ich keine Erfahrung, EXT lege ich lieber unter einem GNU/Linux an und NTFS unter einem Microsoft.
Dann müsste in der Reihenfolge von oben der Punkt "Dateisystem identifizieren" geändert werden und durch "Dateisystem erzeugen" ersetzt werden.
Gibt es einen Grund für Partitionen auf dem Gerät (es gibt dafür fast immer gute Gründe), wäre auch der Punkt "Partitionen identifizieren" mit "Partitionen erzeugen" zu ersetzen.

Die Identifikation des Gerätes hast du zwar schon gelöst, ich möchte aber noch weitere Möglichkeiten nennen, die ich ganz gerne nutze.
-dmesg
nachdem das Gerät eingesteckt wurde, sollte es erkannt werden und dmesg dieses am Ende der Ausgabe listen.
-cat /var/run/devd.pipe
zeigt erst dann Aktion, wenn etwas gesteckt und erkannt wird, hat aber den Vorteil, dass gleich mehrere Information abgelesen werden können, unter anderem auch die vorhandenen Partitionen und wie diese benannt werden
-lshal -m
braucht natürlich HAL, zeigt meist nicht viele sinnvolle Informationen, ich mag es nicht, wie HAL insgesamt nicht, aber manche lieben es.

Die Partitionen zu erkennen ist einfach, wenn man das Gerät kennt.
Ein einfacher Blick in die /dev -Liste zeigt die schon. Zum Beispiel also ls /dev | grep da0 (über find /dev/da0* oder so was streite ich nun nicht, es kommt mir nicht auf den einen Befehl im Vorzug zu einem anderen an, ich grepe gerne in einer pipe, so ist das nun mal)
Oben erwähnt, in der devd.pipe erscheinen ebenfalls die Partitionen gelistet. Die Ausgabe ist manchmal etwas unübersichtlich, erschließt sich aber beim Lesen.
Außerdem stellt gpart show die gut dar und mit gpart haben wir gleich auch das Werkzeug der Wahl, um neue Partitionen zu erstellen.
Schließlich noch einer meiner Lieblinge: mmls aus dem Sleuthkit, das aber kaum noch jemand benutzt, besonders, seit wir ja gpart haben.

Das Dateisystem erkennt einfach file -s auf eine Partition angewandt.
Alternative fällt mir dazu kaum eine ein, außer gpart show, das einem diese Information auch schon mitliefert, ebenso, wie das schon mal genannte mmls.

Zum Anlegen der Partitionen gibt es verschiedene Möglichkeiten und Werkzeuge, die du am besten alle schnell vergisst und nur noch gpart benutzt. Unter FreeBSD kann mit bsdlabel gearbeitet werden und auch fdisk wird immer noch benutzt, doch besonders von letzterem sollte man endlich die Finger lassen. bsdlabel ist immer noch gut und schnell und wird eingesetzt, wenn jemandem die Befehle noch automatisch aus den Fingern rinnen, doch ich wüsste nichts, das gpart nicht ebenso kann und dabei ist es grundsätzlich einfacher zu bedienen, braucht aber wieder eine gewisse Einarbeitungszeit.
Mein eigener Liebling zum Schaffen von Partitionen ist parted (gparted mit Grafik) unter einem GNU/Linux. Damit fühlte ich mich schnell wohl und lange, bevor ich FreeBSD kennen lernte und genieße es noch immer. gpart erfüllt zwar einiges davon auch und wer nicht erst parted benutzen lernte, hat dazu natürlich keine Affinität entwickelt, aber für mich gilt das eben nicht und ich bin manchmal stur.

Dateisysteme werden grundsätzlich (über ZFS rede ich hier nun nicht) immer ziemlich ähnlich angelegt und zwar mit einem passenden Befehl. Diese befehle gibt es mitunter nur dann, wenn das entsprechende Dateisystem auch installiert wurde. Einen Überblick kannst du dir einfach verschaffen, wenn du die Verzeichnisse /sbin /usr/local/bin und /usr/local/sbin durchforstet und leider musst du dabei nach fs grepen, denn die Befehle sind uneinheitlich. So gibt es etwa newfs_msdosfs oder mke2fs oder mkfs.ext4. Mit grep fs bekommst du natürlich auch einige sinnlose Treffer, aber ich glaube, man erkennt gut, was man davon ernst nehmen kann. Fast immer gibt es zu ernsthaften Treffern dan auch eine man page, die weitere Informationen liefert.

zfs findet sich bei dieser Suche natürlich auch und dann würde die man page auch erklären, wie ein Dateisystem angelegt werden kann, aber ZFS ist speziell und das eigentliche Kommando (/bin/zfs) beinhaltet so viel mehr, als bei den üblichen Dateisystemen, dass es nicht richtig in die Aufzählung von oben passt. Das gilt ja auch für das Exportieren oder Einbinden eines solchen Dateisystems, das dann ja über mehrere physikalische Platten und Partitionen reichen kann und eben verschieden ist zu dem oben vorgestellten Grundkonzept.


Und natürlich, wie immer: nur mein derzeitiges Wissen, basierend auf FreeBSD 8x und das ist nicht mal vollständig wiedergegeben und natürlich nur ohne Gewähr. Filesysteme anlegen (falsch gemacht) kann ein System zerstören!
 
Ich benutzte gpart und anschließend newfs. Aber ohne -U. Das werde ich nächstes mal machen. Das mit ZFS, da muss man sicher was in eine config eintragen damit ein normaler User das (auto-)mounten kann. Aber was UFS2 angeht, so bin ich sehr zufrieden, wie das läuft. Privat migriere ich gerade alles von Linux nach FreeBSD, d.h. alle Linux-Datenträger (UsB-Sticks) werden mit UFS formatiert und mit FreeBSD Software gefüllt. Bis auf das MacBook und das Spiele-Notebook läuft jetzt alles auf FreeBSD bei uns.
 
Dass das mit ZFS so einfach geht, glaube ich nicht (aber glauben bedeutet hier eben auch nicht wissen).

Was die Automount-Mechanismen ja erledigen müssen, ist im Grunde das, was du auch manuell durchgehst, wenn ein unbekannter Speicher im System eingebunden werden soll. Dazu haben diese Mechanismen keine eigene Intelligenz entwickelt, sondern sie benutzen Konfigurationsdateien.
Dann nüsste also der "ZFS-mount"-Befehl diesen Mechanismen bekannt sein und sie müssten das Recht haben, ihn zu benutzen. Außerdem müsste die entsprechende Syntax aus einer der Konfigurationsdateien bezogen werden, um die passende Aktion nach einer richtigen Erkennung des Dateisystems auszuführen. Das bedeutet vermutlich insgesamt an wenigstens drei Stellen einen Einfluss zu nehmen und etwas zu ändern, nicht nur an einer.
Wenn ich mich an HAL zurück erinnere und die Stunden bedenke, die ich wegen solcher Kleinigkeiten davor verbrachte, dann denke ich eher an einen mittleren Aufwand, denn HAL benutzt etliche Umwege und ist nicht einfach zu handhaben.

Ohne nun nachgesehen zu haben, was -U bei newfs meint: es gibt zu beinahe jedem Dateisystem ein passendes tunefs, das viele Dinge auch nachträglich noch ändern kann.
 
Pools importieren kann nur root. ZFS ist nicht als Wald-und-Wiesen-FS gedacht, was man auf USB-Sticks haut. Es wird also sudo o.ä. nötig sein.
 
Grundsätzlich sollte jeder Datenträger mindestens eine Partition enthalten. Du kannst zwar auch das Device an sich formatieren (ohne Partition darin angelegt zu haben), es kann aber sein, dass nicht jedes System damit so ohne weiteres klar kommt. Der bessere Weg ist eigentlich immer Dateisysteme in Partitionen zu legen. Selbiges gilt übrigens auch für ZFS (welches, wie man liest recht oft auf ne komplette Platte gelegt wird).

UFS mit -U anzulegen ist sinnvoll, seit 9.0 ist es jedoch besser -j zu verwenden, dadurch werden journaling softupdates verwendet. Das halte ich gerade bei einem USB-Stick für sinnvoll (wenn der Datenträger eh nicht portabel - zwischen unterschiedlichen Systemtypen - sein soll).

Ich hatte dazu einst mal folgendes aufgeschrieben: http://denkrobat.de/doku.php?id=festplatte_formatieren

ZFS ist wie bereits gesagt wurde nicht für "Austauschlaufwerke" entwickelt, sondern eher für große Storagelösungen. USB-Festplatten ist halt eher eine Storagelösung für privat. ;)
 
Hierzu wollte ich noch ein bis zwei Dinge sagen.

Ich bin da etwas verwirrt weil ich in verschiedenen Foren verschiedene Herangehensweisen finde, welche ist gut/sicher?
z.B.:
Code:
gpart create -s gpt da0

gpart add -s 50G -t freebsd-ufs da0

newfs /dev/da0p1a

So, hier wird wohl eine Partition angelegt (Slice) und diese dann mit UFS formatiert. (UFS2?)

dann gibts noch das hier:
Code:
dd=if=/dev/zero of=/dev/da0 bs=1m count=128

newfs -L usbdisk -O2 -U -m 6 /dev/da0

Ist das Untere mit den ganzen Parametern bei newfs jetz für nur eine Partition oder wo liegen die Unterschiede? Ich will es richtig, einfach und sicher machen. Dann eine Disk auch mit ZFS

Das obere Beispiel legt zunächst eine Dateizuordnungstabelle an und darin eine Partition. In dieser wird das Dateisystem angelegt. Wie man es auch sinnvoll machen sollte.
Das dd überschreibt 128 Sektoren mit Nullen. Der Sinn ist einfach eventuell bestehende Dateizuordnungstabellen oder ähnliches zu überschreiben. Damit ist die Platte erst mal nackig. Wenn du count weg lässt überbügelt er das ganze Device.

Ein neues Dateisystem zu labeln (mit -L) ist sehr sinnvoll um es später immer klar zuordnen zu können. Ein -O2 ist eigentlich unnötig, da standardmässig immer ein UFS2 angelegt wird. Den frei zu haltenden Speicher zu beeinflussen (-m) ist im allgemeinen nicht notwendig. Und wie erwähnt würde ich statt normalen Softupdates (-U) die journaling Variante (-j) verwenden.

Die Manpages sind da schon sehr aufschlussreich.
 
@Rakor:
-m verwende ich nicht. Das mit -j und -O2 ist gut zu wissen. Habe mir schon einige Tutorials von dir angesehen, finde ich klasse! Gut erklärt, auch warum man Option X macht oder nicht.
:)
 
Rakor ging ja ein wenig mehr ins Detail und fast immer muss ich sagen, dass ich einer Meinung mit ihm bin.
Ich will nun das Thema Speichermedium am USB-Port mal allgemein ansprechen, obwohl das in etlichen anderen Threads schon besprochen worden ist und auch diesmal eigentlich ein neues Thema darstellt.

Meine Meinung ist natürlich, wie immer, die Meinung eines Unwissenden.

Am USB-Port gelten Besonderheiten.
Es kann jederzeit jemand vorbeikommen und ein Gerät abziehen!
Natürlich kann jederzeit der Stecker von irgendeiner internen Festplatte abrutschen und dann hat man wenigstens den gleichen Salat.
Allerdings dürfte jedem klar sein, dass interne Festplatten in der Regel für ein System sehr wichtig sind und niemand würde einfach so einen Stecker abziehen, was bei USB-Geräten so nicht gilt. Es gibt diesen leichtfertigen Umgang mit externen Medien und den sollte man einfach für sein eigenes System nicht ignorieren.
Mein Fileserver läuft seit vielen Jahren sehr gut von einem USB-Stick, der allerdings so verbaut ist, dass er im Gehäuseinneren untergebracht ist und es gibt eine Kopie davon, die dort ebenfalls im Gehäuse hinterlegt ist, damit sie nicht einfach so mal verschwindet. Der USB-Stick, der dort mein Betriebssystem enthält, ist natürlich nicht mit einem normalen USB-Stick vergleichbar. Die anderen Details habe ich bereits angesprochen, wichtig ist aber, dass der ja dauernd in Benutzung ist und besonders Flash-Medien halten das nicht gut lange aus, wenn darauf viel geschrieben wird. Deshalb habe ich sehr viele Maßnahmen ergriffen, damit das so gut wie nie vorkommt. So etwas geht natürlich nur wenn der Stick immer da ist und und immer gleich benutzt wird, für Wechseldatenträger sind meine getroffenen Maßnahmen nicht realisierbar und deshalb erwähne ich die hier nicht.
Trotzdem gilt auch für Wechseldatenträger am USB-Port, dass man ihr unbeabsichtigtes, nicht autorisiertes abziehen einkalkulieren sollte und dass man (zumindest bei Flash-Medien, wie USB-Sticks), Schreibvorgänge so weit als möglich vermeiden sollte.
Bei nicht-Flash-Medien, wie etwa externen Festplatten, mag man das großzügiger sehen und bei USB3 mag es auch schnell genug zugehen, dass man den Datenverkehr zur reinen Dateisystemverwaltung ignorieren kann, aber, grundsätzlich gilt es mir, hier schon ein besonderes Augenmerk zu haben, zumal die Automatismen ja auch gar nicht nach der Art des Mediums unterscheiden. Für das Betriebssystem ist es recht egal, ob das Medium eine Platte oder ein Stick ist. Beide werden gleich behandelt und es gilt nur, was man dem Dateisystem als Regel mitgegeben hat.
Also, mein FreeBSD ist ja 8.4 und deshalb will ich nun nicht von UFS mit -U und -j reden, schon gar nicht von ZFS und mich auf ein Beispiel mit EXT-FS verlegen, das mein Lieblings-Dateisystem für Austauschdatenträger innerhalb der Unix-Welt darstellt und womit ich viel Erfahrung gesammelt habe.
EXT-FS ist das typische Linux-Dateisystem, momentan als ext4 mit Softupdates und Journals zu haben, ähnlich dem letzten UFS von uns, vielleicht nur noch etwas besser, worüber ich nicht streiten möchte.
Einen externen Datenträger lasse ich niemals ext4 formatieren!
Dafür nehme ich immer ext2 und schalte alle Journals und so weiter aus.
Beim Mounten wähle ich, so oft es eben geht, ro und wenn nicht, wenigstens noatime und sync als Option, so dieses denn geht.
Diese Vorsicht kann wahrscheinlich ein Automounter nicht bieten, weil er ja nicht wissen kann, wann ich nur zu lesen brauche.
Auch jeden automatischen Filesystem-Check schalte ich in der Regel aus.
Kurz könnte man vielleicht sagen, dass ich mich tatsächlich mit einem einfachen MSDOSFS am wohlsten auf dem Stick fühle und wenn das nicht geht, dann eben mit großer Vorsicht operiere und so weit es geht, diese einfache Struktur nachbilden will.

Ich möchte nun nicht sehr tief da weiter vordringen, zumal ich ja auch recht unbedarft bin. Es ist aber ein Unterschied, ob ein System Strom verliert und vielleicht noch Daten zu einem Dateisystem irgendwo speichern kann (oder bereits gemacht hatte), oder ob plötzlich mitten in einer Aktion ein Stick gezogen wird, der dann auch weg bleibt und beim nächsten Start des Systems nicht repariert werden kann, sondern munter im nächsten System eingebunden und benutzt werden soll.

Deshalb widerspreche ich leicht den letzten Darstellungen von Rakor, die an und für sich natürlich sehr sinnvoll sind. Mein Widerspruch hat nur geringes Gewicht, weil ich im Detail nicht genau weiß (obwohl ich mich damit mehrmals beschäftigt hatte), wie ein plötzliches Abziehen eines Mediums mit bestimmten Dateisystemen vom jeweiligen Betriebssystem behandelt wird und was das für Konsequenzen auf dem Stick selbst hat, da ja dann niemals ein konsistentes Dateisystem dort gewährleistet werden kann, wenn noch Daten im OS-Speicher gewesen sind, die eigentlich zurückgeschrieben hätten werden müssen.
Meine eigenen Erfahrungen sind natürlich von meiner geschilderten Vorsicht geprägt und damit durchaus positiv für ext2 oder FAT. Ich habe auch unter rauhen Bedingungen niemals eine Datei auf ext2 verloren.
NTFS, nur unter Windows und ohne Korrektur, scheint unkaputtbar.
Mit allen anderen Versionen kann ich nur zur Vorsicht raten, teilweise aus eigener Erfahrung.

Dabei will ich noch den grundsätzlichen Unterschied machen, zwischen dem Verhalten eines plötzlich abgezogenen Sticks auf das jeweilige Dateisystem und damit die enthaltenen Daten und dem Verhalten des OS, weil plötzlich ein Medium fehlt oder ein Dateisystem nicht mehr erreichbar ist. So etwas kann einen System-Freeze hervorrufen, auch, wenn auf einem Stick alles noch gut ist. Das ist für mich dann trotzdem ein möglichst zu vermeidender Zustand.

Weil ich denke, dass ZFS genau dem von mir geschilderten Konzept der Vorsicht widerspricht, halte ich es für ein NO-GO auf externen Medien. Ich wüsste nicht, wie ich ihm genau seine ansonsten positiven Eigenschaften abgewöhnen könnte, um es so zu zähmen, wie ich das für externe Medien sehen möchte.
Allerdings lese ich mit Erstaunen von sehr erfolgreichen Einsätzen des ZFS auf externen Medien.
Das kann bedeuten, dass meine Vorsicht nicht angebracht ist oder dass ich vollkommen falsch mit meinen Bedenken liege.

Für mich ist ein Speichermedium am USB ein möglichst passiv zu sehender Gast im System und deshalb braucht sein Dateisystem entsprechend restriktive Einstellungen, sonst fühle ich mich unwohl.
 
Zurück
Oben