gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 12:36:55 28 4
gpt4 key购买 nike

我在尝试获取某些外部驱动器设置的权限时遇到问题。

我相信问题是由于我如何处理文本中的空格,以便终端可以解释命令。我找到了this ,这似乎表明我需要配置我的 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

但是,这显示驱动器 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

还有 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 /

还有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"

因此我的新 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

解决方案:我最终将 LABEL 更改为 UUID 并且由于某种原因它起作用了。

这是生成的/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

最佳答案

您可以使用转义序列 \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

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

我碰巧从 blkid 的输出中注意到的另一件事是有 2 个分区(在 2 个单独的驱动器 sdc1sdd1 上)两者都具有相同的 LABEL 扩展驱动器。要解决此问题,您可以改用 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

关于linux - 如何在/etc/fstab 中指定带有空格的标签/路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15316017/

28 4 0