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?
/dev/sdb
nie będzie miał UUID, ale/dev/sdb1
powinien, jeśli został sformatowany.fsck -n /dev/sdb1
. Możesz także spróbować nadać mu identyfikator UUID, atune2fs -U random /dev/sdb1
następnie zobaczyć. Nie ma znaczenia, jaki jest UUID.fsck -y /dev/sdb1
; jeśli nie możesz go zamontować, po prostu uruchom fsck i miejmy nadzieję, że nic nie zostanie utracone. Przeczytajman fsck
różnicę między-n
i-y
.Odpowiedzi:
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/sda
odnoszą się do pierwszego zmysłu (urządzenia fizyczne); węzły urządzeń jak/dev/sda1
odnoszą 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/sda
nigdy 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 .:źródło
/dev/sdb1
lub/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ć./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.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:
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:
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.
źródło
Odkryłem, że
file -s
może podać UUID dla partycji w przypadku, gdyblkid
nie będzie:źródło
Spróbuj sudo z
ls -l /dev/disk/by-uuid
lubblkid /dev/sdb1
Mam
sdb1
również sformatowane na partycje + , z jakiegoś powodu nie pojawia się na liście, chyba że użyjęsudo
.źródło