我已格式化闪存驱动器,因此需要卸载该设备。格式化完成后,有没有办法通过命令行触发自动挂载?
(我知道我可以重新插入 USB 闪存驱动器,但这似乎是一种廉价的做法;)并且手动安装似乎有点麻烦,因为需要手动 mkdir 安装目录。)
答案1
/usr/bin/udisks --mount /dev/sdc1
对我有用。根据https://help.ubuntu.com/community/AutomaticallyMountPartitions。
答案2
这是我在 Ubuntu 18.04 上的解决方案:
udisksctl mount -b {device}
答案3
我觉得你需要跑
sudo partprobe
重新扫描所有设备的分区和文件系统。在我的 Xubuntu 12.04(基于 debian)上,这还会触发自动挂载。
答案4
这正确答案2024 年确实要使用:
udisksctl mount -b {device}
但是当您不知道确切的设备路径时,它就不那么明显了,例如,当您将 ISO 映像复制到 pendrive 时(可能是在创建实时 Linux USB 驱动器时),它可能包含任意数量的分区,而您不知道其中哪一个udisk
会挂载(如:您知道设备是什么/dev/sdd
,但您需要挂载一个特定的分区,而不知道它是否/dev/sdd1
是/dev/sdd2
)。
在查看源代码后,我发现你可以udisk
通过重新授权设备来触发插入驱动器时发生的确切操作。我的意思是:
❯ lsblk -f
NAME FSTYPE FSVER LABEL UUID...
[...]
sdd
├─sdd1 iso9660 Joliet Extension EOS_202404 2024-04-20-15-57-10-00
└─sdd2 vfat FAT16 ARCHISO_EFI 7156-9697
显然是 2 个分区。当然,您可以只挂载两个分区,然后看看您感兴趣的是哪一个,但您也可以检查 USB 设备地址:
❯ lsusb -tv
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/10p, 480M
ID 1d6b:0002 Linux Foundation 2.0 root hub
|__ Port 003: Dev 005, If 0, Class=Mass Storage, Driver=usb-storage, 480M
ID 048d:1234 Integrated Technology Express, Inc. Chipsbank CBM2199 Flash Drive
因此,它连接到集线器的端口 #3,即端口 #1,即设备的端口路径为1-3
。让我们重新授权它:
sudo echo 0 > /sys/bus/usb/devices/1-3/authorized
sleep 3 # or just wait a few seconds
sudo echo 1 > /sys/bus/usb/devices/1-3/authorized
您可以使用别名自动执行最后一步:
usb-reset='_usbreset() { sudo sh -c "echo 0 > /sys/bus/usb/devices/$1/authorized"; sleep 3; sudo sh -c "echo 1 > /sys/bus/usb/devices/$1/authorized"; unset -f _usbreset };_usbreset'
您还可以使用别名快速列出所有连接的端口及其设备的“idVendor:idDevice”字符串(如上例所示) lsusb
,048d:1234
使用以下别名:
usb-paths='for d in /sys/bus/usb/devices/*; do [[ -e $d/idVendor ]] && echo -e "$d\t$(cat $d/idVendor):$(cat $d/idProduct)"; done'
我推荐别名,它是一种非常有用的工具,用于记录您容易忘记但肯定在某些时候会再次需要的东西。