Will USB-Stick neu partitionieren, klappt aber nicht

cabriofahrer

Well-Known Member
Habe einen P-Touch 2430PC-USB-Stick und will den komplett neu partitionieren. Habe z.B. diesen thread gefunden:

http://forums.freebsd.org/showthread.php?t=11260

Doch letztendlich hat der Stick immer vier Partitionen, von denen 3 "unused" sind. Beim Einstecken kommt unter Windows immer ein Popup mit einem Bild, auf meinem FreeBSD-System wird immer eine "CD" mit einem Namen "My_CD" gemontet, was mich stört. Ich will den Stick komplett planieren un nur eine Partition, oder eben das haben, was nötig ist, um den Stick normal zu benutzen.
Braucht dieser dazu wirklich 4 Partitionen?
Wenn ich z.B. ein "fdisk -BI /dev/da0" mache, bekomme ich folgende Meldung:

elvis69# dd if=/dev/zero of=/dev/da0 bs=2m count=1
1+0 records in
1+0 records out
2097152 bytes transferred in 0.329094 secs (6372503 bytes/sec)
elvis69# fdisk -BI /dev/da0
******* Working on device /dev/da0 *******
fdisk: invalid fdisk partition table found
elvis69#

Welche Schritte muß ich nun also genau unternehmen, um einen korrekt partitionierten und wirklich leeren (ohne Popup) Stick zu bekommen?
 
die fdisk datenstruktur enthaelt halt vier partitionen. wie gross die einzelnen partitionen sind gibt an "wieviele" es sind.
 
Hmm...war die Lösung nicht, den Stick erst gar nicht zu partitionieren, sondern gleich als gesamtes zu formatieren? Ich erinnere mich jetzt grad auch nicht genau...
 
Hi,

Du kannst den einfach mal mit random oder nullwerten mittels dd übärschreiben. In den meisten Fällen reicht das aus. Danach einfach so partitionieren wie Du das möchtest. Es gibt abär auch ein paar Sticks wo man das per Firmware Update vom Hersteller aus auf den Stick erst machen muss, um die "Sondergeschichten" los zu werden.

Gruß Bummibär
 
du solltest erst deinen Stick genauer kennen, manchmal ist es nicht nur ein Stick in einem Gehäuse, sondern mehrere. Es wird da mitunter ein recht kleiner Stick benutzt, auf dem dann die unsinnigen Informationen drauf sind und der könnte dann da1 sein und von dir noch gar nicht angetastet worden sein. Vernichten kannst du den dann nie, nur platt machen.
Also, sieh dir dmesg an, steck den Stick und sieh nochmal dmesg an.
Dann entscheide weiter.

Mit dd schreibst du in deinem Beispiel lauter Nullen an den Anfang des Sticks da0 und damit löschst du sämtliche Partitionseinträge.
Du kannst dann neue Partitionen erstellen, zB mit fdisk. Du brauchst das nicht unbedingt. Nicht alle Betriebssysteme können damit leben, dass ein Medium keine Partitionen hat, FreeBSD und Linux beherrschen das aber. Hast du keine Partition, legst du einfach dein Dateisystem auf da0a an, anstatt da0s1a und natürlich entsprechend, bei da1 und so weiter, falls das in Frage kommt.

FreeBSD macht keine Pop-Ups.
Da hast du irgendeinen Dienst eingerichtet, der irgendwie konfiguriert ist. Vielleicht kannst du da was ändern. Grundsätzlich brauchst du das natürlich gar nicht automatisch zu machen und wirst dann niemals Ärger haben.
 
Du kannst den Stick grundsätzlich direkt formatieren. Jedoch habe ich schon mehrmals gehört, dass das (speziell unter Windows) wohl einige Probleme machen kann.

Die Frage ist: Stört es dich, dass es da noch drei ungenutze Partitionen gibt? Das hat Jahrzehnte keinen gestört ;) Alternativ kannst du den Stick natürlich auch mit GPT partitionieren, allerdings wird er dann unter älteren Windows-Versionen nicht funktionieren. Ich halte es in der heutigen Zeit jedoch für legitim entsprechend aktuelle Systeme zu erwarten.
 
Wie in der ersten Antwort im angeführten Thread steht und wie auch Rakor sagt, kann man den Stick komplett mit einem Dateisystem vollschreiben: newfs_msdos -F 32 /dev/da0
Dann gibt es keine Partitionstabelle usw., gemountet wird dann natürlich auch /dev/da0 statt /dev/da0s1. Unter Windows funktioniert das, soweit ich feststellen konnte, problemlos. Vielleicht bezieht sich Rakor auf ältere Windows-Versionen.
Wenn Du partitionieren willst, mach es mit gpart:
Code:
gpart destroy -F -f x
gpart add -t 12 -i 1 -s 7G -f x da0
gpart add -t 12 -i 2 -s 5G -f x da0
gpart add -t 12 -i 3 -s 3G -f x da0
set -a active -i 1 -f x da0
gpart list da0
gpart commit da0
newfs_msdos -F 32 /dev/da0s1
usw.
Hier werden drei Partitionen mit 7, 5 und 3 GB angelegt und die erste "aktiv" geschaltet. "-f x" wartet mit dem Rausschreiben bis zum "commit", so daß der MBR nur einmal geschrieben werden muß. Alles Weitere steht in man gpart.
 
Danke für Eure Antworten, ich habe bis jetzt leider keine Zeit gehabt, mich weiter damit zu beschäftigen. Es schint wohl standartmäßig so zu sein, daß alle Sticks vier Partitionen aufweisen. Ich war irrtümlich der Meinung, daß dies fehlerhaft sei.
Was bei diesem Stick konkret hinzukommt, ist daß ein Teil als "CD" erkannt wird:

da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
da0: < 0.00> Removable Direct Access SCSI-2 device
da0: 40.000MB/s transfers
da0: 950MB (1945600 512 byte sectors: 64H 32S/T 950C)
(probe0:umass-sim0:0:0:1): TEST UNIT READY. CDB: 0 20 0 0 0 0
(probe0:umass-sim0:0:0:1): CAM status: SCSI Status Error
(probe0:umass-sim0:0:0:1): SCSI status: Check Condition
(probe0:umass-sim0:0:0:1): SCSI sense: NOT READY asc:3a,0 (Medium not present)
cd1 at umass-sim0 bus 0 scbus2 target 0 lun 1
cd1: < 0.00> Removable CD-ROM SCSI-0 device
cd1: 40.000MB/s transfers
cd1: Attempt to query device size failed: NOT READY, Medium not present
GEOM: da0: geometry does not match label (64h,33s != 64h,32s).
GEOM: da0: media size does not match label.
elvis69#


Daher trotz Formatierung immernoch der Popup in Windows bzw. eine Erkennung als CD unter Gnome mit Hal. Wenn man nun auf diese "CD" geht sieht man einen Ordner "P-touch2430PC" und eine Datei "autorun.inf".
Da scheint also irgend etwas Anderes unabhängig vom /dev/da0 zu sein, was unter allen Betriebssystemen als "CD" erkannt wird.
 
Ich hatte selbiges mit Sandisk USB Sticks und deren "U3"-Dinges. Wurde auch als CD erkannt.

Da gab es von Sandisk ein Tool auf deren Homepage, um das "U3" zu entfernen und einen normalen Stick draus zu machen. Ob das auch ohne dieses spezielle Tool funktionieren würde, hab ich nicht probiert, aber hier ist etwas Zusatzinfo um U3 unter Linux zu entfernen...evtl. gibt dir das neue Ideen...
http://jimcooncat.wordpress.com/2009/05/14/attempting-to-remove-u3-from-linux/
 
sieh mal das an:
da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
cd1 at umass-sim0 bus 0 scbus2 target 0 lun 1

Für mich sieht das danach aus, als wenn es zwei Sticks in einem sind und nicht zwei Partitionen. So ein ähnliches Problem hatte ich oben schon mal angesprochen.
Dafür habe ich keine Lösung, die ich aus dem Hut ziehen könnte, aber, ich kann dir mal sagen, was ich da machen würde.

Zunächst: nicht alle Sticks haben vier Partitionen!
Du kannst einen Stick wie eine gewöhnliche Festplatte partitionieren.

Nun würde ich mal versuchen, den Verdacht zu erhärten und herauszufinden, was ich da eigentlich für eine Aufteilung auf meinem Stick habe.

ls /dev | grep da
sollte alle Geräte listen, die ein da im Namen haben und die dazu gefunden Partitionen, also etwa so eine Ausgabe:
ada0
da0
da0p1
da0p2
da1
da1s1
Das soll nur ein Beispiel sein, aber du siehst dann schön, welche dax überhaupt erkannt sind und wie ihre Partitionen heißen, so es sie gibt. Heißen sie p, sind es (wenn ich da nun nichts verwechsele) mit GPT erstellt und heißen sie s, sind sie mit MBR festgelegt worden.

