Нет, нельзя гарантировать уникальность UUID. UUID - это всего лишь 128-битное случайное число . Когда мой компьютер генерирует UUID, нет никакого практического способа помешать вашему компьютеру или любому другому устройству во вселенной генерировать тот же UUID в какой-то момент в будущем.
Возможно маловероятно , что любые два UUID будут одинаковыми, но они могут быть.
В этом случае код, назначающий UUID устройствам, может сравнивать новый UUID с любыми существующими UUID, уже назначенными устройствам, и отбрасывать дубликаты, гарантируя таким образом уникальность.
По поводу уникальности. Когда в систему устанавливается новый диск, обычно технический специалист определяет разделы на нем. Ярлыки не уникальны и не используются. В процессе определения программный алгоритм создает UUID.
Поскольку в системе уже есть список существующих смонтированных UUID, процесс определения раздела автоматически создает уникальное значение UUID. Новое значение UUID отфильтровано по существующему списку подключенных UUID, чтобы избежать дублирования. При создании раздела в хост-системе этот UUID вместе с номером раздела образуют уникальную комбинацию.
Да, действительно. Дублирование может произойти, если диск подготовлен в системе A для использования в существующей системе B.
Вернувшись к этому вопросу долгое время спустя, я понял, что решение на самом деле такое же, как опциональное монтирование диска в /etc/fstab. Это обсуждается здесьhttps://wiki.archlinux.org/index.php/fstab#External_devices
Короче говоря, мое решение состоит в том, чтобы просто установить две почти идентичные записи в одно и то же место. Например:
UUID=cd49ca72-db24-47ba-b3bc-f0ba8e290599 /backup ext4 nofail,x-systemd.device-timeout=1 0 0
UUID=d28c6d3a-461e-4d7d-8737-40a56e8f384a /backup ext4 nofail,x-systemd.device-timeout=1 0 0
Пока только один из них подключен при загрузке системы, другой «тихо» отключится по тайм-ауту через 1 секунду. Таким образом, все, что подключено, будет смонтировано,а другая запись не приведет к остановке процесса загрузки.
Примечание. :Используйте это решение только в том случае, если вы уверены, что одновременно будет монтироваться только один из дисков.
¿Qué pasa si genera un nuevo uuid para todas esas unidades si no las conecta todas a la vez?
Genere un nuevo uuid con el comando uuid
(en algunos sistemas, es el comando uuidgen
. Ejemplo:
# uuid
30dcffac-1187-11e8-8338-0050569774ad
Verifique su UUID actual y, si lo desea, anótelo en cualquier lugar:
# vol_id /dev/sdb1 | grep UUID
ID_FS_UUID=224990ae-1187-11e8-ba4c-0050569774ad
ID_FS_UUID_ENC=224990ae-1187-11e8-ba4c-0050569774ad
Cambie el UUID usando tune2fs
. Haga esto una vez por unidad externa que tenga:
# tune2fs /dev/sdb1 -U 30dcffac-1187-11e8-8338-0050569774ad
tune2fs 1.41.3 (12-Oct-2008)
Móntelo usando el nuevo UUID generado en fstab
. Ejemplo:
UUID=30dcffac-1187-11e8-8338-0050569774ad /backup ext4 defaults 0 0
De esta manera, mount -a
debería ser suficiente para montar las unidades en -la mosca -, y si la computadora se reinicia, montará automáticamente la partición con UUID 30dcffac-1187-11e8-8338-0050569774ad
. Y como no he probado esto en una máquina física,No sé cuáles son las consecuencias de insertar 2 de esos discos al mismo tiempo y tratar de montarlos.
Si los discos tienen formato GPT, PARTUUID
debe usarse en fstab.