UUID eines Laufwerks, das nicht in / dev / disk / by-uuid oder blkid angezeigt wird

11

Ich habe ein USB-Laufwerk, das keine UUID empfängt. Wenn ich mir den Inhalt von / dev / disk / by-uuid ansehe, existiert er dort nicht. Der Entwicklungspunkt, in dem sich die Partition befindet, befindet sich in / dev / sdb. Ich kann SDB unter / dev / disk / by-path sehen. Außerdem erhalte ich bei Verwendung von blkid keine Ausgabe. Ich gehe davon aus, dass ich einen Fehlercode erhalten habe, der zurückgegeben wurde.

Gibt es eine Möglichkeit, eine UUID für diese Partition zu erhalten?

Ergebnis von fdisk -l /dev/sdb:

Disk /dev/sdb: 320.1 GB, 320072932352 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142446 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00082145

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   625141759   312569856   83  Linux

Die Partitionstabelle und Partition wurde mit gparted erstellt, daher wurde sie partitioniert und der Befehl mkfs.ext3 ausgeführt.

Ausgabe von fsck -n / dev / sdb1

fsck from util-linux 2.20.1
e2fsck 1.42 (29-Nov-2011)
fsck.ext2: Superblock invalid, trying backup blocks...
zwei was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
zwei: 11/19537920 files (0.0% non-contiguous), 1275097/78142464 blocks

Es wurde als ext3-Laufwerk formatiert. Warum wird das als ext2 angezeigt?

Mönch
quelle
Sie müssen klären, über welches Gerät Sie sprechen. /dev/sdbhat keine UUID, /dev/sdb1sollte aber, wenn sie formatiert wurde.
Goldlöckchen
1
Ich beziehe mich auf / dev / sdb1, das unter / dev / sdb
monksy
Veröffentlichen Sie die Ausgabe von fsck -n /dev/sdb1. Sie können auch versuchen, ihm eine UUID zu geben, um tune2fs -U random /dev/sdb1dann zu sehen. Es spielt keine Rolle, was die UUID ist.
Goldlöckchen
geschrieben [Entschuldigung, wenn dies nervig wird]
monksy
1
Kein Problem. Das "Superblock ungültig" -Bit kann erklären, warum es keine UUID gibt. Wenn Sie dort etwas sichern müssen, versuchen Sie es zu mounten und tun Sie das, dann entfernen Sie und fsck -y /dev/sdb1; Wenn Sie es nicht mounten können, führen Sie einfach den fsck aus und hoffentlich geht nichts verloren. Lesen Sie man fsckden Unterschied zwischen -nund -y.
Goldlöckchen

Antworten:

13

Das soll passieren.

Es gibt zwei umgangssprachliche Verwendungen des Begriffs "Festplatte" oder "Laufwerk": Die erste bezieht sich auf ein physisches Gerät wie einen USB-Stick. Die zweite bezieht sich auf eine Dateisystempartition , von der sich möglicherweise mehrere auf einem physischen Gerät befinden.

Geräteknoten wie /dev/sdabeziehen sich auf den ersten Sinn (physische Geräte); Geräteknoten wie /dev/sda1beziehen sich auf die zweite (Dateisystempartitionen). Sinn ergeben? sda1 ist eine Dateisystempartition auf der physischen Festplatte sda. Es ist möglich, ein gesamtes Gerät mit einer Partition zu formatieren. Dies ist jedoch ungewöhnlich und hat im Allgemeinen /dev/sdaniemals eine UUID.

Dateisystempartitionen haben UUIDs, physische Geräte nicht . Ich glaube, sie werden zufällig erstellt, wenn das Dateisystem erstellt wird (weshalb sie sich ändern, wenn Sie z. B. eine Partition neu formatieren, und wenn Sie eine Partition auf Blockebene kopieren und eine neue Partition mit dem Image erstellen, haben Sie zwei Partitionen mit der gleichen UUID).

Denken Sie also daran, dass die UUID beim Formatieren der Partition erstellt wird . Wenn Sie eine Festplatte partitionieren (z. B. mit fdisk), formatieren Sie nichts, sondern legen lediglich den Partitionstyp (und die Größe usw.) in der Partitionstabelle fest, sodass die neuen unformatierten Partitionen keine UUID haben.

Da es das Tool ist, mit dem die Partition formatiert wird, die die UUID festlegt, ist es möglicherweise möglich, dass sehr alte Tools dies nicht tun. Sie können jedoch immer eine neue (für ext) festlegen tune2fs, z.

tune2fs -U random /dev/whatever
Goldlöckchen
quelle
SDA ist mein Hauptantrieb. SDB, SDD usw. sind USB-Laufwerke. Ich habe meine Antwort so aktualisiert, dass sie fdisk -l enthält, um zu beweisen, dass es eine Partition gibt.
Mönch
@monksy: und der Geräteknoten, der keine UUID meldet, ist /dev/sdb1oder /dev/sdb? Letzteres sollte nicht. Auch fdisk Ausgang bedeutet nicht , dass eine Partition formatiert ist, und somit nicht beweisen , dass es sollte eine UUID zur Verfügung hat. Ich habe oben einige kurze Absätze hinzugefügt, um dies zu erklären.
Goldlöckchen
Es ist formatiert. Wenn [pre fstab items] eingesteckt ist, wird es von gnome automounter aufgerufen. Ich bekomme keine UUID für sdb1. Die fdisk -l ist nur ein Beweis dafür, dass es dort eine Partition gibt
monksy
1
Ich musste neu starten, bevor die Partition in /dev/disk/by-uuidangezeigt wurde (Ubuntu 16.04, betrifft aber wahrscheinlich andere). Also (1) Partition (en) und Dateisystem (e) erstellen, (2) neu starten. Es gibt wahrscheinlich einen Weg ohne Neustart, aber ich habe es vorgezogen zu überprüfen, ob alles von einem Kaltstart stammt, also habe ich nicht nachgeforscht.
Fazy
2

Die Datei / dev / disk / by-uuid wird beim Booten vom Programm "partprobe" ausgefüllt. Wenn Sie eine Festplatte oder Partition haben, die partprobe nicht erkennen kann, schlägt partprobe mit einem Fehler fehl und beendet das Scannen der restlichen Partitionen:

root@machine1:~# partprobe 
Error: /dev/mapper/sda5_crypt: unrecognised disk label
root@machine1:~# 

Das ist offensichtlich ein Fehler bei partprobe part . Wahrscheinlich spezifisch für Ubuntu 14.04 (vertrauenswürdig). Die Problemumgehung besteht darin, partprobe explizit auf der Partition auszuführen, die nicht gescannt wurde:

root@machine1:~# partprobe /dev/sdd1

Beachten Sie, dass partprobe bei jedem Festplattenverwaltungsvorgang viele Male gestartet wird, sodass die Problemumgehung nur von kurzer Dauer ist.

Arie Skliarouk
quelle
1

Versuchen Sie sudo mit dem ls -l /dev/disk/by-uuidoderblkid /dev/sdb1

Ich habe auch ein partitioniertes + formatiertes Format sdb1, aus irgendeinem Grund wird es nicht in der Liste angezeigt, es sei denn, ich verwende es sudo.

Gulchrider
quelle
1

Ich habe festgestellt, file -sdass die UUID für eine Partition in einem Fall angegeben blkidwerden kann, in dem dies nicht der Fall ist:

sudo file -s /dev/sda1
/dev/sda1: Linux rev 1.0 ext2 filesystem data (mounted or unclean), UUID=ef55765f-dae5-426f-82c4-0d98265c5f21 (needs journal recovery)
mwfearnley
quelle