UUID диска, который не будет отображаться в / dev / disk / by-uuid или blkid

12

У меня есть USB-накопитель, который не получает UUID. Когда я смотрю на содержимое / dev / disk / by-uuid, его там не существует. Пункт разработки, в котором находится раздел, находится в / dev / sdb. Я могу видеть SDB в / dev / disk / by-path. Также при использовании blkid я получаю нулевой вывод. Я предполагаю, что я получил код ошибки, который вернулся назад.

Есть ли способ получить UUID для этого раздела?

Результат 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

Таблица разделов и раздел были созданы с помощью gparted, поэтому он был разделен и выполнил команду mkfs.ext3.

Вывод 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

Он был отформатирован как диск ext3. Почему это отображается как ext2?

monksy
источник
Вам необходимо уточнить, о каком устройстве вы говорите. /dev/sdbне будет иметь UUID, но /dev/sdb1должен, если он был отформатирован.
Златовласка
1
Я имею в виду / dev / sdb1, который находится в / dev / sdb
monksy
Опубликовать вывод fsck -n /dev/sdb1. Вы также можете попытаться присвоить ему UUID, а tune2fs -U random /dev/sdb1затем посмотреть. Неважно, что такое UUID.
Златовласка
опубликовано [извините, если это раздражает]
monksy
1
Нет проблем. Бит «неверный суперблок» может объяснить, почему отсутствует UUID. Если вам нужно выполнить резервное копирование, попробуйте смонтировать и сделать это, затем размонтировать и fsck -y /dev/sdb1; если вы не можете его смонтировать, просто запустите fsck и, надеюсь, ничего не потеряно. Прочитайте man fsckразницу между -nи -y.
Златовласка

Ответы:

13

Вот что должно было случиться.

Здесь есть два разговорных использования термина «диск» или «диск»: первое относится к физическому устройству, такому как флешка. Второй относится к разделу файловой системы , которых может быть несколько на одном физическом устройстве.

Узлы устройства, такие как /dev/sdaотносятся к первому смыслу (физические устройства); Узлы устройства, такие как /dev/sda1ссылки на второй (разделы файловой системы). Есть смысл? sda1 - это раздел файловой системы на физическом диске sda. Можно отформатировать все устройство с одним разделом, но это необычно, поэтому в общем /dev/sdaслучае UUID никогда не будет.

Разделы файловой системы имеют идентификаторы UUID, а физические устройства - нет . Я считаю, что они создаются случайным образом при создании файловой системы (именно поэтому они изменятся, если вы, например, переформатируете раздел, и почему, если вы блокируете уровень копирования, копируете раздел и создаете новый раздел с изображением, у вас будет два раздела с тем же UUID).

Итак, имейте в виду, что UUID создается при форматировании раздела . Когда вы разбиваете диск (например, с помощью fdisk), вы ничего не форматируете, вы просто задаете тип раздела (и размер и т. Д.) В таблице разделов, чтобы новые неформатированные разделы не имели UUID.

Наконец, поскольку это инструмент, используемый для форматирования раздела, который устанавливает UUID, возможно, что очень старые инструменты могут этого не делать. Однако вы всегда можете установить новый (для ext) tune2fs, например:

tune2fs -U random /dev/whatever
лютик золотистый
источник
ПДД мой главный привод. SDB, SDD и т. Д. Являются USB-накопителями. Я обновил свой ответ, включив в него fdisk -l, чтобы доказать, что у него есть раздел.
Monksy
@monksy: а узел устройства, который не сообщает UUID, есть /dev/sdb1или /dev/sdb? Позднее не следует. Кроме того, вывод fdisk не указывает, что раздел отформатирован, и, следовательно, не доказывает, что он должен иметь доступный UUID. Я добавил несколько коротких абзацев выше, чтобы объяснить это.
Златовласка
Это форматируется. При подключении к [pre fstab items] автомонтер gnome запустит его. Я не получаю UUID для SDB1. Fdisk -l является просто доказательством того, что там есть раздел
monksy
1
Мне пришлось перезагрузиться, прежде чем раздел появился в /dev/disk/by-uuid(Ubuntu 16.04, но, вероятно, влияет на другие). Итак (1) создайте раздел (ы) и файловую систему (ы), (2) перезагрузите компьютер. Вероятно, нет перезагрузки, но я предпочел проверить, что все идет с холодной загрузки, поэтому не исследовал.
Фази
2

/ Dev / disk / by-uuid заполняется при загрузке программой "partprobe". Если у вас есть диск или раздел, который partprobe не может распознать, то partprobe завершается ошибкой и останавливает сканирование остальных разделов:

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

Это явно ошибка в части зондирования . Вероятно, специфичный для Ubuntu 14.04 (верный). Обходной путь должен явным образом запустить partprobe для раздела, который не был проверен:

root@machine1:~# partprobe /dev/sdd1

Обратите внимание, что partprobe запускается много раз и является результатом каждой операции управления дисками, поэтому обходной путь недолговечный.

Арье Склярук
источник
2

Я обнаружил, что file -sможет дать UUID для раздела в случае, когда blkidне будет:

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
источник
1

Попробуйте sudo с ls -l /dev/disk/by-uuidилиblkid /dev/sdb1

У меня также есть разделы + отформатированные sdb1, по некоторым причинам они не отображаются в списке, если я не использую sudo.

Gulchrider
источник