- Как узнать UUID разделов в Linux
- Команда blkid
- Команда blkid без опций
- Команда blkid с опцией -c
- Опция -t
- Опция -s
- Опция -o
- Опция -l
- Опция -g
- Опция -w
- Опция -h
- Опция -v
- Команда vol_id
- Как прописываются дискам UUID
- How to find disk partition UUIDs in Linux
- Steps to get disk partition UUID in Linux:
- Как узнать UUID в Linux
- Формат UUID
- Как узнать (найти) UUID
- Использование команды lsblk
- Использование команды ls
- Заключение
Как узнать UUID разделов в Linux
В новых дистрибутивах Linux вместо названий дисков из /dev каталога часто указывают UUID — Уникальные Идентификаторы. Выглядят они абсолютно нечитаемо для человека, например: UUID=»5a179614-0415-48c6-a9ad-3f6ad9596619″.
Когда возникает необходимость перенести содержимое с одного носителя на другой, потом встает большая проблема правильно внести изменения в файл /etc/fstab вручную. С UUID’ами же ядро, при помощи специальных программ, автоматически находит и размечает разделы по соответствующим носителям. Это экономит много сил и времени.
Возможно иногда целесообразнее «старая школа» — именование устройств в стиле /dev/sda.
При клонировании разделов командой dd возникают два раздела с одинаковыми UUID.
Команда blkid
Программа blkid, используя библиотеку libblkid, умеет читать содержимое файлов блочных устройств типа /dev/hda2. Эти специальные файлы, находящиеся в директории /dev иначе называются нодами устройств, имеют весьма специфичную структуру, и не могут быть прочитаны обычными средствами (скажем, командой cat).
Однако программа blkid по умолчанию не считывает информацию о разделах непосредственно из соответствующих нод устройств, а считывает ее из файла /etc/blkid.tab. Этот файл зачем-то называется в мане команды blkid кэш файлом, а всем известно, что слово cache имеет множесто значений, а потому совершенно бессмысленно. Должен вас сразу предупредить, что в файле /etc/blkid.tab со временем накапливается устаревшая информация о давно несуществующих разделах, поэтому не думайте читать сам файл в поисках UUID’ов, можете жестоко обмишулиться. Пользуйтесь командой blkid с соответсвующими опциями.
Команда blkid без опций
Команда blkid без опций, запущенная с правами суперпользоателя, выведет на экран дисплея информацию, содержащуюся в файле /etc/blkid.tab:
# blkid /dev/disk/by-id/scsi-SATA_Hitachi_HTS5416_SB344CHRJT80JD-part7: UUID="465e53f5-a682-4fde-8e0c-4c77a533aca7" TYPE="ext3" SEC_TYPE="ext2" LABEL="Common" /dev/sda2: UUID="02E4E3A0E4E39467" LABEL="Vista" TYPE="ntfs" /dev/sda5: UUID="5a179614-0415-48c6-a9ad-3f6ad9596619" TYPE="ext3" SEC_TYPE="ext2" /dev/sda6: TYPE="swap" /dev/sda7: UUID="465e53f5-a682-4fde-8e0c-4c77a533aca7" TYPE="ext3" LABEL="Common" /dev/disk/by-uuid/5a179614-0415-48c6-a9ad-3f6ad9596619: UUID="5a179614-0415-48c6-a9ad-3f6ad9596619" TYPE="ext3" SEC_TYPE="ext2" /dev/sda8: UUID="41825dd5-d866-45f6-bcfd-c4c9aa4de045" SEC_TYPE="ext2" TYPE="ext3" LABEL="lenny" /dev/sda9: UUID="e6758566-4e3b-4cf0-be5e-37949b52c64f" SEC_TYPE="ext2" TYPE="ext3" LABEL="deb2" /dev/sda1: UUID="5408E10E08E0F042" LABEL="WinRE" TYPE="ntfs"
Я предупреждал. Тут, конечно, можно разобраться при желании, но непонятно, откуда может взяться такое желание, когда можно поступить проще. А именно запустить команду blkid с опцией -c.
Команда blkid с опцией -c
Вообще-то опция -c заставляет blkid читать не из файла blkid.tab, а из любого указанного файла. Скажем, /dev/null. Не имея никакой информации из данного файла, команда вынуждена будет прочитать информацию из нод устройств, то есть выдать нам реальную картину на текущий момент:
# blkid -c /dev/null /dev/sda1: UUID="5408E10E08E0F042" LABEL="WinRE" TYPE="ntfs" /dev/sda2: UUID="02E4E3A0E4E39467" LABEL="Vista" TYPE="ntfs" /dev/sda5: UUID="5a179614-0415-48c6-a9ad-3f6ad9596619" TYPE="ext3" /dev/sda6: TYPE="swap" /dev/sda7: LABEL="Common" UUID="465e53f5-a682-4fde-8e0c-4c77a533aca7" TYPE="ext3" /dev/sda8: LABEL="lenny" UUID="41825dd5-d866-45f6-bcfd-c4c9aa4de045" SEC_TYPE="ext2" TYPE="ext3" /dev/sda9: LABEL="deb2" UUID="e6758566-4e3b-4cf0-be5e-37949b52c64f" SEC_TYPE="ext2" TYPE="ext3"
Советую сохранить старые файлы blkid.tab и blkid.tab.old под другими именами, тогда при следующей загрузке будет создан новенький чистенький файлик blkid.tab, где все будет как в выводе команды blkid -c /dev/null . Стоит после этого проверить /etc/fstab и /boot/grub/menu.lst.
Остальные опции команды крайне невыразительны и бесполезны. Чем трудиться запоминать их, проще запустить команду вовсе без опций или с опцией -c /dev/null. Тем не менее:
Опция
# blkid /dev/sda5 /dev/sda5: UUID="5a179614-0415-48c6-a9ad-3f6ad9596619" TYPE="ext3" SEC_TYPE="ext2"
Выдает сведения об указанном устройстве.
Опция -t
# blkid -t TYPE=ntfs /dev/sda2: UUID="02E4E3A0E4E39467" LABEL="Vista" TYPE="ntfs" /dev/sda1: UUID="5408E10E08E0F042" LABEL="WinRE" TYPE="ntfs"
Найдет все устройства, отвечающие заданному критерию, будь то TYPE, LABEL, или UUID. Можно сужать круг поиска, вводя в командную строку имена интересующих устройств:
# blkid -t TYPE=ntfs /dev/sda1 /dev/sda2 /dev/sda6 /dev/sda7 /dev/sda1: UUID="5408E10E08E0F042" LABEL="WinRE" TYPE="ntfs" /dev/sda2: UUID="02E4E3A0E4E39467" LABEL="Vista" TYPE="ntfs"
Опция -s
# blkid -s UUID /dev/sda7 /dev/sda7: UUID="465e53f5-a682-4fde-8e0c-4c77a533aca7"
Выдаст только указанный критерий нужного устройства.
Опция -o
Позволяет выбирать формат вывода из трех возможных: value (значение критерия), device (устройство), или full (полный). Например:
# blkid -o value 465e53f5-a682-4fde-8e0c-4c77a533aca7 ext3 ext2 Common 02E4E3A0E4E39467 Vista ntfs 5a179614-0415-48c6-a9ad-3f6ad9596619 ext3 ext2 swap 465e53f5-a682-4fde-8e0c-4c77a533aca7 ext3 Common 5a179614-0415-48c6-a9ad-3f6ad9596619 ext3 ext2 41825dd5-d866-45f6-bcfd-c4c9aa4de045 ext2 ext3 lenny e6758566-4e3b-4cf0-be5e-37949b52c64f ext2 ext3 deb2 5408E10E08E0F042 WinRE ntfs
Опция -l
Применяется вместе с опцией поиска -t. Но из всего найденного выдаст сведения только об одном устройстве. Обычно это первое прочитанное в файле /etc/blkid.tab устройство.
# blkid -lt TYPE=ntfs /dev/sda2: UUID="02E4E3A0E4E39467" LABEL="Vista" TYPE="ntfs"
Опция -g
В мане сказано, что убирает мусор в каком-то кэше blkid. Если имеется в виду файл /etc/blkid.tab, то не работает.
Опция -w
Записывает данные в указанный вами файл, вместо файла /etc/blkid.tab.
По моему, проще переадресовать в файл «file» вывод команды.
Опция -h
Опция -v
Вот все, что касается команды blkid. Однако существуют и другие возможности узнать UUID раздела.
Самая очевидная — заглянуть в директорию /dev:
# ls /dev/disk by-id by-label by-path by-uuid
Там четыре субдиректории, одна из которых by-uuid. Посмотрим:
total 0 drwxr-xr-x 2 root root 240 Фев 20 23:15 ./ drwxr-xr-x 6 root root 120 Фев 20 23:15 ../ lrwxrwxrwx 1 root root 10 Фев 20 23:15 1db39027-9af8-4843-ba3a-a0fee8919d5e -> ../../sdb5 lrwxrwxrwx 1 root root 10 Фев 20 23:15 39b6e6f9-fbfd-4e66-b247-64b6b72cb4d1 -> ../../sdb1 lrwxrwxrwx 1 root root 10 Фев 20 23:15 5c336568-49c8-44fe-a513-756dd0a971dc -> ../../sdb3 lrwxrwxrwx 1 root root 10 Фев 20 23:15 698556ea-37f1-4815-960f-1fdef5c4eef8 -> ../../sda4 lrwxrwxrwx 1 root root 10 Фев 20 23:15 703bc5e3-5343-4ee3-a265-50696740cffa -> ../../sda2 lrwxrwxrwx 1 root root 10 Фев 20 23:15 8a19a3c1-cd62-48b0-b03e-6cd935339ff9 -> ../../sda1 lrwxrwxrwx 1 root root 10 Фев 20 23:15 a12aab71-f95e-48f4-9a29-028f85dcb1f2 -> ../../sda5 lrwxrwxrwx 1 root root 10 Фев 20 23:15 c1dc689c-95b2-44be-8f24-9d73b4eaad91 -> ../../sda3 lrwxrwxrwx 1 root root 10 Фев 20 23:15 e1b2febf-3b76-4dca-b480-252749fc9c06 -> ../../sdb2 lrwxrwxrwx 1 root root 10 Фев 20 23:15 e55978e2-302c-4e27-8b58-c472c6f69cfc -> ../../sdb4
Команда vol_id
Существует еще команда vol_id. Она настолько простая, и ман к ней так понятно написан, что разобраться с ней не составит труда. Например:
# vol_id /dev/sda2 ID_FS_USAGE=filesystem ID_FS_TYPE=ntfs ID_FS_VERSION=3.1 ID_FS_UUID=02E4E3A0E4E39467 ID_FS_UUID_ENC=02E4E3A0E4E39467 ID_FS_LABEL=Vista ID_FS_LABEL_ENC=Vista ID_FS_LABEL_SAFE=Vista
# vol_id --uuid /dev/sda5 5a179614-0415-48c6-a9ad-3f6ad9596619
Хорошая и удобная команда, жаль, что не во всех дистрибутивах встречается.
Как прописываются дискам UUID
Кто же присваивает устройствам UUID’ы? Где записаны эти самые идентификаторы?
Если говорить о разделах жесткого диска, то UUID’ы присваиваются им в процессе создания файловой системы (некоторые утверждают, что они вычисляются из характеристик раздела), и записываются где-нибудь в суперблоках. Во всяком случае, еще не отформатированный раздел не имеет UUID’а. А при клонировании раздела командой dd, раздел, в который устанавливают клон, меняет свой UUID на идентификатор клона.
При загрузке компьютера, программа udev записывает UUID раздела в его ноду — файл блочного устройства в директории /dev. В доступной пользователю части файловой системы, UUID’ы разделов можно найти в файле /etc/blkid.tab, но информация эта может оказаться устаревшей.
How to find disk partition UUIDs in Linux
A Universally Unique IDentifier (UUID) is a randomly generated 128-bit value assigned to partitions or block devices in Linux systems. UUIDs provide a more stable and reliable method of identifying partitions than traditional device names, such as /dev/sda1. UUIDs can be used for mounting filesystems via /etc/fstab by specifying the UUID value in a special block device (the first field).
UUIDs are typically symbolic links to the actual device names within the /dev directory. To retrieve a partition’s UUID, you can browse the /dev/disk/by-uuid/ directory or use various command-line utilities available in Linux.
Steps to get disk partition UUID in Linux:
$ ls -l /dev/disk/by-uuid/ total 0 lrwxrwxrwx 1 root root 9 Feb 27 06:29 2020-10-22-14-30-30-00 -> ../../sr0 lrwxrwxrwx 1 root root 10 Feb 27 06:23 9B8B-2022 -> ../../sda2 lrwxrwxrwx 1 root root 10 Feb 27 06:23 a7d71686-0a65-4402-b6e6-b58430ef8351 -> ../../sda3
$ blkid /dev/sda3: UUID="a7d71686-0a65-4402-b6e6-b58430ef8351" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="0ea90c96-1b56-4c51-b07a-02e09285f291" /dev/sr0: BLOCK_SIZE="2048" UUID="2020-10-22-14-30-30-00" LABEL="Ubuntu 20.10 amd64" TYPE="iso9660" PTTYPE="PMBR"
$ blkid /dev/sda3 /dev/sda3: UUID="a7d71686-0a65-4402-b6e6-b58430ef8351" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="0ea90c96-1b56-4c51-b07a-02e09285f291"
$ blkid --help Usage: blkid --label | --uuid blkid [--cache-file ] [-ghlLv] [--output ] [--match-tag ] [--match-token ] [ . ] blkid -p [--match-tag ] [--offset ] [--size ] [--output ] . blkid -i [--match-tag ] [--output ] . Options: -c, --cache-file read from instead of reading from the default cache file (-c /dev/null means no cache) -d, --no-encoding don't encode non-printing characters -g, --garbage-collect garbage collect the blkid cache -o, --output output format; can be one of: value, device, export or full; (default: full) -k, --list-filesystems list all known filesystems/RAIDs and exit -s, --match-tag show specified tag(s) (default show all tags) -t, --match-token find device with a specific token (NAME=value pair) -l, --list-one look up only first device with token specified by -t -L, --label convert LABEL to device name -U, --uuid convert UUID to device name specify device(s) to probe (default: all devices) Low-level probing options: -p, --probe low-level superblocks probing (bypass cache) -i, --info gather information about I/O limits -S, --size overwrite device size -O, --offset probe at the given offset -u, --usages filter by "usage" (e.g. -u filesystem,raid) -n, --match-types filter by filesystem type (e.g. -n vfat,ext3) -h, --help display this help -V, --version display version For more details see blkid(8).
Как узнать UUID в Linux
UUID (Universally Unique identifier) — это 128 битный уникальный номер, стандартизированный Open Software Foundation. UUID помогает идентифицировать разделы в системах Linux. Он генерируется с помощью библиотеки libuuid (используемой e2fsprogs), которая является частью util-linux. Доступна сразу после установки Linux начиная с версии ядра 2.15.1.
UUID создается в локальной системе и всегда уникален.
Если ваша система использует много хранилищ данных, таких как SAN, ISCSI и т. д., то у UUID появляется преимущество. Каждый раз, когда вы перемещаете хранилище, вам не нужно беспокоиться об обновлении /etc/fstab.
В этой статье вы узнаете, как найти UUID накопителей в системе Linux.
Формат UUID
UUID отображается в пяти группах, разделенных дефисами, в виде 8-4-4-4-12 в общей сложности 36 символов.
Как узнать (найти) UUID
В системах на базе Linux/Unix вы можете использовать некоторые утилиты командной строки для поиска UUID устройств. Вы можете найти UUID всех разделов диска системы Linux с помощью команды blkid. Чтобы найти UUID разделов диска, подключенных к вашей системе, выполните следующую команду.
Вы получите следующий результат:
Использование команды lsblk
Вы можете найти UUID разделов устройств с помощью команды lsblk. Например чтобы вывести список UUID разделов устройств, выполните следующую команду lsblk.
$ sudo lsblk -o PATH,SIZE,RO,TYPE,MOUNTPOINT,UUID,MODEL
Ответ терминала будет следующим:
Использование команды ls
В системах Linux сделано так что ОС показывает все устройства как файлы. Таким образом, разделы UUID хранятся в виде файла.
Вы можете перечислить все UUID разделов с помощью команды ls. Для этого вам потребуется ввести:
Ответ в терминале вы увидите следующий.
Заключение
Помните, что UUID будет не очень полезен при работе на ноутбуках или домашних компьютерах. Там где обычно не используются высококачественные устройства хранения данных.