Cómo montar una partición con espacios en el camino

Cómo montar una partición con espacios en el camino

Creé una partición y quería montar esa partición en este directorio/home/max/VirtualBox VMs

Escribí esta línea en fstab:

/dev/sda4 /home/max/VirtualBox\ VMs ext4 valores predeterminados 0 0

pero me esta dando este error

[mntent]: la línea 16 en /etc/fstab es incorrecta

Sé que recibo este error debido al espacio entre las 'virtualBox VM'

¿Es posible montar en ese directorio?

[max@localhost VirtualBox VM]$ contraseña
/home/max/VM VirtualBox

Respuesta1

Utilice comillas.

/dev/sda4 "/home/max/VirtualBox VMs" ext4 predeterminado 0 0

Respuesta2

fstabtiene su propia sintaxis. Para utilizar espacios como parte del nombre de un directorio, debe especificar supunto de códigocomo un número octal de 3 dígitos relleno con ceros, precedido por una barra invertida (carácter de escape).

EnASCII, el punto de código del carácter de espacio es 32 o 40 en octal, por lo que puedes usar:

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

Tenga en cuenta que, si bien los puntos de código también son compatibles con otros personajes, el soporte es bastante inestable. En mi máquina, puedes escribir \127en lugar de W, perono \070en lugar de 8...

Respuesta3

Estoy convirtiendo toda la ruta en un punto de código con una función 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")

Respuesta4

Tuve el mismo problema, pero con un ligero giro: montarbtrfssubvolumen que contiene Virtual Box en mi directorio de inicio en la partición de ext4 (acababa de cambiar los discos duros).

Seguí la solución de Dennis pero todavía tenía problemas. El problema con el que me encontré fue que tanto la ruta del sistema antigua como la nueva contenían un espacio que mi solución era reemplazartodorutas que contienen espacios con \040; se vería algo como esto:

  • /dev/sda1siendo btrfs del viejo sistema
  • /dev/sdb1del nuevo sistema
  • Montar el subvolumen path/with spaceen/home/<user>/VirtualBox VMs
  • /etc/fstab final:
...
/dev/sdb1 /home ext4 defaults 0 0
/dev/sda1 /home/<user>/VirtualBox\040VMs btrfs defaults,subvol=path/with\040space 0 0
...

información relacionada