ошибка: ln: не удалось создать символическую ссылку «./sys/kernel/config/nvmt»: операция не разрешена даже при наличии root-доступа

Я пытаюсь настроить NVMe поверх Fabrics, используя сообщение "https://community.mellanox.com/s/article/howto-configure-nvme-over-fabrics". Я мог перейти к шагу 10, но когда я пытаюсь создать программную ссылку в соответствии с шагом 10 в качестве пользователя root, я получаю сообщение об ошибке:

ln: не удалось создать символическую ссылку «./sys/kernel/config/nvmt/subsystems»: операция не разрешена

почему невозможно создать программную ссылку в /sys/kernel/config от имени пользователя root? есть ли способ заставить это работать?


person Marjan Radi    schedule 25.02.2020    source источник
comment
Примечание. Для самой ошибки ln: failed to create symbolic link и : Operation not permitted вам может понадобиться sudo chattr -i <file1> сначала перед ln -sf <file2> <file1>, если вы использовали chattr +i для блокировки этого файла ранее.   -  person Fruit    schedule 30.01.2021


Ответы (2)


Включаете ли вы начальную точку ('./') в путь? Так сказать из текущего местоположения.

person Baledin    schedule 25.02.2020
comment
Нет, я просто запускаю: ln -s /sys/kernel/config/nvmet/subsystems/mysubsystem /sys/kernel/config/nvmet/ports/1/subsystems - person Marjan Radi; 25.02.2020

У меня была аналогичная проблема, и причина оказалась в том, что каталог, который нужно связать, должен быть создан ДО создания ссылки. Я проверил инструкции, на которые вы ссылаетесь, кажется, они были обновлены. Шаг, на который вы ссылаетесь, теперь кажется шагом 9:

ln -s /sys/kernel/config/nvmet/subsystems/nvme-subsystem-name /sys/kernel/config/nvmet/ports/1/subsystems/nvme-subsystem-name

Это будет работать, только если оба /sys/kernel/config/nvmet/subsystems/nvme-subsystem-name и /sys/kernel/config/nvmet/ports/1/subsystems/nvme- имя подсистемы уже существует. Теперь я нигде не вижу, чтобы последняя папка создавалась, поэтому я бы попытался создать эту папку:

mkdir -p /sys/kernel/config/nvmet/ports/1/subsystems/nvme-subsystem-name

Параметр -p позволяет mkdir создать все отсутствующие каталоги по указанному пути, если они отсутствуют, поэтому вы можете напрямую ввести mkdir -p a/b/c вместо первого mkdir a, затем mkdir a/b, затем mkdir a/b/c.

Надеюсь это работает!

person Juha Lipponen    schedule 14.08.2020