ls /dev | grep cd
sollte analoges für cd-Geräte zeigen, wenn sie entsprechend angelegt werden konnten.

Genaueres zu den Geräten kann die auch camcontrol devlist ausgeben, aber, viel sinnvoller erscheint mir das, was mit gpart ausgelesen werden kann.
gpart show /dev/da0
würde in deinem Fall die erkannten Partitionen und das Partitionschema des ersten Sticks anzeigen. Das sagt dann schon deutlich mehr.

Wenn es so ist, wie ich das vermute, dann kannst du gezielt das gerät "Nullen", das du nicht brauchst. Im Zweifel also mit einem beherzten dd if=/dev/zero of=/dev/cd1 einfach mal komplett Bit für Bit (oder Block für Block) auf Null setzen. Zuvor kannst du ja nochmal schauen, dass dein gerät nicht gemounted wurde und wie groß es ist, denn das Bitweise Schreiben geht langsam und wenn das zu viel ist, kannst du auch einfach einen kleineren Bereich "Nullen". Die Anwendung von dd wurde ja schon erwähnt.
Solltest du außer da0 auch da1 finden, ist das ein guter Hinweis für den zweiten Stick im ersten, aber ich bin nicht sicher, wie die Erkennung des CD-Filesystems sich hier auswirkt. Dann würde ich da1 "Nullen".

Du kannst das mutig gleich probieren, aber ich würde erst noch ein wenig schauen.
Dafür ist auch das Tool mmls aus dem sleuthkit (in den Ports) recht anschaulich, aber es bringt kaum mehr information, als gpart, das schon von Haus aus installiert ist.
 
Ich hatte selbiges mit Sandisk USB Sticks und deren "U3"-Dinges. Wurde auch als CD erkannt.

Da gab es von Sandisk ein Tool auf deren Homepage, um das "U3" zu entfernen und einen normalen Stick draus zu machen. Ob das auch ohne dieses spezielle Tool funktionieren würde, hab ich nicht probiert, aber hier ist etwas Zusatzinfo um U3 unter Linux zu entfernen...evtl. gibt dir das neue Ideen...
http://jimcooncat.wordpress.com/2009/05/14/attempting-to-remove-u3-from-linux/

Ich hatte damals den Stick einfach neu partitioniert um den U3 Kam los zu werden.
 
OK, sieht folgendermaßen aus:

$ ls /dev | grep da
ada0
ada0p1
ada0p2
ada0p3
da0
da0a
$ ls /dev | grep cd
cd0
cd1
$ camcontrol devlist
<IC25N080ATMR04-0 MO4OAD4A> at scbus0 target 0 lun 0 (pass0,ada0)
<PIONEER DVD-RW DVRKD08RS 1.02> at scbus1 target 0 lun 0 (pass1,cd0)
< 0.00> at scbus2 target 0 lun 0 (da0,pass2)
< 0.00> at scbus2 target 0 lun 1 (cd1,pass3)
$ gpart show /dev/da0
=> 0 1945600 da0 BSD (950M)
0 1501808 1 freebsd-ufs (733M)
1501808 443792 - free - (216M)

$

Auf da0 ist momentan das FreeBSD9.1-x64-Installationsimage drauf. Was eventuell vernichtet werden muß ist cd1. Ich nehme an, das wird kein nennenswerter Speicherplatz sein?
 
exactely
Jedenfalls würde ich es genau mit cd1 probieren.
Wie die das machen, dass da direkt ein cd-Gerät erkannt wird, ist mir unklar.
Wieviel Speicher das hat, weißt du ja besser, weil es zum Beispiel ja schon mal gemountet war.
gpart show auf ein CD-Gerät habe ich noch nie probiert, besonders in diesem Fall würde mich die Ausgabe nun aber interessieren. Kannst du das vielleicht vorab noch versuchen?

Den dd Befehl zum Nullen hattest du ja oben schon mal zitiert, einfach auf /dev/cd1 anwenden und mal sehen, was dabei dann herauskommt.
 
Klar. Egal ob gemountet oder nicht:

$ gpart show /dev/cd1
gpart: No such geom: /dev/cd1.
$

