Como montar partição com espaços no caminho

Como montar partição com espaços no caminho

Eu criei uma partição e queria montá-la neste diretório/home/max/VirtualBox VMs

Eu escrevi esta linha no fstab:

/dev/sda4 /home/max/VirtualBox\ VMs ext4 padrões 0 0

mas está dando esse erro

[mntent]: a linha 16 em /etc/fstab está ruim

Eu sei que estou recebendo este erro por causa do espaço entre 'virtualBox VMs'

É possível montar nesse diretório?

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

Responder1

Use aspas.

/dev/sda4 "/home/max/VirtualBox VMs" padrões ext4 0 0

Responder2

fstabtem sua própria sintaxe. Para usar espaços como parte de um nome de diretório, você deve especificar seuponto de códigocomo um número octal de três dígitos preenchido com zeros, precedido por uma barra invertida (caractere de escape).

EmASCII, o ponto de código do caractere de espaço é 32 ou 40 em octal, então você pode usar:

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

Observe que, embora os pontos de código também sejam suportados para outros caracteres, o suporte é um tanto instável. Na minha máquina, você pode escrever \127em vez de W, masnão \070em vez de 8...

Responder3

Estou convertendo todo o caminho em ponto de código com uma função 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")

Responder4

Eu tive o mesmo problema, mas com uma pequena diferença: montarbtrfssubvolume contendo o Virtual Box em meu diretório inicial na partição ext4 (acabei de trocar os discos rígidos).

Segui a solução de Dennis, mas ainda estava tendo problemas. O problema que encontrei foi que tanto o caminho antigo quanto o novo do sistema continham um espaço que minha solução era substituirtodoscaminhos contendo espaços com \040; seria algo assim:

  • /dev/sda1sendo btrfs do sistema antigo
  • /dev/sdb1do novo sistema
  • Monte o subvolume path/with spaceem/home/<user>/VirtualBox VMs
  • Final /etc/fstab:
...
/dev/sdb1 /home ext4 defaults 0 0
/dev/sda1 /home/<user>/VirtualBox\040VMs btrfs defaults,subvol=path/with\040space 0 0
...

informação relacionada