我在 Raspberry 3 上运行 Ubuntu Core,并且尝试安装外部 USB 磁盘,并按照以下说明操作:安装说明
运行命令时
igor-lopez@localhost:~$ systemctl start home-igor-lopez-backup-vol1.mount
我遇到了失败:
无法启动 home-igor-lopez-backup-vol1.mount:单元 home-igor-lopez-backup-vol1.mount 未正确加载:参数无效。
我的挂载文件(/writable/system-data/etc/systemd/system/home-igor-lopez-backup-vol1.mount)如下所示:
[Unit]
Description=Mount for Backup Vol1
[Mount]
What=/dev/disk/by-uuid/eb48ffde-6fcd-48e4-a31b-316628728f4c
Where=/home/igor-lopez/backup/vol1
Type=ext4
[Install]
WantedBy=multi-user.target
并且挂载点确实存在:
igor-lopez@localhost:~/backup/vol1$ pwd
/home/igor-lopez/backup/vol1
磁盘也是如此:
/dev/磁盘/by-uuid/eb48ffde-6fcd-48e4-a31b-316628728f4c -> ../../sda1
由于用户是在安装期间创建的,并连接到我的启动板帐户,因此我的用户名中有一个破折号。挂载文件的名称应与挂载点匹配,但斜线被替换为破折号,但如果可以避免,我不想更改用户名。
使用 sudo 运行相同的命令会得到更多信息:
1 月 5 日 13:24:28 localhost.localdomain systemd1: home-igor-lopez-backup-vol1.mount: Where= 设置与单元名称不匹配。拒绝。
因此它看起来像挂载文件条目:
Where=/home/igor-lopez/backup/vol1
是罪魁祸首,我不知道如何解决它。
尝试根据 Grawity 的回复将位置更改为:
Where=/home/igor\x2dlopez/backup/vol1
但这并没有帮助。
答案1
由于单元文件名不能包含斜杠,因此用破折号代替。但为了避免歧义,起初必须用其他内容替换;systemd 使用 C 风格的\x##
十六进制转义来替换。因此igor-lopez
必须写为igor\x2dlopez
。
用于systemd-escape
查找正确的名称:
$ systemd-escape --path /home/igor-lopez/backup/vol1
home-igor\x2dlopez-backup-vol1