UUID Dysk, który nie pojawi się w / dev / disk / by-uuid lub blkid


12

Mam napęd USB, który nie otrzymuje UUID. Kiedy patrzę na zawartość / dev / disk / by-uuid, to tam nie istnieje. Punkt dev, w którym znajduje się partycja, to / dev / sdb. Jestem w stanie zobaczyć sdb w / dev / disk / by-path. Ponadto, gdy używam blkid, otrzymuję zerową wydajność. Zakładam, że otrzymałem zwrócony kod błędu.

Czy istnieje sposób na uzyskanie identyfikatora UUID dla tej partycji?

Wynik 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

Tablica partycji i partycja została utworzona za pomocą gparted, więc została podzielona na partycje i uruchomiła polecenie mkfs.ext3.

Wyjście 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

Został sformatowany jako dysk ext3. Dlaczego to pokazuje się jako ext2?


Musisz wyjaśnić, o którym urządzeniu mówisz. /dev/sdbnie będzie miał UUID, ale /dev/sdb1powinien, jeśli został sformatowany.
goldilocks

1
Mam na myśli / dev / sdb1, który znajduje się w / dev / sdb
monksy

Opublikuj wynik fsck -n /dev/sdb1. Możesz także spróbować nadać mu identyfikator UUID, a tune2fs -U random /dev/sdb1następnie zobaczyć. Nie ma znaczenia, jaki jest UUID.
goldilocks

wysłano [przepraszam, jeśli to staje się denerwujące]
mnich

1
Nie ma problemu. Bit „superbloku nieprawidłowy” może wyjaśniać, dlaczego nie ma UUID. Jeśli potrzebujesz wykonać kopię zapasową, spróbuj zamontować i zrobić to, a następnie odmontuj i fsck -y /dev/sdb1; jeśli nie możesz go zamontować, po prostu uruchom fsck i miejmy nadzieję, że nic nie zostanie utracone. Przeczytaj man fsckróżnicę między -ni -y.
goldilocks

Odpowiedzi:


13

Tak powinno się stać.

W grze występują dwa potoczne zastosowania terminu „dysk” lub „dysk”: pierwsze odnosi się do urządzenia fizycznego , takiego jak pamięć USB. Drugi odnosi się do partycji systemu plików , której może być kilka na jednym urządzeniu fizycznym.

Węzły urządzeń jak /dev/sdaodnoszą się do pierwszego zmysłu (urządzenia fizyczne); węzły urządzeń jak /dev/sda1odnoszą się do drugiego (partycje systemu plików). Ma sens? sda1 to partycja systemu plików na dysku fizycznym sda. Możliwe jest sformatowanie całego urządzenia za pomocą jednej partycji, ale jest to niezwykłe, więc na ogół /dev/sdanigdy nie będzie mieć identyfikatora UUID.

Partycje systemu plików mają identyfikatory UUID, a urządzenia fizyczne nie . Uważam, że są tworzone losowo podczas tworzenia systemu plików (dlatego zmieniają się, jeśli np. Sformatujesz partycję i dlaczego, jeśli zablokujesz poziom, skopiujesz partycję i utworzysz nową partycję z obrazem, będziesz miał dwie partycje z tym samym UUID).

Pamiętaj więc, że identyfikator UUID jest tworzony podczas formatowania partycji . Podczas partycjonowania dysku (np. Za pomocą fdisk) niczego nie formatujesz, po prostu ustawiasz typ partycji (i rozmiar itp.) W tabeli partycji, więc nowe niesformatowane partycje nie mają identyfikatora UUID.

Wreszcie, ponieważ to narzędzie używane do formatowania partycji ustawia UUID, być może bardzo stare narzędzia tego nie robią. Zawsze możesz jednak ustawić nowy (dla ext) tune2fs, np .:

tune2fs -U random /dev/whatever

SDA to mój główny dysk. SDB, SDD itp. To napędy USB. Zaktualizowałem swoją odpowiedź, dodając fdisk -l, aby udowodnić, że ma partycję.
mnich

@monksy: a węzłem urządzenia, który nie zgłasza UUID, jest /dev/sdb1lub /dev/sdb? Później nie powinno. Ponadto dane wyjściowe fdisk nie wskazują, że partycja jest sformatowana, a zatem nie dowodzi, że powinien mieć dostępny identyfikator UUID. Dodałem kilka krótkich akapitów powyżej, aby to wyjaśnić.
goldilocks

Jest sformowany. Po podłączeniu [pre fstab items] gnomowy automounter przywołałby go. Nie otrzymuję UUID dla sdb1. Fdisk -l jest tylko dowodem na istnienie partycji
mnich

1
Musiałem zrestartować komputer, zanim pojawiła się partycja w /dev/disk/by-uuid(Ubuntu 16.04, ale prawdopodobnie dotyczy innych). Więc (1) utwórz partycje i systemy plików, (2) uruchom ponownie. Prawdopodobnie jest to sposób bez restartu, ale wolałem sprawdzić, czy wszystko wychodzi z zimnego rozruchu, więc nie zbadałem.
fazy

2

Podczas uruchamiania / dev / disk / by-uuid jest wypełniany przez program „partprobe”. Jeśli masz dysk lub partycję, której partprobe nie może rozpoznać, oznacza to, że partprobe kończy się błędem i przestaje skanować pozostałe partycje:

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

To oczywiście błąd części partprobe . Prawdopodobnie specyficzny dla Ubuntu 14.04 (zaufany). Obejściem tego problemu jest jawne uruchomienie partprobe na partycji, która nie została przeskanowana:

root@machine1:~# partprobe /dev/sdd1

Należy pamiętać, że partprobe jest uruchamiany wiele razy w wyniku każdej operacji zarządzania dyskiem, więc obejście jest krótkotrwałe.


2

Odkryłem, że file -smoże podać UUID dla partycji w przypadku, gdy blkidnie będzie:

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

Spróbuj sudo z ls -l /dev/disk/by-uuidlubblkid /dev/sdb1

Mam sdb1również sformatowane na partycje + , z jakiegoś powodu nie pojawia się na liście, chyba że użyję sudo.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.