Gleiche Ausgabe wie bei einem gpart show /dev/cd0 bei einer eingelegten DVD.

Und weiter:

elvis69# dd if=/dev/zero of=/dev/cd1
dd: /dev/cd1: Device not configured
1+0 records in
0+0 records out
0 bytes transferred in 0.000692 secs (0 bytes/sec)
elvis69# dd if=/dev/zero of=/dev/cd1
dd: /dev/cd1: Invalid argument
1+0 records in
0+0 records out
0 bytes transferred in 0.000251 secs (0 bytes/sec)
elvis69#

Einmal nicht gemountet und einmal gemountet. Läßt sich so wohl nicht plattmachen, werde es mal mit dem Tool unter Windows versuchen.
 
Zuletzt bearbeitet:
extremely.

Oh, btw: das mit den merkwürdigen englischen Ausdrücken zu Anfang der letzten Beiträge war ein Insider-Scherz, den hier aber keiner verstehen kann. Er hat mich trotzdem erfreut.

Merkwürdig ist das alle mal und es wundert mich, wie die das machen. Ich sehe da durchaus mehrere Möglichkeiten, bei denen es kaum ein Tool schaffen kann, diese wieder rückgängig zu machen.
dd kann nicht nur direkt auf Geräte schreiben, sondern auch in Dateien. Vielleicht hätte man noch probieren können, es direkt auf den Mountpoint des eingebundenen Gerätes loszulassen.
Nunja, vielleicht bekomme ich mal so einen Stick zum Spielen ;-)
 
Dieses CD-Laufwerk wird durch die Firmware des Sticks emuliert, damit Windows von der "CD" die Treiber und andere Software installieren kann. Es schadet erst einmal nicht und damit zu leben ist eine durchaus sinnvolle, pragmatische Lösung. Wenn man das partout nicht will, gibt es verschiedene Möglichkeiten. Sie alle meist darauf hinaus, dass der Firmware des Stick ein korrekter Steuercode geschickt werden muss, sofern sie denn das Abschalten der CD-Emulation überhaupt unterstützt. Unter FreeBSD kann man es je nach Gerätetyp mit usbhtctl(8) und usbconfig(8) machen, aber dafür muss man erst einmal das Steuerzeichen kennen. Der sinnvollere Weg ist daher, einmal die beiliegende Treibersoftware für Windows anzuschauen.
 
nach der Info von Yamagi kannst du das alles vergessen.
Das ist genau einer dieser schlimmen Möglichkeiten, die ich mir vorgestellt habe. Um das ein wenig übertrieben auszudrücken, kannst du dir vorstellen, dass dieses CD-Gerät in den Stick eingebaut ist, ein Teil der Hardware deines Sticks ist.
Das ist nicht ganz korrekt, aber alle "normalen" Tricks versagen so, als wenn es genauso wäre.
Was du ändern müsstest, liegt vor oder unterhalb der Ebene der Dateisysteme und bereits erkannter Medien. Du brauchst quasi einen Schraubendreher, um das Gerät auszubauen, das du nicht möchtest, also SW, die sehr grundlegende Dinge verändern kann und diese kennen normale User wie wir nicht ausreichend, um da erfolgreich sein zu können.

Du wirst vermutlich noch nicht mal in der Lage sein, die Inhalte der CD zu löschen, bzw zu überschreiben. Doch probieren kannst du das.
Du hast ja erklärt, dass die CD gemountet wird. Dann hat sie einen Mountpoint bekommen, welchen, hängt von deinem Automatismus ab. Sehen kannst du ihn mit mount ohne jede Option und vielleicht heißt er /media/cd1 oder /mnt/cdrom oder so ähnlich.
In diesem Verzeichnis erscheint der Inhalt der CD, wenn die gemountet ist.
Du kannst nun alles löschen, was darin ist und mal sehen, was dann passiert.
Du wirst damit aber nichts an der Firmware des Sticks ändern, deine CD würde also noch bestehen, nur leer sein, falls es so klappt.

Einfacher ist dann sicher (erfordert aber viel Lese-Arbeit und probieren), wenn du eine entsprechende Ausnahme-Regel für HAL und/oder deinen Mount-Manager erstellst und das Gerät einfach ignorierst. Entsprechende Beispiele findest du, so werden zum Beispiel meist die eingebauten Festplatten ignoriert und deren Partitionen nicht von HAL weitergeleitet.
 
Zurück
Oben