Изменить uuid диска linux

Обновлено: 05.07.2024

У меня уникальная ситуация, когда мне нужно изменить UUID флешки на предыдущий UUID. Я отформатировал его и, очевидно, номер изменился .

У меня есть Ubuntu-сервер с жестким диском емкостью 1 ТБ и USB-флешкой на 4 ГБ для загрузки. Grub на жестком диске настроен для UUID, который изменился, когда я отформатировал USB-накопитель и переустановил сервер Ubuntu. У меня нет внешнего монитора, поэтому я присоединяю usb к ноутбуку и устанавливаю сервер там . чем я переношу его на серверное оборудование.

Как я уже упоминал, моя проблема в том, что мне нужно usb, чтобы вернуться к предыдущему UUID, иначе сервер не загрузится. И я не могу получить внешний монитор до понедельника! :)

Я знаю, что мне нужно изменить эти файлы потом:

Файлы, для которых UUID наиболее важен:

Но я не могу найти в сети информацию о настройке UUID.

Если вы использовали для этого ext:

-У УУИД

Установите универсальный уникальный идентификатор (UUID) файловой системы в UUID. Формат UUID представляет собой ряд шестнадцатеричных цифр , разделенных дефисом, например: c1b9d5a2-f162-11cf-9ece-0020afc76f16 . Параметр UUID также может быть одним из следующих:

UUID можно использовать в mount (8), fsck (8) и / etc / fstab (5) (и, возможно, в других), указав UUID = uuid вместо специального имени устройства, например / dev / hda1.

Это сработало! Но я не могу найти: /etc/initramfs-tools/conf.d/resume Я обнаружил, что /boot/grub/menu.lst был преобразован в /boot/grub/grub.cfg У меня есть /etc/initramfs-tools/conf.d/resume в моей системе. И grub.cfg - действительно новый menu.lst (я думаю, что кто-то вступил в игру с новым grub2. tun2fs не работает на моем диске ZFS gpt, что мне там делать? Глядя на ответ для XFS (xfs_admin), я бы предложил поискать zfs_admin Но разве не zfs Solaris ?! Как вы видите, Ubuntu может помочь здесь?

Я понимаю, что это своего рода старый вопрос, но я обнаружил, что произошли новые изменения, и это было то, что Google подхватил для меня, поэтому я опубликую ответ, который я нашел здесь.

Когда я попытался изменить uuid моей корневой файловой системы (на хорошо известное начало и суффикс серийного номера) в новой версии 14.04, я обнаружил, что мой ужас tune2fs ответил: я не могу этого сделать для смонтированных файловых систем. Я полагаюсь на возможность использовать образ шаблона с хорошо известным uuid и изменять каждую установку на сериализованный uuid. Я обнаружил, что проблема не была непреодолимой.

Есть флаг, который нужно отключить, чтобы разрешить изменения mount-uuid с новым tune2fs. Вот как выглядел мой процесс:

Спасибо. Может быть полезно в будущем, но я все еще на 12.04 :) Вы можете использовать root_disk=$(findmnt -n -o SOURCE /) вместо труб, чтобы grep и сократить.

Для xfs смотрите man xfs_admin

может быть 'сгенерирован', чтобы просто получить новый uuid.

Для просмотра см. man tunefs.reiserfs

Для btrfs кажется, что uuid используется во всех файловых системах, поэтому каждый узел должен быть обновлен. Безопасного способа сделать это пока нет.

Если вы много экспериментируете со своей системой Linux, постоянно пробуете всякие новые программы, частый гость в репозиториях testing и Sid, пробуете удалить GRUB2 и поставить Grub Legacy и т.д. и т.п., то у вас, без сомнения, есть запасной клон вашей системы, спрятанный где-нибудь в надежном месте. О изготовлении таких клонов я писал в конце 2010 года.

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

Все эксперименты сначала проводятся на клоне ≈ подопытном кролике, и в случае удачи переносятся в основной вариант системы.

Как делается клон

Сделать это просто: сначала нужно создать раздел такого же размера, как и образец. Как это сделать, зависит от ваших навыков и вашего дистрибутива. Программы Gparted и Fdisk доступны каждому. Раздел можно даже не форматировать, так как он будет полностью переписан.

Затем клонируем систему в новый раздел:

(bs=10M ≈ это величина блока (в данном случае ≈ 10 мегабайт), которыми будет происходить копирование на уровне секторов диска. Чем больше блок, тем быстрее копируется, но и меру нужно знать).

Полученный клон является побайтовой копией оригинала, поэтому он имеет ту же файловую систему со всеми своими суперблоками на тех же местах. Дублируется также и нулевой сектор, недоступный при обычном копировании. Кроме того, при копировании командой cp данные записываются на свободное место, а при клонировании ≈ на то же самое, что и в оригинале. Это приводит к тому, что оригинал и клон имеют абсолютно идентичные файловые системы, одинаковые UUID'ы и метки тома.

Так как мы собираемся пользоваться обеими копиями одновременно, то наличие у них одинаковых UUID'ов и меток (LABEL), неудобно в работе, так как приводит к путанице. Почему и нужно изменить UUID клона и дать ему новую метку.

Изменение UUID раздела

UUID (Universally Unique IDentifier ≈ Универсальный Уникальный ИДентификатор) дается разделу автоматически при его форматировании. UUID записан в суперблоках файловой системы.

Чтобы узнать UUID'ы всех разделов вашей системы нужно применить команду:

Такой синтаксис команды предпочтителен. Подробное объяснение в статье "Как узнать UUID'ы разделов?", там же описаны другие команды для этой цели.

Хотя теоретически можно самостоятельно придумать новый UUID, рекомендуется пользоваться командой uuid ≈ генератором UUID'ов. Если у вас нет этой команды, то нужно установить пакет uuid (или соответствующий ему в вашей системе) привычным вам способом. Команда без лишних слов генерирует новый UUID при каждом запуске.

Поскольку UUID есть атрибут файловой системы, то для его изменения применяется команда tune2fs, служащая для настройки файловых систем ext2, ext3, ext4.

Проверим, что получилось:

Отлично! Теперь займемся меткой тома.

Как изменить метку тома

Для чего вообще нужна метка тома? Дело в том, что в современных операционных системах все определение и монтаж / демонтаж разделов происходит автоматически при помощи udev и HAL. Если раздел не имеет метки тома, то он будет примонтирован как безликий /media/disk . А если разделов много, то разобраться где какой disk можно только "методом тыка". Другое дело, если раздел имеет LABEL (метку тома). В этом случае он и будет примонтирован под понятным вам именем. Кроме того, метку тома можно прописывать, как и UUID, в /etc/fstab и прочих конфигурационных файлах. Это даже удобнее, чем UUID'ы, так как сразу видно, что это за раздел.

Узнать, какой раздел кроется за данной меткой тома, можно при помощи команды:

Если вы часто удаляете / создаете разделы, то их имена (/dev/sdxx) могут измениться, зато UUID и LABEL останутся неизменными и никакой путаницы в конфигах не произойдет.

Итак, два раздела с одинаковой меткой тома ≈ это нонсенс! Давайте менять метку. Для этого применяется команда e2label. Она не входит в стандартный набор команд, поэтому скорее устанавливайте одноименный пакет. Пользоваться ей просто ≈ пишем имя раздела и за ним новый LABEL:

Теперь наш основной рабочий раздел (/dev/sda7 "squeeze") и его клон (/dev/sda8 "clone") имеют свои уникальные UUID'ы и понятные метки тома.

Причина, подозреваю, в том, что её ранний, текстовый, инсталлятор (ныне именуемый альтернативным, и уцелевший только в Lubutu и в mini.iso) не обеспечивал корректного определения имён «верхнего уровня» в многодисковых системах с внешними накопителями. А, как известно, большую часть того, что придумывают в Ubuntu, рано или поздно, после явного периода смешков и сарказмов, втихаря обезъянничают в большинстве других дистрибутивов. Вне зависимости от того, хорошо это было придумано, или плохо.

Как обычно, по разному. Во-первых, изменить UUID можно с помощью программы Gparted. Для этого достаточно в разделе с существующей файловой системой вызвать контекстное меню и в выбрать в нём соответствующий пункт:

uuid_001

После чего будет предложено случайным образом сгенерировать новый UUID:

uuid_002

которая выведёт полный их список:

Однако в нашем случае это не пройдёт: UUID клона в выводе команды ls будет потерян, так как имя соответствующей ссылки совпадает с именем её в оригинале. И тогда следует обратиться к специальной утилите blkid , запускаемой обязательно от лица администратора. Например, данная в форме

В списке присутствует раздел /dev/sdc10 , являющийся клоном раздела /dev/sd5 . Отфильтровав должным образом вывод предыдущей команды, можно убедиться в идентичности их идентификаторов и меток:

