![如何掛載路徑中有空格的分割區](https://rvso.com/image/1345293/%E5%A6%82%E4%BD%95%E6%8E%9B%E8%BC%89%E8%B7%AF%E5%BE%91%E4%B8%AD%E6%9C%89%E7%A9%BA%E6%A0%BC%E7%9A%84%E5%88%86%E5%89%B2%E5%8D%80.png)
我建立了一個分割區,我想將該分割區掛載到該目錄/home/max/VirtualBox VMs
我在 fstab 中寫了這一行:
/dev/sda4 /home/max/VirtualBox\ VM ext4 預設值 0 0
但它給了這個錯誤
[mntent]: /etc/fstab 中的第 16 行有問題
我知道由於“virtualBox VM”之間存在空間而出現此錯誤
是否可以安裝到該目錄?
[max@localhost VirtualBox VMs]$ pwd /home/max/VirtualBox 虛擬機
答案1
使用引號。
/dev/sda4 "/home/max/VirtualBox VMs" ext4 預設值 0 0
答案2
答案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
我遇到了同樣的問題,但略有不同:安裝BTFS包含 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
...