Библиотека сайта 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 |