Как смонтировать раздел с пробелами в пути

Как смонтировать раздел с пробелами в пути

Я создал один раздел и хотел смонтировать его в этот каталог./home/max/VirtualBox VMs

Я прописал эту строку в fstab:

/dev/sda4 /home/max/VirtualBox\ Виртуальные машины ext4 по умолчанию 0 0

но он выдает эту ошибку

[mntent]: строка 16 в /etc/fstab неверна

Я знаю, что получаю эту ошибку из-за пробела между «virtualBox VMs»

Возможно ли подключиться к этому каталогу?

[макс@localhost VirtualBox VM]$ pwd
/home/max/Виртуальные машины VirtualBox

решение1

Используйте кавычки.

/dev/sda4 "/home/max/VirtualBox VMs" ext4 по умолчанию 0 0

решение2

fstabимеет свой собственный синтаксис. Чтобы использовать пробелы как часть имени каталога, вы должны указать егокодовая точкакак дополненное нулями 3-значное восьмеричное число, которому предшествует обратная косая черта (экранирующий символ).

ВASCII, код символа пробела равен 32 или 40 в восьмеричной системе счисления, поэтому можно использовать:

/dev/sda4               /home/max/VirtualBox\040VMs  ext4    defaults        0 0

Обратите внимание, что, хотя кодовые точки поддерживаются и для других символов, поддержка довольно нестабильна. На моей машине вы можете написать \127вместо W, нонет \070вместо 8...

решение3

Я преобразую весь путь в кодовую точку с помощью функции Bash:

fstab_path(){
    local path=$1
    local s=
    local c=
    for i in $(seq 1 ${#path})
    do
        c=${path:i-1:1}
        s="$s"$(printf '\\0%o' "'$c")
    done
    echo "$s"  >/dev/stdout
}

path="path with spaces tabs etc.."
fpath=$(fstab_path "$path")

решение4

У меня была та же проблема, но с небольшим изменением: креплениеbtrfsподтом, содержащий Virtual Box, в мой домашний каталог на разделе ext4 (я только что сменил жесткие диски).

Я последовал решению Денниса, но все еще имел проблемы. Проблема, с которой я столкнулся, заключалась в том, что и старый, и новый системные пути содержали пробел, моим решением было заменитьвсепути, содержащие пробелы с \040; это будет выглядеть примерно так:

  • /dev/sda1будучи btrfs старой системы
  • /dev/sdb1новой системы
  • Смонтировать подтом path/with spaceна/home/<user>/VirtualBox VMs
  • Окончательный /etc/fstab:
...
/dev/sdb1 /home ext4 defaults 0 0
/dev/sda1 /home/<user>/VirtualBox\040VMs btrfs defaults,subvol=path/with\040space 0 0
...

Связанный контент