Могу ли я создать символическую ссылку на раздел, используя UUID или PARTUUID?

Вопрос или проблема

Я пытаюсь создать символическую ссылку на раздел диска и смонтировать раздел, используя эту символическую ссылку.

Информация о моем разделе выглядит следующим образом

# blkid
/dev/sda3: UUID="dbd18617-ff94-44c7-b6a2-f520004258e0" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="c4db5f86-45b2-43d3-8983-fedeb71da5cd"

Сначала я попытался смонтировать раздел, используя PARTUUID, как показано ниже, и это сработало, как и ожидалось.

# mount PARTUUID="c4db5f86-45b2-43d3-8983-fedeb71da5cd" /mnt

Теперь я создал символическую ссылку для раздела.

# ln -sf PARTUUID="c4db5f86-45b2-43d3-8983-fedeb71da5cd" /dev/update
# ls -la /dev/update
lrwxrwxrwx   1 root  root          45 Sep 24 23:10 /dev/update -> 'PARTUUID=c4db5f86-45b2-43d3-8983-fedeb71da5cd'

И попытался смонтировать раздел, используя символическую ссылку, но получил сообщение об ошибке ниже.

# mount /dev/update /mnt
mount: /mnt: специальное устройство /dev/update не существует.

Вот в чем вопрос. Я делаю что-то не так? Или монтирование раздела с использованием PARTUUID не разрешено?

Для сравнения я создал другую символическую ссылку. (После удаления вышеуказанной символической ссылки).

# ln -sf /dev/sda3 /dev/update
lrwxrwxrwx   1 root  root           9 Sep 24 23:12 /dev/update -> /dev/sda3

Используя эту символическую ссылку, монтирование раздела прошло успешно.

# mount /dev/update /mnt

Вы видите, что я делаю что-то не так?

Ответ или решение

Да, вы правильно отметили, что создание символических ссылок на PARTUUID или UUID напрямую не работает так, как вы ожидали. Давайте разберемся в ситуации подробнее.

Ваша команда для создания символической ссылки:

# ln -sf PARTUUID="c4db5f86-45b2-43d3-8983-fedeb71da5cd" /dev/update

не создает фактической ссылки на устройство, как это делает команда, в которой используется путь к устройству, например:

# ln -sf /dev/sda3 /dev/update

Точная причина в том, что при создании символической ссылки вы указываете строку PARTUUID=..., и операционная система не интерпретирует это как специальное устройство. PARTUUID и UUID работают на уровне системных вызовов, но они не существуют как файловые пути, которые можно использовать в виде символических ссылок.

Когда вы используете команду mount, она ожидает, что аргумент будет действительным путем к блочному устройству, а не строкой надлежащего формата, такой как PARTUUID.

Чтобы корректно использовать PARTUUID, вам нужно делать это в самом команде mount, как вы уже сделали. То есть:

# mount PARTUUID="c4db5f86-45b2-43d3-8983-fedeb71da5cd" /mnt

или

# mount UUID="dbd18617-ff94-44c7-b6a2-f520004258e0" /mnt

Для вашей задачи создания символической ссылки вы можете использовать существующие устройства, как это показано вами, а именно:

# ln -sf /dev/sda3 /dev/update

Это правильный подход, и он будет работать должным образом, потому что /dev/sda3 является реальным блочным устройством, в отличие от PARTUUID, который не является физическим предназначением для символических ссылок.

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

Оцените материал
Добавить комментарий

Капча загружается...