Библиотека сайта rus-linux.net
Ошибка базы данных: Table 'a111530_forumnew.rlf1_users' doesn't exist
Как изменить UUID раздела и его метку
Алексей Дмитриев, 18 августа 2011
А зачем?
Если вы много экспериментируете со своей системой Linux, постоянно пробуете всякие новые программы, частый гость в репозиториях testing и Sid, пробуете удалить GRUB2 и поставить Grub Legacy и т.д. и т.п., то у вас, без сомнения, есть запасной клон вашей системы, спрятанный где-нибудь в надежном месте. О изготовлении таких клонов я писал в конце 2010 года.
Но, если вы "убили" систему, а клон еще не занял ее место, вы, лишенные привычного рабочего окружения, некоторое время испытываете определенные неудобства. Поэтому предлагаю для экспериментов иметь клон вашей системы в соседнем разделе того же диска.
Все эксперименты сначала проводятся на клоне ≈ подопытном кролике, и в случае удачи переносятся в основной вариант системы.
Как делается клон
Сделать это просто: сначала нужно создать раздел такого же размера, как и образец. Как это сделать, зависит от ваших навыков и вашего дистрибутива. Программы Gparted и Fdisk доступны каждому. Раздел можно даже не форматировать, так как он будет полностью переписан.Затем клонируем систему в новый раздел:
$ sudo dd if=/dev/исходный_раздел of=/dev/целевой_раздел bs=10M
(bs=10M ≈ это величина блока (в данном случае ≈ 10 мегабайт), которыми будет происходить копирование на уровне секторов диска. Чем больше блок, тем быстрее копируется, но и меру нужно знать).
Полученный клон является побайтовой копией оригинала, поэтому он имеет ту же файловую систему со всеми своими суперблоками на тех же местах. Дублируется также и нулевой сектор, недоступный при обычном копировании. Кроме того, при копировании командой cp данные записываются на свободное место, а при клонировании ≈ на то же самое, что и в оригинале. Это приводит к тому, что оригинал и клон имеют абсолютно идентичные файловые системы, одинаковые UUID'ы и метки тома.
Так как мы собираемся пользоваться обеими копиями одновременно, то наличие у них одинаковых UUID'ов и меток (LABEL), неудобно в работе, так как приводит к путанице. Почему и нужно изменить UUID клона и дать ему новую метку.
Изменение UUID раздела
UUID (Universally Unique IDentifier ≈ Универсальный Уникальный ИДентификатор) дается разделу автоматически при его форматировании. UUID записан в суперблоках файловой системы.Чтобы узнать UUID'ы всех разделов вашей системы нужно применить команду:
$ sudo blkid -c /dev/null
Такой синтаксис команды предпочтителен. Подробное объяснение в статье "Как узнать UUID'ы разделов?", там же описаны другие команды для этой цели.
$ sudo blkid -c /dev/null ... /dev/sda7: LABEL="squeeze" UUID="96e4e816-6de4-4a18-890d-10e06c57a3b9" TYPE="ext4" /dev/sda8: LABEL="squeeze" UUID="96e4e816-6de4-4a18-890d-10e06c57a3b9" TYPE="ext4"
Хотя теоретически можно самостоятельно придумать новый UUID, рекомендуется пользоваться командой uuid ≈ генератором UUID'ов. Если у вас нет этой команды, то нужно установить пакет uuid (или соответствующий ему в вашей системе) привычным вам способом. Команда без лишних слов генерирует новый UUID при каждом запуске.
$ uuid 342724be-c948-11e0-9055-000c6e1ac553 $ uuid 46492296-c948-11e0-b30e-000c6e1ac553
Поскольку UUID есть атрибут файловой системы, то для его изменения применяется команда tune2fs, служащая для настройки файловых систем ext2, ext3, ext4.
$ sudo tune2fs /dev/sda8 -U `uuid` tune2fs 1.42-WIP (02-Jul-2011)
Проверим, что получилось:
$ sudo blkid -c /dev/null /dev/sda7: LABEL="squeeze" UUID="96e4e816-6de4-4a18-890d-10e06c57a3b9" TYPE="ext4" /dev/sda8: LABEL="squeeze" UUID="567d4886-c894-11e0-88a6-000c6e1ac553" TYPE="ext4"
Отлично! Теперь займемся меткой тома.
Как изменить метку тома
Для чего вообще нужна метка тома? Дело в том, что в современных операционных системах все определение и монтаж / демонтаж разделов происходит автоматически при помощи udev и HAL. Если раздел не имеет метки тома, то он будет примонтирован как безликий /media/disk . А если разделов много, то разобраться где какой disk можно только "методом тыка". Другое дело, если раздел имеет LABEL (метку тома). В этом случае он и будет примонтирован под понятным вам именем. Кроме того, метку тома можно прописывать, как и UUID, в /etc/fstab и прочих конфигурационных файлах. Это даже удобнее, чем UUID'ы, так как сразу видно, что это за раздел.Узнать, какой раздел кроется за данной меткой тома, можно при помощи команды:
$ sudo findfs LABEL=squeeze /dev/sda7
Если вы часто удаляете / создаете разделы, то их имена (/dev/sdxx) могут измениться, зато UUID и LABEL останутся неизменными и никакой путаницы в конфигах не произойдет.
Итак, два раздела с одинаковой меткой тома ≈ это нонсенс! Давайте менять метку. Для этого применяется команда e2label. Она не входит в стандартный набор команд, поэтому скорее устанавливайте одноименный пакет. Пользоваться ей просто ≈ пишем имя раздела и за ним новый LABEL:
$ sudo e2label /dev/sda8 clone
Проверяем:
$ sudo blkid -c /dev/null /dev/sda7: LABEL="squeeze" UUID="96e4e816-6de4-4a18-890d-10e06c57a3b9" TYPE="ext4" /dev/sda8: LABEL="clone" UUID="567d4886-c894-11e0-88a6-000c6e1ac553" TYPE="ext4"
Теперь наш основной рабочий раздел (/dev/sda7 "squeeze") и его клон (/dev/sda8 "clone") имеют свои уникальные UUID'ы и понятные метки тома.
Чего и всем желаю!