我有一台 Linux(Pop OS 18.1)笔记本电脑,连接到用作扩展坞的外接显示器。USB 驱动器插入显示器的一个 USB 端口。
我想使用 USB 驱动器进行备份。为此,有一个 cron 作业每天运行并执行以下操作:
BACKUP_DEVICE=/dev/sda1
umount $BACKUP_DEVICE
pmount -A $BACKUP_DEVICE
# Do the backup
umount $BACKUP_DEVICE
我希望仅在备份期间安装 USB 驱动器。这样我就可以安全地拔下显示器(以及驱动器)。为了安全起见,备份首先调用 umount 以确保驱动器已卸载,然后安装它,进行备份,然后再次卸载。
问题是 umount 和 pmount 有时会出错:
umount: /dev/sda1: no mount point specified.
Error: device /dev/sda1 does not exist
1) 我不知道如何解释 umount 错误消息。如果 USB 驱动器未安装并且我手动 umount,则错误消息略有不同:“umount: /dev/sda1: not mounted。”所以我不知道是什么导致了上述 umount 错误消息。
2) /dev/sda1 不存在?!它已插入,卸载后仍列在 /dev 中。
我似乎搞错了方向。如何确保 USB 驱动器仅在备份脚本运行期间挂载?
答案1
根据我的经验,通过 /dev/sdX 字母引用驱动器是不可靠的。相反,找到设备的 uuid:
joe@computer:~$ lsblk -o +UUID
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT UUID
sda 8:0 0 119.2G 0 disk
└─sda1 8:1 0 119.2G 0 part XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXXX
├─ubuntu--vg-root 253:0 0 118.3G 0 lvm / XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXXX
└─ubuntu--vg-swap_1 253:1 0 976M 0 lvm [SWAP] XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXXX
sdb 8:16 0 698.7G 0 disk
├─sdb1 8:17 0 100M 0 part XXXXXXXXXXXXXXXX
└─sdb2 8:18 0 698.6G 0 part /media/XXXX USBPARTITIONUUID
然后在你的脚本中替换
/dev/sda1
和
/dev/disk/by-uuid/USBPARTITIONUUID