Это не какая-то таинственная штука, а просто генератор случайных последовательностей символов того формата, который используется в качестве универсальных уникальных идентификаторов. И поэтому запуск её (можно — от лица обычного пользователя) ничего, кроме вывода набора цифр и букв, разделённых в нужных местах дефисами, не даёт:

Чтобы этот вывод использовать, его надо приписать к соответствующей файловой системе раздела-клона. Как — зависит от файловой системы. Например, для ext4 это можно сделать, например, так (обращая внимание на форму кавычек):

После чего, повторив команду blkid с тем же фильтром, убедиться, что UUID клона стал отличаться от оригинала:

Разумеется, соответствующий файл появился и в каталоге /dev :

Впрочем, опция -U утилиты tune2fs имеет и собственные значения, позволяющие сгенерировать UUID, произвольный или привязанный к временной метке — random и time , соответственно. С этой целью нечувствительно для применителя вызывается команда uuidgen , которая входит в стандартный пакет util-linux , что имеется в любой системе, и потому никаких дополнительных средств не требует. Правда, мне встречалось мнение, что её рэндомизатор «недостаточно рэндомный». Однако думаю, что для десктопных целей он вполне сгодится:

Кроме того, опция -U утилиты tune2fs может принимать значение clear — при этом UUID устройства, заданного в качестве аргумента команды, ликвидируется как класс. Правда, есть подозрение, что того же результата можно добиться просто удалением соответствующего симлинка из каталога /dev/disk/by-uuid/ .

Сказанное относилось к смене UUID для разделов с файловой системой ext4, работа с которой и поддерживается утилитой tune2fs. Более иные файловые системы, разумеется, потребуют собственных средств. Например, для XFS это будет утилита xfs_admin, входящая в пакет xfsprogs, который и надлежит предварительно установить:

Она имеет аналогичную опцию -U, в качестве значения которой надо подставить вывод команд uuid или uuidgen, для последней, например, так:

А во втором — так:

Конечно же, предварительно установивши инструментальные пакеты — reiserfsprogs и jfsutils , соответственно.


четверг, 2 мая 2013 г.

Как изменить UUID раздела и его метку

А зачем?

Если вы много экспериментируете со своей системой Linux, постоянно пробуете всякие новые программы, частый гость в репозиториях testing и Sid, пробуете удалить GRUB2 и поставить Grub Legacy и т.д. и т.п., то у вас, без сомнения, есть запасной клон вашей системы, спрятанный где-нибудь в надежном месте.

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

Как делается клон

Сделать это просто: сначала нужно создать раздел такого же размера, как и образец. Как это сделать, зависит от ваших навыков и вашего дистрибутива. Программы Gparted и Fdisk доступны каждому. Раздел можно даже не форматировать, так как он будет полностью переписан.

Так как мы собираемся пользоваться обеими копиями одновременно, то наличие у них одинаковых UUID'ов и меток (LABEL), неудобно в работе, так как приводит к путанице. Почему и нужно изменить UUID клона и дать ему новую метку.

Изменение UUID раздела

Чтобы узнать UUID'ы всех разделов вашей системы нужно применить команду:

Поскольку UUID есть атрибут файловой системы, то для его изменения применяется команда tune2fs, служащая для настройки файловых систем ext2, ext3, ext4.

Как изменить метку тома

Для чего вообще нужна метка тома? Дело в том, что в современных операционных системах все определение и монтаж / демонтаж разделов происходит автоматически при помощи udev иHAL. Если раздел не имеет метки тома, то он будет примонтирован как безликий /media/disk . А если разделов много, то разобраться где какой disk можно только "методом тыка". Другое дело, если раздел имеет LABEL (метку тома). В этом случае он и будет примонтирован под понятным вам именем. Кроме того, метку тома можно прописывать, как и UUID, в /etc/fstab и прочих конфигурационных файлах. Это даже удобнее, чем UUID'ы, так как сразу видно, что это за раздел.

Узнать, какой раздел кроется за данной меткой тома, можно при помощи команды:

Если вы часто удаляете / создаете разделы, то их имена (/dev/sdxx) могут измениться, зато UUID и LABEL останутся неизменными и никакой путаницы в конфигах не произойдет.

Теперь наш основной рабочий раздел (/dev/sda7 "squeeze") и его клон (/dev/sda8 "clone") имеют свои уникальные UUID'ы и понятные метки тома.

Читайте также: