Узнать UUID Linux-диска

Обновлено: 02.07.2024

UUID — это уникальный идентификатор, используемый в разделах для уникальной идентификации разделов в операционных системах Linux. UUID — это свойство самого раздела диска. Таким образом, если вы установите жесткий диск, содержащий разделы, на другой компьютер с Linux, разделы будут иметь тот же UUID, что и раньше. Что ж, это хорошо.

UUID раздела требуется в основном для правильного монтирования разделов в компьютерной системе, где установлены сотни жестких дисков. Если вы монтируете жесткие диски или твердотельные накопители с использованием UUID, почти нет изменений, связанных с подключением неправильного жесткого диска и серьезной потерей данных.

Наши обычные компьютеры и ноутбуки, на которых в основном установлены 1 или 2 жестких диска, и нам нужно ограниченное количество разделов, не получат большой пользы от UUID.

В этой статье я покажу вам, как найти UUID устройств хранения, таких как разделы жесткого диска или SSD в Linux. Итак, приступим.

Поиск UUID с помощью blkid:

Вы можете найти UUID всех разделов диска в вашей системе Linux с помощью команды blkid. Команда blkid доступна по умолчанию в большинстве современных дистрибутивов Linux.

Чтобы найти UUID разделов диска, выполните следующую команду:

Как видите, отображаются файловые системы с UUID. Также перечислены многие петлевые устройства.


В предыдущем выводе вы видели много ненужных петлевых устройств. Если вы хотите вывести список только тех файловых систем, для которых установлен UUID, вы можете отфильтровать вывод команды blkid следующим образом:

Вы должны быть в состоянии получить чистый отфильтрованный вывод. В списке перечислены только файловые системы с установленным UUID.


Поиск UUID с помощью ls:

В Linux все устройства, включая устройства хранения, представлены в виде файлов. Таким образом, разделы с установленным UUID также представлены в виде файлов. Вы можете получить список всех этих файлов с помощью команды ls.

Чтобы получить список всех разделов и их UUID, выполните следующую команду:

Как видите, указаны имена разделов (например, sda1, sda2) и их UUID.


Поиск UUID с помощью lsblk:

Вы также можете просмотреть UUID ваших разделов с помощью команды lsblk:

Например, чтобы получить список UUID ваших разделов с помощью команды lsblk, запустите lsblk следующим образом:

Как видите, UUID разделов перечислены.


Вы также можете отфильтровать все петлевые устройства, чтобы сделать вывод более чистым. Для этого запустите команду lsblk следующим образом:

Как видите, в списке перечислены только разделы с UUID. Вывод стал намного чище.


Что делать дальше:

Итак, именно так вы находите UUID устройств хранения в Linux. Спасибо, что прочитали эту статью.

В этой системе есть несколько других дисков, и не все диски монтируются в нужное место (например, /dev/sda1 и /dev/sdb1 иногда меняются местами).

Как просмотреть UUID для всех дисков в моей системе? Могу ли я увидеть UUID для третьего диска в этой системе?

11 ответов 11

Есть инструмент под названием blkid (используйте его как root или с помощью sudo ),

вы можете проверить эту ссылку для получения дополнительной информации


Небольшой комментарий: похоже, членства в группе disk достаточно для запуска blkid ; нет необходимости в полных привилегиях суперпользователя.

Если вам нужен только UUID (например, для синтаксического анализа в скрипте), вы можете сделать blkid /dev/sda1 -s UUID -o value .

Быстрый комментарий: в моем дистрибутиве (Debian 8) это дает UUID, а также "PARTUUID", что довольно запутанно. Я использовал команды, которые дают только одно значение.

Это сэкономит много времени, хотя я предпочитаю использовать blkid /dev/sd* для получения списка всех дисков. Выдаваемой информации обычно более чем достаточно, чтобы найти нужный диск. :)

PARTUUID для дисков с разделами GPT — это UUID GPT для раздела, а не для файловой системы в нем. Может быть полезно, когда файловая система еще не создана. На диске с разделами MBR PARTUUID — это не настоящий UUID, а просто подпись диска Windows из MBR + тире + номер раздела.

В /dev/disk/by-uuid есть символические ссылки, сопоставляющие UUID каждого диска с его записью в /dev (например, /dev/sda1 )

Вы можете просмотреть их с помощью команды ls -lha /dev/disk/by-uuid


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

Я часто использую этот подход, особенно потому, что blkid нужны привилегии SU. Но, к сожалению, /dev/disk/by-uuid содержит гораздо меньше информации, и в некоторых случаях это может привести к проблемам. Для меня это работало с томами RAID и btrfs, поскольку разные разделы имеют общий UUID, но в символических ссылках есть только одна запись для каждого UUID.

Лучше всего использовать команду lsblk -f . В нем будут перечислены все устройства и разделы, как они смонтированы (если вообще) и древовидная структура устройств в случае использования LVM, crypto_LUKS или нескольких групп томов на одном диске.


Дополнение: мне пришлось поставить sudo перед этим, иначе он не смог получить UUID раздела, и столбец был пуст.

Чтобы получить UUID только определенного дискового устройства (например, для использования в скрипте), вы можете использовать:

где /dev/sdXY — имя устройства.

Это работает для меня:

Если вы хотите проверить тип раздела, используйте:

и он покажет вам, есть ли у вас ext3 или ext2. Сегодня это помогло мне, потому что был отформатированный раздел ext2, и я думал, что это был ext3, из-за которого монтирование не удавалось.

Вы можете увидеть все выходные данные, которые можно добавить к -o ( --output ) с помощью

Кроме того, это поможет

Предыдущие ответы не работают для нескольких устройств или для устройств с одинаковыми UUID.

Универсальный уникальный идентификатор (UUID) всегда должен быть уникальным. Вся цель UUID - быть уникальным, универсальным. Если нет, то есть проблема. Я видел повторяющиеся UUID в клонированных виртуальных машинах, по крайней мере, для сетевых устройств.

Если вы клонируете раздел с помощью команды dd, копия будет иметь тот же UUID, и да, это проблема. Другие ответы здесь этого не покажут.

С помощью следующей командной строки вы можете увидеть UUID и сопоставление с разделами.

У меня та же проблема, что и у вас: переименование ядром /dev/sd** после перезагрузки:

Конечно, на все мои автоматические монтирования в /etc/fstab ссылаются LABEL или UUID, так что в принципе с этим проблем нет. И все приведенные выше команды blkid или lsblk предоставляют такую ​​информацию.

Но проблемы начинаются, как и в моем случае, когда вы используете раздел в режиме RAW, с точки зрения загруженной в данный момент системы: например, либо: раздел используется как необработанное устройство, чтобы сделать виртуальный диск для VirtualBox (поэтому ссылка на этот раздел выглядит примерно так: /dev/sdf3 ) или раздел используется как необработанное устройство для создания LUN для iSCSI (поэтому ссылка на этот раздел выглядит примерно так: /dev/sdc6 )

Теперь при загрузке, например, в rc.local, вы должны найти надежным способом, что такое устройство /dev/sdXX вашего выделенного раздела RAW, и адаптировать какой-либо файл:

ПРИМЕР 1

Диск VirtualBox *.vmk, описание этого необработанного диска, в части что-то вроде:

а затем перезапустите службу VirtualBox

ПРИМЕР 2

в конфигурации tgtd цель :target0 была связана с /dev/sdd6 во время сборки. После перезагрузки вы получаете тот же раздел, переименованный в /deb/sdc6 Это происходит со съемным диском, USB или eSATA! Итак, как найти новое устройство автоматически? Снова в /etc/rc.d/rc.local

Поэтому в этом случае нам нужен надежный способ узнать новое имя устройства. Раздел GPT предлагает уникальный идентификатор GUID для любого раздела GPT, записанный в таблице GPT.

gdisk не предоставляет эту информацию в режиме листинга, а только в интерактивном режиме с командой: i. К счастью, blkid это делает!

Поэтому вам нужно написать сценарий оболочки, чтобы просмотреть все ваши диски, то есть устройство /dev/sdXX, связанное с GUID, замеченным во время создания раздела.


< /p>

UUID означает универсальный уникальный идентификатор и очень широко используется для идентификации информации в компьютерных системах. Он состоит из 128 бит, и его основным вариантом использования является уникальная идентификация различных разделов диска в компьютерной системе. Сегодня мы научим вас, как найти UUID в Linux, поделившись с вами различными методами.

Примечания. Мы использовали Linux Mint 20 для объяснения методов поиска UUID в Linux.

Способы поиска UUID в Linux:

В Linux есть несколько способов найти UUID; однако мы поделились ниже тремя самыми простыми:

Чтобы использовать команду «blkid» для поиска UUID в Linux Mint 20, вам нужно будет выполнить ее, как показано ниже:


UUID нашего раздела /dev/sda5 выделен на следующем изображении:


Чтобы использовать команду «lsblk» для поиска UUID в Linux Mint 20, вам нужно будет выполнить ее, как показано ниже:


UUID нашего раздела /dev/sda5 выделен на следующем изображении:


Чтобы использовать команду «ls» для поиска UUID в Linux Mint 20, вам нужно будет выполнить ее, как показано ниже:


UUID нашего раздела /dev/sda5 выделен на следующем изображении:


Вывод:

Если вы хотите узнать UUID в системе Linux Mint 20, вы можете легко сделать это, выбрав любой из трех методов, которыми вам поделились. Вы можете ясно заметить, что UUID, найденные во всех трех методах, абсолютно одинаковы. Это означает, что вы можете легко следовать любому из этих методов по вашему выбору.

Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора, включая CCNA RS, SCP и ACE. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов.

Я использую Ubuntu и хочу узнать UUID конкретной файловой системы (не раздела). Я знаю, что могу использовать e2label /dev/sda1, чтобы узнать метку файловой системы, но, похоже, нет аналогичного способа найти UUID .


Обратите внимание, что раньше заголовок был "Как найти UUID раздела". Этот вопрос имеет смысл только при использовании таблицы разделов GPT. Вот ответ на этот вопрос.

12 ответов 12

Еще одна команда, которая может быть доступна и также хорошо работает для этого, — «blkid». Это часть пакета e2fsprogs. Примеры его использования:

Поиск данных на /dev/sda1:

Показать данные UUID для всех разделов:

Показать данные UUID для всех разделов в более удобном для чтения формате: (Примечание: в новых версиях blkid -L имеет другое значение, и вместо этого следует использовать blkid -o list)

Показывать только UUID для /dev/sda1 и ничего больше:

Просто набрав blkid , я получил именно то, что хотел, но не совсем то, что просил. (Я все равно принимаю его, потому что уверен, что буду часто им пользоваться)

В новых версиях Ubuntu эквивалентная команда blkid -L теперь выглядит как blkid -o list ; параметр -L был изменен на -L label для поиска устройства, использующего указанную метку.

Отлично, я никогда не знал о blkid ; Я всегда просто делал ls -l /dev/disk/by-uuid . В Gentoo blkid находится в sys-apps/util-linux

Только для дисков с разделами GPT

На диске, отформатированном GPT, каждому разделу назначается GUID, который является формой UUID, хотя, вероятно, это не то, о чем говорил первоначальный плакат. Поэтому этот ответ, вероятно, менее полезен для первоначального вопроса. Тем не менее я считаю, что есть важное различие, которое следует отметить.

Чтобы получить GUID раздела 1 на диске /dev/sda в формате GPT, а также метку его раздела и т. д.:

Для загрузки с корнем файловой системы, находящимся в определенном разделе, вы должны использовать синтаксис параметра ядра Linux:

В этом случае вы можете указать только начало UUID — достаточно, чтобы быть уникальным. Этот параметр является более примитивным и может быть понят ядром в начале процесса загрузки.

Между ними есть разница в семантике:

Диск содержит разделы, раздел содержит файловую систему, файловая система содержит каталоги и файлы. Для некоторых настроек и операционных систем существует больше слоев.

Идентификатор GUID UUID и соответствующая метка относятся к разделу, но не к его содержимому. Новый раздел на том же диске или раздел на новом диске будет иметь новый UUID GUID. Один и тот же раздел может содержать одну файловую систему в один день и другую в другой день. Он существует только для дисков в формате GPT, но не для устаревших дисков с разделами. Обычно здесь нет ничего более полезного, чем указание root=/dev/sda1 или root=8:1 .

Другие текущие ответы относятся к UUID файловой системы в каком-то содержащем разделе. Если файловая система целиком копируется на другой раздел или жесткий диск, это значение остается прежним. Этот UUID полезен при поиске перемещенной файловой системы.Поэтому это, вероятно, более актуально для большинства людей. Параметр ядра Linux root=UUID=87654321-4321-4321-a567-123456789012 относится к этому.

Я считаю, что root=LABEL= и root=UUID= реализованы ранним пользовательским пространством, код инициализации, который я видел на днях в своей системе, преобразовал эти параметры в /dev/disk/by-uuid и /dev/disk/by -label (ссылки, которые, как мне кажется, созданы udev в пользовательском пространстве моей системы).

Читайте также: