UUID di un'unità che non verrà visualizzata in / dev / disk / by-uuid o blkid


12

Ho un'unità USB che non riceve un UUID. Quando guardo il contenuto di / dev / disk / by-uuid non esiste. Il punto di sviluppo in cui vive la partizione è su / dev / sdb. Sono in grado di vedere sdb in / dev / disk / by-path. Inoltre, quando utilizzo blkid, ottengo zero output. Suppongo di aver ricevuto un codice di errore che è tornato indietro.

C'è un modo per ottenere un UUID per questa partizione?

Risultato di 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

La tabella delle partizioni e la partizione sono state create con gparted, quindi è stata partizionata ed ha eseguito il comando mkfs.ext3.

Uscita di 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

È stato formattato come unità ext3. Perché viene visualizzato come ext2?


Devi chiarire di quale dispositivo stai parlando. /dev/sdbnon avrà un UUID, ma /dev/sdb1dovrebbe se è stato formattato.
Riccioli d'oro,

1
Mi riferisco a / dev / sdb1 che è in / dev / sdb
monksy

Pubblica l'output di fsck -n /dev/sdb1. Potresti anche provare a dargli un UUID con tune2fs -U random /dev/sdb1poi vedere. Non importa quale sia l'UUID.
Riccioli d'oro,

pubblicato [scusate se questo sta diventando fastidioso]
monksy

1
Nessun problema. Il bit "superblock non valido" può spiegare perché non esiste un UUID. Se è necessario eseguire il backup delle cose lì, provare a montarlo e farlo, quindi smontare e fsck -y /dev/sdb1; se non riesci a montarlo, esegui semplicemente fsck e speriamo che non vada perso nulla. Leggi man fsckper la differenza tra -ne -y.
Riccioli d'oro

Risposte:


13

Questo è ciò che dovrebbe succedere.

Ci sono due usi colloquiali del termine "disco" o "unità" in gioco qui: il primo si riferisce a un dispositivo fisico come una chiavetta USB. Il secondo si riferisce a una partizione del filesystem , di cui possono essercene diversi su un dispositivo fisico.

I nodi del dispositivo come si /dev/sdariferiscono al primo senso (dispositivi fisici); nodi del dispositivo come /dev/sda1riferimento al secondo (partizioni del filesystem). Ha senso? sda1 è una partizione di filesystem su disco fisico sda. È possibile formattare un intero dispositivo con una partizione, ma questo è insolito, quindi in generale /dev/sdanon avrà mai un UUID.

Le partizioni del filesystem hanno UUID, i dispositivi fisici no . Credo che vengano creati casualmente quando viene creato il filesystem (motivo per cui cambieranno se, ad esempio, riformattare una partizione, e perché se blocchi il livello copia una partizione e crei una nuova partizione con l'immagine, avrai due partizioni con lo stesso UUID).

Quindi, tieni presente che l'UUID viene creato quando la partizione viene formattata . Quando si partiziona un disco (ad es. Con fdisk), non si sta formattando nulla, si sta semplicemente impostando il tipo di partizione (e le dimensioni, ecc.) Nella tabella delle partizioni, quindi le nuove partizioni non formattate non hanno un UUID.

Infine, poiché è lo strumento utilizzato per formattare la partizione che imposta l'UUID, è possibile che strumenti molto vecchi non lo facciano. Tuttavia, puoi sempre impostarne uno nuovo (per ext) con tune2fs, ad esempio:

tune2fs -U random /dev/whatever

SDA è il mio disco principale. SDB, SDD, ecc. Sono unità USB. Ho aggiornato la mia risposta per includere fdisk -l per dimostrare che ha una partizione.
monk

@monksy: e il nodo del dispositivo che non segnala un UUID è /dev/sdb1o /dev/sdb? Il dopo non dovrebbe. Inoltre, l'output di fdisk non indica che una partizione è formattata e quindi non dimostra che dovrebbe avere un UUID disponibile. Ho aggiunto alcuni brevi paragrafi sopra per spiegare questo.
Riccioli d'oro,

È formulato. Se collegato [elementi pre fstab], lo strumento di montaggio automatico GNOME lo visualizzerebbe. Non ricevo un UUID per sdb1. Il fdisk -l è solo la prova che c'è una partizione lì
monksy

1
Ho dovuto riavviare prima che comparisse la partizione /dev/disk/by-uuid(Ubuntu 16.04 ma probabilmente influenza altri). Quindi (1) crea partizioni e filesystem (s), (2) riavvia. Probabilmente c'è un modo di non riavviare, ma ho preferito verificare che tutto provenga da un avvio a freddo, quindi non ho investigato.
Fazy

2

Il / dev / disk / by-uuid viene popolato all'avvio dal programma "partprobe". Se si dispone di un disco o di una partizione che partprobe non è in grado di riconoscere, partprobe non riesce con errore e interrompe la scansione del resto delle partizioni:

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

Questo è ovviamente un errore da parte di partprobe . Probabilmente specifico per Ubuntu 14.04 (fidato). La soluzione alternativa consiste nell'eseguire esplicitamente partprobe sulla partizione che non è stata analizzata:

root@machine1:~# partprobe /dev/sdd1

Si noti che partprobe viene avviato più volte in seguito a ogni operazione di gestione del disco, quindi la soluzione è di breve durata.


2

Ho scoperto che file -spuò fornire l'UUID per una partizione in un caso in cui blkidnon:

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)

1

Prova sudo con il tasto ls -l /dev/disk/by-uuidoblkid /dev/sdb1

Ho anche un partizionato + formattato sdb1, per qualche motivo non viene visualizzato nell'elenco a meno che non lo usi sudo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.