USB Stick wird von fdisk falsch erkannt

serie300

Well-Known Member
Hallo allerseits,

ich habe hier einen USB Stick, den ich unter Win11 auf FAT32 formatiert habe (dort geht er auch), nachdem ich vorher Images draufgeschrieben hatte. Jetzt wird er von fdisk falsch erkannt. Bevor ich die Images drauf gespielt hatte ging der Stick auch unter FreeBSD.
dmesg log:
ugen0.9: <JetFlash Mass Storage Device> at usbus0
umass1 on uhub2
umass1: <JetFlash Mass Storage Device, class 0/0, rev 3.00/11.00, addr 11> on usbus0
umass1: SCSI over Bulk-Only; quirks = 0x8100
umass1:8:1: Attached to scbus8
da1 at umass-sim1 bus 1 scbus8 target 0 lun 0
da1: <JetFlash Transcend 8GB 1100> Removable Direct Access SPC-4 SCSI device
da1: Serial Number 00YE3OCLCKXJLZ0H
da1: 400.000MB/s transfers
da1: 7532MB (15425536 512 byte sectors)
da1: quirks=0x12<NO_6_BYTE,NO_RC16>

fdisk da1:
******* Working on device /dev/da1 *******
parameters extracted from in-core disklabel are:
cylinders=960 heads=255 sectors/track=63 (16065 blks/cyl)

parameters to be used for BIOS calculations are:
cylinders=960 heads=255 sectors/track=63 (16065 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 238 (0xee),(EFI GPT)
start 1, size 4294967295 (2097151 Meg), flag 0
beg: cyl 0/ head 0/ sector 2;
end: cyl 959/ head 254/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>

Die Angabe vom kernel in dmesg (insbesondere auch 7532MB) ist korrekt, aber fdisk: '2097151 Meg' und patitionType EFI/GPT ??? Was passiert da und wie mache ich den Stick für FreeBSD gängig ?
 
nochmal:
erst geht der Stick (auch unter FreeBSD)
dann spielst du Images drauf ( ? mir ist unklar, was das bedeutet ? )
dann partitionierst / formatierst du den Stick unter Win11 neu und legst ein FAT32 auf eine Partition und die funktioniert in Win11, aber nicht in FreeBSD.

Ist das so in etwa korrekt?

Zunächst: vergiss ganz einfach fdisk.
Es sollte zwar keinen Blödsinn anzeigen, aber es ist einfach auch nicht mehr wirklich zeitgemäß. Das sieht man schon an der Ausgabe der traditionellen vier Partitionen.

Das meint dann auch umgekehrt, dass FreeBSD durchaus mit Sticks umgehen kann, die fdisk nicht gut erkennt. Deshalb muss man deinen Fall etwas aufdröseln und sehen, was tatsächlich nicht erkannt wird.

Lass mal erst sehen, was gpart show ausgibt.
 
Zur Erklärung Images: Mit 'dd' .iso Bootimages draufgeschrieben.

OK fdisk ist Mist.
gpart show da1
=> 34 15425469 da1 GPT (7.4G)
34 2014 - free - (1.0M)
2048 15421440 1 ms-basic-data (7.4G)
15423488 2015 - free - (1.0M)

Wenn ich versuche zu mounten kommt (egal ob /dev/da1 oder /dev/da1s1:
mount -v -t msdosfs /dev/da1s1 /mnt/dos
mount_msdosfs: /dev/da1s1: Invalid fstype: Invalid argument
 
aber fdisk: '2097151 Meg' und patitionType EFI/GPT ???
Zeigt denn
gpart list da1
das so ähnlich an?
Bin auch etwas verwirrt, das der Startsektor für die erste Partition auf 1 ist (müsste normalerweise höher sein).
Möglicherweise wurde auch gar keine korrekte Partitionstabelle angelegt und das Dateisystem liegt direkt auf dem Stick?

Was ist denn die Ausgabe von blkid ?

Wie sieht denn das Layout unter Windows aus, wenn Du mit diskpart drauf schaust?

patitionType EFI/GPT ???
Ja. Der Partitionstyp ist falsch gesetzt. Für FAT32 ist der 0x0c und nicht 0xee wie bei Dir.

wie mache ich den Stick für FreeBSD gängig ?
Möglicherweise noch mal unter FreeBSD den Stick neu partitionieren und formatieren.

Bash:
gpart create -s MBR da1
gpart add -t fat32 -s 7530M da1
newfs_msdos -F 32 da1p0

siehe auch: gpart(8), newfs_msdos(8)

Mounten kannst Du die Partition mit:
mount -t msdosfs /dev/da1s1 /media
 
Ups. Du bist mir mit Deiner Antwort zuvorgekommen. :-)


Möglicherweise hat das Windows auch als ExFAT formatiert?
blkid sollte Dir das ggf. sagen.

Ich vermute da ist irgendwas durcheinander, vermutlich wurde eines der images direkt draufgeschrieben und hat da etwas durcheinander gebracht.

Am besten die ersten paar MB mal mit dd "nullen", dann neue partitionstabelle anlegen ;)
 
