如何在/ etc/fstab中指定带空格的标签/路径?

cha*_*ase 44 linux ubuntu mount hard-drive

我无法尝试为我的某些外置硬盘设置获取权限.

我相信探测是由于我如何处理文本中的空格,以便终端可以解释命令.我找到了这个,这似乎表明我需要配置我的etc/fstab文件来显示以下内容:

# UNCONFIGURED FSTAB FOR BASE SYSTEM
/host/ubuntu/disks/swap.disk    none    swap    sw  0   0
LABEL='Expansion Drive'  /media/'Expansion Drive'  ntfs-3g  defaults,umask=0022,fmask=0133  0  0
LABEL='Expansion Drive_'  /media/'Expansion Drive_'  ntfs-3g  defaults,umask=0022,fmask=0133  0  0
Run Code Online (Sandbox Code Playgroud)

但是,这显示驱动器Drive_'未准备就绪的错误.我意识到这是由于使用""s或''s,但我不确定如何正确地做到这一点.我的2个驱动器被称为Expansion DriveExpansion Drive_.有谁知道如何解决这个问题?

编辑:这是我在媒体文件夹中可以看到的内容:

chasebrown@ubuntu:/media$ ls -al
total 32
drwxr-xr-x  6 root       root        1024 Mar  9 16:32 .
drwxr-xr-x 24 root       root        1024 Feb 23 23:14 ..
drwx------  1 chasebrown chasebrown  4096 Mar  8 04:21 Expansion Drive
drwx------  1 chasebrown chasebrown  4096 Mar  8 04:21 Expansion Drive_
dr-x------  1 chasebrown chasebrown  2048 May 20  2009 GDRV-25922+VR2
drwx------  1 chasebrown chasebrown 20480 Mar  8 04:21 WD EXTERNAL
Run Code Online (Sandbox Code Playgroud)

另外sudo lsblk -f:

chasebrown@ubuntu:/dev/disk/by-uuid$ sudo lsblk -f
[sudo] password for chasebrown: 
NAME   FSTYPE  LABEL           MOUNTPOINT
sda                            
??sda1 ntfs    System Reserved 
??sda2 ntfs                    
sdb                            
??sdb1 ntfs                    /host
sdc                            
??sdc1 ntfs    Expansion Drive /media/Expansion Drive_
sdd                            
??sdd1 ntfs    Expansion Drive /media/Expansion Drive
sde                            
??sde1 ntfs    WD EXTERNAL     /media/WD EXTERNAL
sr0    iso9660 GDRV-25922+VR2  /media/GDRV-25922+VR2
loop0  ext3                    /
Run Code Online (Sandbox Code Playgroud)

而且sudo blkid:

chasebrown@ubuntu:/dev/disk/by-uuid$ sudo blkid
/dev/loop0: UUID="87a15942-982f-4edd-bf44-439dc286fd7c" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sr0: LABEL="GDRV-25922+VR2" TYPE="iso9660" 
/dev/sda1: LABEL="System Reserved" UUID="64CEEA61CEEA2B4E" TYPE="ntfs" 
/dev/sda2: UUID="4CA4EBC0A4EBAAA2" TYPE="ntfs" 
/dev/sdb1: UUID="00064EEE064EE46E" TYPE="ntfs" 
/dev/sdc1: LABEL="Expansion Drive" UUID="C682A8EE82A8E3E1" TYPE="ntfs" 
/dev/sdd1: LABEL="Expansion Drive" UUID="D006D78406D769CC" TYPE="ntfs" 
/dev/sde1: LABEL="WD EXTERNAL" UUID="D65AFC375AFC15C9" TYPE="ntfs" 
Run Code Online (Sandbox Code Playgroud)

因此我的新fstab文件是:

# UNCONFIGURED FSTAB FOR BASE SYSTEM
/host/ubuntu/disks/swap.disk    none    swap    sw  0   0
LABEL=Expansion\040Drive  /media/Expansion\040Drive  ntfs-3g  defaults,umask=0022,fmask=0133  0  0
LABEL=Expansion\040Drive_  /media/Expansion\040Drive_  ntfs-3g  defaults,umask=0022,fmask=0133  0  0
Run Code Online (Sandbox Code Playgroud)

解决方法:最后我改变了LABELUUID和它的工作因为某种原因.

以下是生成的/ etc/fstab文件:

# UNCONFIGURED FSTAB FOR BASE SYSTEM
/host/ubuntu/disks/swap.disk    none    swap    sw  0   0
UUID=C682A8EE82A8E3E1  /media/Expansion\040Drive  ntfs-3g  defaults,umask=0022,fmask=0133  0  0
UUID=D006D78406D769CC  /media/Expansion\040Drive_  ntfs-3g  defaults,umask=0022,fmask=0133  0  0
Run Code Online (Sandbox Code Playgroud)

Tux*_*ude 100

您可以使用转义序列\040来转义空格:

# UNCONFIGURED FSTAB FOR BASE SYSTEM
/host/ubuntu/disks/swap.disk    none    swap    sw  0   0
LABEL=Expansion\040Drive  /media/Expansion\040Drive  ntfs-3g  defaults,umask=0022,fmask=0133  0  0
LABEL=Expansion\040Drive_  /media/Expansion\040Drive_  ntfs-3g  defaults,umask=0022,fmask=0133  0  0
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你不能像问题中提到的那样引用部分字符串.如果您正在引用,则需要引用整个字符串.

我从发生的输出,以通知的另一件事blkid是,有2个分区(在2个独立的驱动器sdc1sdd1)均具有相同的LABEL Expansion Drive.要解决此问题,您可以改为使用UUID.

UUID=C682A8EE82A8E3E1  /media/Expansion\040Drive  ntfs-3g  defaults,umask=0022,fmask=0133  0  0
UUID=D006D78406D769CC  /media/Expansion\040Drive_  ntfs-3g  defaults,umask=0022,fmask=0133  0  0
Run Code Online (Sandbox Code Playgroud)