7

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

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

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

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

[mntent]: строка 16 в /etc /fstab плохая

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

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

[max@localhost VirtualBox VMs]$ pwd
/home/max/VirtualBox VMs

4 ответа4

15

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

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

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

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

2

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

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

0

Я преобразую весь путь к точке кода с помощью функции 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")
0

В вопросе вы говорите, что имя

/home/max/VirtualVM Box

в вашем примере вы показываете

/home/max/VirtualBox\ VM

Так должно быть

/home/max/VirtualVM\ Box

быть таким же. Это должно также иметь кавычки вокруг этого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .