So mounten Sie eine Partition mit Leerzeichen im Pfad

So mounten Sie eine Partition mit Leerzeichen im Pfad

Ich habe eine Partition erstellt und wollte diese Partition in dieses Verzeichnis mounten/home/max/VirtualBox VMs

Ich habe diese Zeile in fstab geschrieben:

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

aber es gibt diesen Fehler

[mntent]: Zeile 16 in /etc/fstab ist fehlerhaft

Ich weiß, dass dieser Fehler auftritt, weil zwischen den „VirtualBox-VMs“ Leerzeichen vorhanden sind.

Ist es möglich, in dieses Verzeichnis einzubinden?

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

Antwort1

Verwenden Sie Anführungszeichen.

/dev/sda4 "/home/max/VirtualBox-VMs" ext4-Standardwerte 0 0

Antwort2

fstabhat eine eigene Syntax. Um Leerzeichen als Teil eines Verzeichnisnamens zu verwenden, müssen Sie dessenCodepunktals mit Nullen aufgefüllte dreistellige Oktalzahl, der ein Backslash (Escape-Zeichen) vorangestellt ist.

InASCII, der Codepunkt des Leerzeichens ist 32 oder 40 im Oktalsystem, Sie können also Folgendes verwenden:

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

Beachten Sie, dass Codepunkte zwar auch für andere Zeichen unterstützt werden, die Unterstützung jedoch ziemlich unzuverlässig ist. Auf meinem Computer können Sie \127anstelle von schreiben W, abernicht \070anstatt 8...

Antwort3

Ich konvertiere den gesamten Pfad mit einer Bash-Funktion in einen Codepunkt:

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")

Antwort4

Ich hatte das gleiche Problem, aber mit einer kleinen Abwandlung: MontagebtrfsUntervolume mit Virtual Box in mein Home-Verzeichnis auf der Partition von ext4 (ich hatte gerade die Festplatten gewechselt).

Ich folgte Dennis' Lösung, hatte aber immer noch Probleme. Das Problem, auf das ich stieß, war, dass sowohl der alte als auch der neue Systempfad ein Leerzeichen enthielten, das meine Lösung ersetzen sollteallePfade, die Leerzeichen mit enthalten \040; das sähe dann ungefähr so ​​aus:

  • /dev/sda1btrfs des alten Systems sein
  • /dev/sdb1des neuen Systems
  • Untervolume mounten path/with spaceauf/home/<user>/VirtualBox VMs
  • Endgültige /etc/fstab:
...
/dev/sdb1 /home ext4 defaults 0 0
/dev/sda1 /home/<user>/VirtualBox\040VMs btrfs defaults,subvol=path/with\040space 0 0
...

verwandte Informationen