Администрирование систем 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 (используйте для этого дополнительную директиву). Проверьте возможность загрузки системы после внесения изменений в упомянутый файл.
http://rus-linux.net/MyLDP/BOOKS/LSA/ch09.html
|