Wenn da vorher mal EFI/GPT/irgendein bootimage draufgeschrieben wurde, dann fasst Windows explizit diese Partition nicht an. Das müsste man dann über Systemsteuerung->Computerverwaltung->Datenträgerverwaltung (oder ähnlich) rauskärchern.
Weiters vermute ich auch, dass nicht FAT32 sondern exFAT draufgeschrieben wurde.

Einmal mit dd durchnullen (das block device, nicht die Partition) hilft, dann nochmal regulär wie vorgeschlagen unter FreeBSD partitionieren und formatieren. Testdatei draufschreiben und schauen, ob Windows das auch brav liest. Hier Gegentest und in der Datenträgerverwaltung schauen, ob alles passt wie es soll.

Du kannst auch NTFS benutzen, wenn das nur ein Austauschmedium werden soll.
 
also, zunächst möchte ich mal sagen, dass
2048 15421440 1 ms-basic-data (7.4G)
nicht wirklich was über das Dateisystem sagt, was auf dieser Partition evtl zu finden ist. Das ist eher eine Art Label, der aber in der Regel auch vernünftig benutzt wird.
gpart show zeigt uns, dass GPT benutzt wurde.
Sieh mal zunächst mit ls /dev | grep da1 was angelegt wurde. Bei GPT sollte die erste Partition da1p1 heißen, nicht da1s1.

Bin auch etwas verwirrt, das der Startsektor für die erste Partition auf 1 ist (müsste normalerweise höher sein).
ist er auch, bist wahrscheinlich in die falsche Spalte gerutscht.

Du hast ja schon einige Befehle zum Abarbeiten bekommen, um herausfinden zu können, was da nun wirklich für ein Dateisystem benutzt wurde.
Mir hat oft file -s geholfen. Zeige mal ein Beispiel:
Code:
gpart show da0
=>       40  240353200  da0  GPT  (115G)
         40     204760       - free -  (100M)
     204800     204800    1  efi  (100M)
     409600  239820800    2  ms-basic-data  (114G)
  240230400     122840       - free -  (60M)
 
  > file -s /dev/da0p2
/dev/da0p2: DOS/MBR boot sector, code offset 0x52+2, OEM-ID "NTFS    ", sectors/cluster 8, Media descriptor 0xf8, sectors/track 63, heads 255, hidden sectors 409600, dos < 4.0 BootSector (0x80), FAT (1Y bit by descriptor); NTFS, sectors/track 63, sectors 239820799, $MFT start cluster 4, $MFTMirror start cluster 14988799, bytes/RecordSegment 2^(-1*246), clusters/index block 1, serial number 05ed20e613f871d16; contains bootstrap BOOTMGR
Auch das ist nicht wirklich eindeutig, aber zeigt doch ziemlich sicher, dass hier ein NTFS benutzt wurde.

Edit: PS: was man dann allerdings auch mit blkid schon gesehen hatte, was ja zuvor schon mal erwähnt wurde.
 
Mir ist immer noch nicht klar, was das alles miteinander zu tun hat.

Du hast einen USB Stick formatiert, und der hat dann auch erstmal funktioniert. Dann hast du mit dd ein .iso darauf geschrieben?

Direkt auf das Blockdevice? Dann ist die vorherige Formatierung erstmal irrelevant. Nicht alle .isos lassen sich einfach auf USB Sticks schreiben, auch müssen die idr. auf das Blockdevice direkt und nicht auf die Partition geschrieben werden.

Am besten du schreibst mal genau, was du gemacht hast.
 
So wie ich das verstehe, hatte er zuerst iso Boot Images auf den Stick per dd geschrieben, danach den Stick unter Win11 formatiert.

Aber das geht so nicht. Ich nehme unter Win11 Minitool Partition Wizard (kostenlos), lösche alle Partitionen und erstelle eine neue mit z.B. FAT32. Damit geht es am einfachsten.

Die von @mr44er beschriebene Methode klingt auch logisch und gut.
 
So wie ich das verstehe, hatte er zuerst iso Boot Images auf den Stick per dd geschrieben, danach den Stick unter Win11 formatiert.
Ah danke, ja jetzt versteh ichs. Dann hilft vielleicht wirklich einmal Stick komplett Nullen.
Aber das geht so nicht. Ich nehme unter Win11 Minitool Partition Wizard (kostenlos), lösche alle Partitionen und erstelle eine neue mit z.B. FAT32. Damit geht es am einfachsten.

Natürlich kann Win11 einen Stick mit fat32 formatieren, auch wenn der default glaub ich exfat ist. Einfach in die Datenträgerverwaltung.
 
Natürlich kann Win11 einen Stick mit fat32 formatieren, auch wenn der default glaub ich exfat ist. Einfach in die Datenträgerverwaltung.

Hier geht es weniger um das Formatieren sondern eher um das Partitionieren wenn ich das ganze richtig sehe.

Und da sind Windows Bordmittel tatsächlich etwas begrenzt und die es gibt versteckt, wenn es darum geht eine Partitionstabelle (Egal ob MBR oder GPT) komplett zu löschen und neu anzulegen, mit den eingebauten Gui-Tools geht AFAIK nur verändern wenn schon vorher eine vorhanden ist.

Selbst der Windows-Installer erstellt normalererweise keine neue wenn schon etwas vorhanden ist und bietet da auch keine Option für, man kann lediglich den Inhalt ändern.

Als Windows-Admin nutze ich für alles was "mehr" erfordert meist einen Linux-Boot-Stick und gparted.
 
So gerade versucht mount -t msdosfs /dev/da1[B]b[/B]1 /mnt/dos ; das klappt und
ls -l /mnt/dos/
total 4
drwxr-xr-x 1 root wheel 4096 2 Mai 16:22 System Volume Information
und
ls -al /mnt/dos/Sys*
total 16
drwxr-xr-x 1 root wheel 4096 2 Mai 16:22 .
drwxr-xr-x 1 root wheel 4096 31 Dez. 1979 ..
-rwxr-xr-x 1 root wheel 76 2 Mai 16:22 IndexerVolumeGuid
-rwxr-xr-x 1 root wheel 12 2 Mai 16:22 WPSettings.dat

df liefert auch die richtige Größe für dev/da1p1

Weil gpt drauf ist heißt es jetzt da1b1 statt da1s1 ? Bisher hatte ich alle externen SD, USB Sticks als da?s1 gemounted und nicht weiter darüber nachgedacht.
Again what learned.

Vielen Dank für die Hilfestellung
 
Mir ist immer noch nicht klar, was das alles miteinander zu tun hat.
mir auch nicht wirklich und die zugehörigen Fragen wurden ja auch ignoriert, so dass wir das nicht wissen können und wohl auch nicht zu wissen brauchen.

Ich beziehe mich lediglich auf die letzte und daher vermutlich verlässlichste Ausgabe:
gpart show da1
=> 34 15425469 da1 GPT (7.4G)
34 2014 - free - (1.0M)
2048 15421440 1 ms-basic-data (7.4G)
15423488 2015 - free - (1.0M)
Das hat also offenbar Win11 auf den Stick gebracht und man kann sich darüber streiten, wie gut oder richtig es wohl ist und wir wissen nicht, mit welchen Tools oder Programmen das gemacht wurde, aber es ist jedenfalls eine funktionierende GPT-Partitionierung eines Datenträgers mit nur einer einzigen Partition und umgebenden freien Bereichen und ohne nun zu rechnen, scheint das mir sogar gut gemacht zu sein.

Für den Rest, wissen wir zu wenig, aber es sieht doch ganz danach aus, dass der allereinfachste Fall überhaupt vorgelegen hatte, dass nämlich eine nicht vorhandene Partition gemountet werden sollte.
Weder eine schlechte Partitionstabelle, noch Fehler im Dateisystem und so weiter, was ja alles noch hätte sein können...


Einen Gruß an @marcel und seinen dsbmd/dsbmc, die solche Dinge als Automatismus auflösen, so dass man die Handarbeit schon geneigt ist, vollkommen zu vergessen. In unserem Fall hätte das problemlos funktioniert.
 
Als Windows-Admin nutze ich für alles was "mehr" erfordert meist einen Linux-Boot-Stick und gparted.
Ich hatte mit GParted da leider ab und an Probleme. Selbst das Festplattendienstprogramm von macOS ist nicht immer die beste Lösung, da blieb auch oft eine versteckte EFI übrig. Dieses Minitool PW lieferte aber bislang immer zuverlässige Ergebnisse.


Weil gpt drauf ist heißt es jetzt da1b1 statt da1s1
Äh, nö das kann nicht sein.

Einen Gruß an @marcel und seinen dsbmd/dsbmc, die solche Dinge als Automatismus auflösen
Bei GhostBSD gibt es einen bequemen Mechanismus der so wie unter einem Linux/macOS funktioniert. Ich bevorzugte stets diesen. Einfach automatisch mounten und weiter keinen Kopf drum machen ;)
 
Zurück
Oben