我的笔记本电脑上运行着 Debian,并且rsnapshot
配置可以出色地将数据逐步备份到我的 1TB 外部驱动器。不幸的是,有时驱动器会在/media/ivy
我插入时安装到,有时则安装到/media/usb0
。我该如何标准化安装点?我最初考虑使用fstab
,但作为新手,我认为fstab
通常可以处理更永久的驱动器连接——因为我想在笔记本电脑上执行此操作,驱动器经常来来去去。
答案1
我解决类似问题的方法是确保外部 USB 卷已标记,然后使用 /dev/disk/by-label/labelname 手动挂载和卸载它(如果您旋转有多个磁盘和一个脚本,然后将磁盘标记为 Backup_01、Backup_02 等,这将很有用)
为了“修复”安装点,使其按您希望的方式运行,您可能需要查看 UDEV,它可以枚举设备。配置它需要反复试验,但对于我想要识别和运行脚本的安装,我使用了:
KERNEL=="sd?1",ATTRS{产品}=="EXTIDPRODUCTIDENTIFUER",ATTRS{序列号}=="DEVICE_SERIAL_NO",RUN+="/usr/local/bin/script.to.run"
为了发现传递给 udev 的参数,我发出了命令 udevadm info -a -p $(udevadm info -q path -n /dev/sdXX)
我认为没有理由认为您执行的脚本不能是 mount 命令。
答案2
我非常确定您可以使用 来做到这一点gvfs-mount
,但我无法告诉您如何操作。默认情况下gvfs-mount
应安装在/media/YOUR_DRIVE_VOLUME_NAME
。只要您的驱动器有卷名(我假设它有,因为它有时安装在 /media/ivy)。无论如何,一种解决方法fstab
是使用UUID
外部驱动器的 添加条目。
要获取驱动器的 UUID,请执行以下操作
ls -l /dev/disk/by-uuid/
你应该看到类似
lrwxrwxrwx 1 root root 10 Feb 14 16:58 E208CFC0FGG345JDB -> ../../sdb1
假设您的外部驱动器的分区是
/dev/sdb1
,您可以像这样添加一个条目fstab
:UUID=C0BCD19CBCD18D72 /media/ivy ntfs nofail,defaults 0 0
现在,根据man mount
,nofail
只会抑制错误消息。但是,根据这一页,这也会导致mountall
跳过不存在的设备。如果这不起作用,您还可以尝试bootwait
(源1,来源2) 和/或bg
(来源) 选项。遗憾的是,我目前手边没有外部驱动器,因此无法检查。