Ich habe ein USB-Stick und eine Partition:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
└─sda1 8:1 0 931.5G 0 part /
sdb 8:16 1 7.5G 0 disk
└─sdb1 8:17 1 7.5G 0 part
und ich habe mit Befehl formatiert:
# mkfs.fat -n A /dev/sdb
und es funktioniert gut.
Aber danach habe ich die Manpage für mkfs durchgesehen:
mkfs is used to build a Linux filesystem on a device, usually a hard
disk partition. The device argument is either the device name (e.g.
/dev/hda1, /dev/sdb2), or a regular file that shall contain the
filesystem. The size argument is the number of blocks to be used for
the filesystem.
Es heißt, mkfs
sollte mit Partitionsnummer funktionieren. Und mein Problem ist, warum mein Betrieb ohne Fehleraufforderung funktioniert?
linux
filesystems
mkfs
Alaneuler
quelle
quelle
Antworten:
Das Erstellen eines Dateisystems auf einer ganzen Festplatte anstelle einer Partition ist möglich, aber ungewöhnlich. Die Dokumentation nur erwähnt ausdrücklich die Partition , denn das ist der üblichstee Fall (es sagt in der Regel ). Sie können ein Dateisystem für alles erstellen, was sich ausreichend wie eine Datei mit fester Größe verhält. Wenn Sie also Daten an einem bestimmten Speicherort schreiben und von demselben Speicherort zurücklesen, erhalten Sie dieselben Daten zurück. Dies umfasst ganze Festplatten, Festplattenpartitionen und andere Arten von Blockgeräten sowie reguläre Dateien (Festplattenabbilder).
Danach
mkfs.fat -n A /dev/sdb
haben Sie keine Partition mehr auf dieser Festplatte. Beachten Sie, dass der Kernel immer noch denkt, dass die Festplatte eine Partition hat, da die Partitionstabelle im Speicher zwischengespeichert bleibt. Sie sollten jedoch nicht mehr versuchen, es zu verwenden/dev/sdb1
, da es nicht mehr existiert. Schreiben , um es verfälschen würde das Dateisystem Sie erstellt/dev/sdb
da/dev/sdb1
ist ein Teil/dev/sdb
(alles außer ein paar hundert Bytes am Anfang). Führen Sie den Befehlpartprobe
als root aus, um den Kernel anzuweisen, die Partitionstabelle erneut zu lesen.Obwohl das Erstellen eines Dateisystems auf einer ganzen Festplatte möglich ist, empfehle ich es nicht. Einige Betriebssysteme haben möglicherweise Probleme damit (ich denke, Windows würde damit fertig werden, aber einige Geräte wie Kameras könnten dies nicht tun), und Sie verlieren die Möglichkeit, andere Partitionen zu erstellen. Siehe auch Die Vorzüge eines partitionlosen Dateisystems
quelle
Es ist im Allgemeinen in Ordnung, ein Dateisystem auf einem ganzen Gerät zu installieren, anstatt die Partitionen zu partitionieren und zu formatieren, wenn Sie nicht beabsichtigen, mehr als ein Dateisystem auf Ihrem Gerät zu haben. Sie müssen einfach konsequent sein; Da Sie das Dateisystem auf
sda
anstatt setzensda1
, müssen Sie auch mountensda
, dasda1
es überhaupt nicht existiert.Das Gerät in Ihrer Frage scheint ein FAT-formatiertes Wechseldatenträger zu sein: Wenn es mit eingebetteten Geräten verwendet werden soll, die eine mehr oder weniger detaillierte Vorstellung davon haben, wie Dateisysteme bereitgestellt werden können, lohnt es sich möglicherweise, dies zu testen Tatsächlich wird ein Dateisystem für das gesamte Gerät ohne Partitionstabelle unterstützt. (Zum Beispiel neigen Kameras dazu, eine einzelne Partition zu erstellen und diese zu formatieren. Es ist durchaus möglich, dass sie eine partitionlose Speicherkarte für unbrauchbar erklären.)
quelle