在 Ubuntu 12.10 上,当我想要安装硬盘时,我只需单击未安装的驱动器,一切就可以正常工作(通过安装到/media/username/partitionlabel
)。
基本上,我想做正是通过命令行(对于我正在处理的脚本)。
自从我不要想要在启动时自动挂载,fstab 是不可能的(对吗?)。
当我在 CLI 上使用 mount 时,我需要指定一个挂载点(需要有一个先前创建的挂载点;另外,我还需要处理权限和其他问题)——我不明白的是 GUI 从哪里获取所有信息?挂载点似乎取决于分区的标签,但这样的目录在挂载之前并不存在。此外,GUI 方式似乎并不太在意用户不是 root。
是否有一种“简单”的方法可以通过 CLI 进行挂载,就像在 GUI 上单击未挂载的驱动器一样?
答案1
Nautilus 和其他安装驱动器的文件管理器(即,图形用户界面)使用该udisks
命令。
这提供了一个动态的mount,其中为驱动器动态创建挂载点,当驱动器卸载时,挂载点消失。
看man 1 udisks
了解如何使用此命令(手动或从脚本/应用程序调用)。要了解有关udisks
工作原理的更多信息,请参阅man 7 udisks
。
要使用 挂载设备udisks
,您必须指定有效的设备名称指定设备的卷名不会起作用。因此,你可以udisks
像这样使用:
udisks --mount /dev/sdb1
当从命令行手动使用时udisks
,最好只是插入设备,然后dmesg | tail
稍后运行(参见man dmesg
和man tail
) 来发现新连接设备的设备名称。
然而,这可能不是编写使用 挂载设备的脚本的最佳方式udisks
。我不知道你到底应该怎么做,而且很难知道,因为你没有告诉我们确切的方法什么您希望此脚本执行以下任务什么时候您希望它能够挂载设备。
答案2
由于我不想在启动时自动挂载,所以 fstab 是不可能的(对吗?)。
不。noauto
关键字会使其在启动时跳过挂载。
是否有一种“简单”的方法可以通过 CLI 进行挂载,就像在 GUI 上单击未挂载的驱动器一样?
最简单的方法是将其添加到/etc/fstab
并noauto
使用...
mount /dir
这将对挂载点进行挂载探测,如果没有找到,则需要存在设备/etc/fstab
。
/dir
如果提供了设备或 UUID,/etc/fstab
则不会探测。就像这样...
mount /dev/sda1 /media/directory
或者使用udisks
(我会让 Eliah 处理这个 >:-))
通常,只有超级用户才可以安装。
示例选项:
rw,noauto,user
将其安装为读写但不在启动时,您可以以用户身份执行此操作。您还可以为文件添加用户权限
/etc/fstab
。您可以使用umask
它。umask=0444 :每个人都可以读取,但不能写入,不能执行。
umask=0333 :每个人都读取,执行。
umask=0338 :所有者、组读取并执行;其他,无
答案3
在其中一条评论中,您说:
无论出于什么原因,当我通过 ssh 运行时,我收到“挂载失败:未授权”
我用pmount
而不是udisks
。它通过 ssh 工作。
如果我没记错的话,这是我使用的语法/等等 - 此时我的大部分语法都隐藏在别名后面:
pmount /dev/sdb1 my_usb
ls /media/my_usb/
eject /media/my_usb
答案4
udisksctl
更新内容,仅供参考。
建议的命令先前的评论在最近的 Linux 发行版中,不再是 udisks,而是 udisksctl。
udisksctl mount -b /dev/sdc1