我正在尝试使用 debian 11 bullseye 将外部 USB 驱动器安装到 raspberry pi 4b。到目前为止我尝试设置安装选项的任何内容都会被忽略。
/etc/fstab
UUID="9f32de87-6800-4585-a5c5-e6a3946ba2bb" /data ext4 defaults,nofail 0 0
UUID="9f32de87-6800-4585-a5c5-e6a3946ba2bb" /data ext4 rw,suid,dev,exec,auto,nouser,async,nofail 0 0
PARTUUID=20df08a4-01 /data ext4 rw,suid,dev,exec,auto,nouser,async,nofail 0 0
systemd mount unit
root@srv:/etc/systemd/system# cat data.mount
[Unit]
Description=Mount /data with systemd
[Mount]
What=/dev/disk/by-uuid/9f32de87-6800-4585-a5c5-e6a3946ba2bb
Where=/data
Type=ext4
Options=rw,suid,dev,exec,auto,nouser,async,nofail
[Install]
WantedBy=multi-user.target
mount command
root@srv:~# mount -t ext4 -o rw,suid,dev,exec,auto,nouser,async,nofail /dev/sda1 /data
输出始终是:
root@srv:~# mount -l | grep data
/dev/sda1 on /data type ext4 (rw,relatime) [data]
我知道大多数选项都包含在 ext4 默认挂载选项中,但我尝试的其他选项也被完全忽略。
有任何提示如何执行此操作吗?我在这里缺少 USB 驱动器的任何限制吗?
谢谢
答案1
async
、suid
和dev
是安装exec
的默认状态,因此只能显示ext4
非默认选项(sync
、nosuid
和nodev
/或)。noexec
auto
nouser
主要影响命令mount
本身,这些也是这些选项的默认状态。通常,如果/当执行时,将安装所有/etc/fstab
未专门标记选项的条目;一旦安装了文件系统,/选项就已经实现了它的目的,因此内核没有理由跟踪它。noauto
mount -a
auto
noauto
如果user
指定,该mount
命令将必须跟踪谁安装了文件系统(/etc/mtab
如果它是常规文件,则通常为常规文件;现在改为/run/mount/libmount
),因为只有 root 或最初安装该文件系统的用户才被允许卸载它。但对于 Unix 来说nouser
,默认的经典 Unix 行为“只有 root 可以挂载/卸载文件系统”占主导地位。
在您指定的所有这些选项中,nofail
这是唯一的非默认选项,它也只影响安装过程,导致如果无法安装此文件系统,它不会报告错误。一旦文件系统成功挂载,内核就没有理由跟踪该选项的状态。
显式显示rw
和选项的原因本质上是历史性的:显式显示/ state 是一种长期的实践,并强调了时间戳的处理并非严格按照经典 Unix 方式完成的事实。其他替代方案是(这可能会导致问题,例如检测您是否有未读电子邮件的经典方法),并且会强制执行经典的 Unix 行为(并导致大量不必要的小型写入操作,损害 SSD寿命并防止磁盘进入节能状态)。自内核版本 2.6.30 起一直是默认值。relatime
rw
ro
relatime
atime
relatime
noatime
/var/mail
strictatime
relatime
因此,您的挂载选项实际上并没有被忽略:您只是指定一组选项,这些选项本质上相当于挂载文件系统的默认方式。
答案2
要打印所有安装选项,请在安装安装点时执行以下操作:
grep '/data' /proc/mounts
对我来说,安装选项似乎没问题,只是检查它们的方法可能不正确。