Mount USB Discks Using SystemD
虽然家里的迷你服务器(锐角云三角主机)跑了N年,但是一直没有搞定USB硬盘在开机后自动挂载。每次断电重启后,都需要手工执行挂载。终于,通过SystemD的配置,解决了这个问题。
Debian 12上实现开机自动挂载USB磁盘,一般可以在系统启动过程或者系统启动后执行。如果在系统启动过程执行挂载,挂载过程出错,有可能导致系统启动失败(导致不能进入系统)。所以系统启动后执行挂载,相对稳妥。其方案很多,我选择了在fstab文件里通过SystemD的配置实现。
修改/etc/fstab
文件,添加以下配置即可。
UUID=7d010a88-bc3c-7a2c-0270-3eae70edd016 /media/ud1 ext4 defaults,auto,nofail,x-systemd.automount,x-systemd.device-timeout=10s 0 0
相关参数解析如下:
UUID
,填写USB磁盘里需要挂载分区的UUID。可以使用以下其中一条命令查看:ls -l /dev/disk/by-uuid/ lsblk -f blkid
/media/ud1
,设置挂载目录。ext4
,分区的文件系统类型。defaults
,使用默认选项,即rw,suid,dev,exec,auto,nouser,async
rw
,挂载该文件系统可读写。suid
,从该文件系统执行程序时,遵循用户权限和组权限的设置。dev
,解释该文件系统上的字符或块特殊设备。exec
,允许执行二进制文件或其它可执行文件。auto
,标识mount -a
命令可以自动挂载该文件系统,实现开机或重启时自动挂载。nouser
,普通用户不能执行挂载。async
,该文件系统的所有I/O都应该异步完成。
auto
,同defaults
的auto
。nofail
,设备不存在时,不报告错误信息。x-systemd.automount
,为该文件系统创建自动挂载单元(automount unit)。x-systemd.device-timeout=10s
,SystemD等待该设备可见(show up)的时间,超过该时间则放弃挂载,避免没有接入该USB磁盘而导致开机等太久。
参考