Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Администрирование систем Linux. Знакомство с идентификаторами UUID

Оригинал: Introduction to UUIDs
Автор: Paul Cobbaut
Дата публикации: 12 марта 2015 г.
Перевод: A. Панин
Дата перевода: 30 марта 2015 г.

Глава 9. Знакомство с идентификаторами UUID

Идентификатор UUID (Universally Unique Identifier) используется для уникальной идентификации объектов. В соответствии со стандартом, длина идентификатора равна 128 битам, что позволяет любому пользователю без лишних сложностей создавать уникальные идентификаторы UUID.

В данной главе приводится краткий обзор идентификаторов UUID.

9.1. Об уникальных объектах

В составе устаревших версий дистрибутивов Linux поставлялась утилита vol_id, которая предназначалась для вывода идентификатора UUID указанной файловой системы.

root@debian5:~# vol_id --uuid /dev/sda1
193c3c9b-2c40-9290-8b71-4264ee4d4c82

В дистрибутиве RedHat Enterprise Linux 5 утилита vol_id была размещена по пути /lib/udev/vol_id, причем путь к директории с данной утилитой не добавлялся в список директорий для поиска бинарных файлов, являющийся значением переменной окружения $PATH. Синтаксис данной утилиты также немного отличался от синтаксиса аналогичной утилиты из состава дистрибутивов Debian/Ubuntu/Mint.

root@rhel53 ~# /lib/udev/vol_id -u /dev/hda1
48a6a316-9ca9-4214-b5c6-e7b33a77e860

Данная утилита не доступна после стандартной установки дистрибутивов RHEL 6 и Debian 6.

9.2. Утилита tune2fs

Для определения идентификатора UUID файловой системы следует использовать утилиту tune2fs.

[root@RHEL5 ~]# tune2fs -l /dev/sda1 | grep UUID
Filesystem UUID:          11cfc8bc-07c0-4c3f-9f64-78422ef1dd5c
[root@RHEL5 ~]# /lib/udev/vol_id -u /dev/sda1
11cfc8bc-07c0-4c3f-9f64-78422ef1dd5c

9.3. Утилита uuid

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

[root@rhel65 ~]# yum install uuid
(вывод сокращен)
[root@rhel65 ~]# man uuid

9.4. Идентификаторы UUID в файле /dev/fstab

Вы можете использовать идентификаторы UUID для универсальной уникальной идентификации разделов жестких дисков в рамках файла /etc/fstab. Имя файла устройства может меняться в зависимости от количества дисковых устройств, подключенных к системе в процессе ее загрузки, но идентификаторы UUID устройств не изменятся ни при каких обстоятельствах.

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

[root@RHEL5 ~]# tune2fs -l /dev/sdc1 | grep UUID
Filesystem UUID:          7626d73a-2bb6-4937-90ca-e451025d64e8

После этого следует убедиться в том, что данный идентификатор корректно используется в файле /etc/fstab, заменяя собой непостоянное имя файла устройства, представляющего раздел жесткого диска.

[root@RHEL5 ~]# grep UUID /etc/fstab 
UUID=7626d73a-2bb6-4937-90ca-e451025d64e8 /home/pro42 ext3 defaults 0 0

Теперь мы можем смонтировать файловую систему с интересующего нас раздела жесткого диска в точку монтирования, объявленную в файле /etc/fstab.

[root@RHEL5 ~]# mount /home/pro42
[root@RHEL5 ~]# df -h | grep 42
/dev/sdc1             397M   11M  366M   3% /home/pro42

Реальная же проверка должна заключаться в отключении от системы диска, представленного файлом устройства /dev/sdb, перезагрузке системы и проверке результата. После загрузки диск, который ранее был представлен с помощью файла устройства /dev/sdc, будет представлен с помощью файла устройства /dev/sdb.

[root@RHEL5 ~]# tune2fs -l /dev/sdb1 | grep UUID
Filesystem UUID:          7626d73a-2bb6-4937-90ca-e451025d64e8

Но благодаря использованию идентификаторов UUID в файле /etc/fstab, в объявленную точку монтирования будет смонтирована файловая система с раздела того же диска, что и ранее.

[root@RHEL5 ~]# df -h | grep sdb
/dev/sdb1             397M   11M  366M   3% /home/pro42

