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?


Вам потрібно уточнити, про який пристрій ви говорите. /dev/sdbне матиме UUID, але /dev/sdb1повинен, якщо він був відформатований.
goldilocks

1
Я маю на увазі / dev / sdb1, який знаходиться під / dev / sdb
monksy

Опублікувати вихід fsck -n /dev/sdb1. Ви також можете спробувати дати йому UUID, tune2fs -U random /dev/sdb1потім перегляньте. Не має значення, що таке UUID.
goldilocks

Опублікував [вибачте, якщо це дратує]
monksy

1
Нема проблем. Біт "superblock invalid" може пояснити, чому немає UUID. Якщо вам потрібно створити резервну копію цього матеріалу, спробуйте його встановити і зробити це, потім відключіть і fsck -y /dev/sdb1; якщо ви не можете його встановити, просто запустіть fsck і, сподіваємось, нічого не втрачено. Прочитайте man fsckрізницю між -nта -y.
goldilocks

Відповіді:


13

Ось що має статися.

Тут грають два розмовні використання терміна "диск" або "привід": перше стосується фізичного пристрою, такого як USB-палиця. Другий стосується розділу файлової системи , якого на одному фізичному пристрої може бути декілька.

Вузли пристроїв на зразок /dev/sdaвідносяться до першого сенсу (фізичні пристрої); вузли пристроїв типу /dev/sda1посилаються на другий (розділи файлової системи). Мати сенс? sda1 - це розділ файлової системи на фізичному диску sda. Можна відформатувати цілий пристрій за допомогою одного розділу, але це незвично, тому загалом /dev/sdaніколи не буде UUID.

У розділах файлової системи є UUID, фізичні пристрої - ні . Я вважаю, що вони створюються випадковим чином, коли створена файлова система (саме тому вони зміняться, якщо ви, наприклад, переформатуєте розділ, і чому, якщо ви заблокуєте рівень копіювання розділу та створення нового розділу з зображенням, у вас будуть два розділи з тим же UUID).

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

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

tune2fs -U random /dev/whatever

SDA є моїм головним рушієм. SDB, SDD тощо - це USB-накопичувачі. Я оновив свою відповідь, щоб включити fdisk -l, щоб довести, що у неї є розділ.
monksy

@monksy: а вузол пристрою, який не повідомляє про UUID, є /dev/sdb1або /dev/sdb? Пізніші не повинні. Також вихід fdisk не вказує на те, що розділ відформатований, і, таким чином, не доводить, що він повинен мати доступний UUID. Я додав кілька коротких абзаців вище, щоб пояснити це.
goldilocks

Він формалізований. Якщо підключено до [pre fstab items], gnome automounter підніме його. Я не отримую UUID для sdb1. Fdisk -l - це лише доказ того, що там є розділ
monksy

1
Мені довелося перезавантажитись до того, як розділ з’явився в /dev/disk/by-uuid(Ubuntu 16.04, але, ймовірно, стосується інших). Отже (1) створити розділ (и) та файлові системи (и), (2) перезавантажити. Мабуть, не існує способу перезавантаження, але я вважав за краще перевірити, чи все виходить із холодного завантаження, щоб не досліджувати.
фази

2

/ Dev / disk / by-uuid заповнюється під час завантаження програмою "partprobe". Якщо у вас є диск або розділ, який не можна розпізнати, програма partprobe не вдається розпізнати помилку і зупиняє сканування решти розділів:

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

Очевидно, це помилка на частині partprobe . Ймовірно, специфічний для ubuntu 14.04 (надійний). Вирішення завдання полягає в тому, щоб запустити partprobe явно на розділі, який не був сканований:

root@machine1:~# partprobe /dev/sdd1

Зауважте, що багатопроцесорний запуск багато разів є результатом кожної операції з управління диском, тому вирішення недовговічне.


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)

1

Спробуйте судо з ls -l /dev/disk/by-uuidабоblkid /dev/sdb1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.