Или, если значение находится в переменной оболочки (bash ):
var=/tmp/test/folder1/test.txt
$ echo "${var//\//\\\/}"
\/tmp\/test\/folder1\/test.txt
Первый //
запуск параметра расширения , говорящий о замене всех совпадений с заменой. Следующий \/
— это экранированный /
для сопоставления, а \\\/
— это экранированный \
, за которым следует экранированный /
в качестве замены.
Если после просмотра вывода dmsetup ls
вы обнаружите, что у вас есть устаревшие устройства, вы можете удалить их с помощью dmsetup remove
— в идеале после тщательной проверки того, что устройство действительно не используется.
У меня была та же проблема, и после этого я смог снова разблокировать и смонтировать зашифрованный жесткий диск USB:
# dmsetup ls --tree
luks-f53274db-3ede-4a27-9aa6-2525d9305f94 (254:5)
`- (8:34)
# ls -l /dev/mapper/
total 0
crw------- 1 root root 10, 236 Nov 24 15:22 control
lrwxrwxrwx 1 root root 7 Nov 27 09:42 luks-f53274db-3ede-4a27-9aa6-2525d9305f94 ->../dm-5
# dmsetup remove /dev/dm-5
В моем случае возникла проблема в /etc/crypttab
.
Я следовал какому-то туториалу, но толком его не понял, поэтому создал такой файл, как:
secret UUID=AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA /root/AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA.lukskey
secret UUID=BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB /root/BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB.lukskey
и получал ошибку, потому что из-за приведенной выше конфигурации система пыталась создать /dev/mapper/secret
для каждой из строк, а вторая не удалась.
После замены на:
стало нормальноluks-AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA UUID=AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA /root/AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA.lukskey
luks-BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB UUID=BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB /root/BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB.lukskey
Это привело к созданию /dev/mapper/luks-AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA
и /dev/mapper/luks-BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB
.