9.5. Идентификаторы UUID для загрузочных устройств

Современные дистрибутивы Linux (Debian, Ubuntu, ) используют системный загрузчик grub и идентификаторы UUID для идентификации разделов жестких дисков с корневыми файловыми системами.

В данном примере показано, как имя файла устройства раздела с корневой файловой системой из директивы root=/dev/sda1 может быть заменено на идентификатор UUID этого же раздела.

title           Ubuntu 9.10, kernel 2.6.31-19-generic
uuid            f001ba5d-9077-422a-9634-8d23d57e782a
kernel          /boot/vmlinuz-2.6.31-19-generic \
root=UUID=f001ba5d-9077-422a-9634-8d23d57e782a ro quiet splash 
initrd          /boot/initrd.img-2.6.31-19-generic

Пример выше содержит всего четыре строки. Строка, начинающаяся с директивы "root=", является продолжением строки kernel.

В дистрибутивах RHEL и CentOS после стандартной процедуры установки загрузка системы осуществляется с томов LVM.

9.6. Практическое задание: идентификаторы UUID и файловые системы

1. С помощью утилиты tune2fs определите идентификатор UUID одного из разделов вашего жесткого диска с файловой системой ext3 (также используйте утилиту vol_id в том случае, если вы работаете с дистрибутивом RHEL5).

2. Используйте полученный идентификатор UUID в файле /etc/fstab и проверьте его работоспособность с помощью утилиты mount.

3 (дополнительное задание). Также проверьте работоспособность полученного идентификатора, отключив от системы один из жестких дисков (с целью изменения имен файлов устройств, представляющих жесткие диски). Вы можете изменить настройки vmware/Virtualbox для отключения жесткого диска.

4. Найдите директиву "root=" в файле /boot/grub/menu.lst. (Позднее в рамках данного курса мы рассмотрим вопросы, касающиеся редактирования упомянутого файла).

5 (дополнительное задание для пользователей Ubuntu). Замените в файле /boot/grub/menu.lst путь к файлу устройства /dev/xxx, представляющему раздел жесткого диска с корневой файловой системой, на идентификатор UUID (используйте для этого дополнительную директиву). Проверьте возможность загрузки системы после внесения изменений в упомянутый файл.

9.7. Корректная процедура выполнения практического задания: идентификаторы UUID и файловые системы

1. С помощью утилиты tune2fs определите идентификатор UUID одного из разделов вашего жесткого диска с файловой системой ext3 (также используйте утилиту vol_id в том случае, если вы работаете с дистрибутивом RHEL5).

root@rhel55:~# /lib/udev/vol_id -u /dev/hda1
60926898-2c78-49b4-a71d-c1d6310c87cc

root@ubu1004:~# tune2fs -l /dev/sda2 | grep UUID
Filesystem UUID:          3007b743-1dce-2d62-9a59-cf25f85191b7

2. Используйте полученный идентификатор UUID в файле /etc/fstab и проверьте его работоспособность с помощью утилиты mount.

tail -1 /etc/fstab
UUID=60926898-2c78-49b4-a71d-c1d6310c87cc /home/pro42 ext3 defaults 0 0

3 (дополнительное задание). Также проверьте работоспособность полученного идентификатора, отключив от системы один из жестких дисков (с целью изменения имен файлов устройств, представляющих жесткие диски). Вы можете изменить настройки vmware/Virtualbox для отключения жесткого диска.

4. Найдите директиву "root=" в файле /boot/grub/menu.lst. (Позднее в рамках данного курса мы рассмотрим вопросы, касающиеся редактирования упомянутого файла).

paul@deb503:~$ grep ^[^#] /boot/grub/menu.lst | grep root=
kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 ro selinux=1 quiet
kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 ro selinux=1 single

5 (дополнительное задание для пользователей Ubuntu). Замените в файле /boot/grub/menu.lst путь к файлу устройства /dev/xxx, представляющему раздел жесткого диска с корневой файловой системой, на идентификатор UUID (используйте для этого дополнительную директиву). Проверьте возможность загрузки системы после внесения изменений в упомянутый файл.


Предыдущий раздел: Оглавление Следующий раздел:
Глава 8. Инструменты для диагностики файловых систем   Глава 10. Знакомство с технологией RAID