Answers:
您将需要知道调用该驱动器以进行安装。为此,请执行以下操作之一(按我的喜好排序):
lsblk
sudo blkid
sudo fdisk -l
您正在寻找的分区应该类似于:/dev/sdb1
。您拥有的磁盘越多,字母可能越高。无论如何,找到它并记住它的名字。
这需要挂载到文件系统中的某个位置。如果您很懒,并且在那里没有挂载其他东西,通常可以使用/ mnt /,否则您将要创建一个新目录:
sudo mkdir /media/usb
sudo mount /dev/sdb1 /media/usb
完成后,请开火:
sudo umount /media/usb
这个答案将近6年了,虽然它的核心仍然有效,fdisk -l
但并不是最人性化的选择。在较高的堆栈中,还存在一些新的机制,这些机制可以以合理和标准的方式安装设备,但这种机制可能并不总是可用。
因此,我在其他答案中添加了一些修饰语。当您阅读此脚注并在台式机系统上进行此操作时,肯定会根据wecac的回答使用udisksctl
论点。这种安装方式与台式机安装方式相同(创建自己的/media/$USER/device
目录),但是我认为仍然有用于静态安装点的参数,尤其是当您不希望更改路径时。
Udisk也依赖于D-Bus,因此可能并非在所有地方都可用。
安装pmount
。将磁盘挂载到/ media /
pmount /dev/sdb1
pumount /dev/sdb1
不需要sudo。用您的特定设备路径替换“ sdb1”。有关更多信息,请参见联机帮助页:
pmount ("policy mount") is a wrapper around the standard mount program
which permits normal users to mount removable devices without a match-
ing /etc/fstab entry.
pmount is invoked like this:
pmount device [ label ]
This will mount device to a directory below /media if policy is met
(see below). If label is given, the mount point will be /media/label,
otherwise it will be /media/device.
mount
坚持以只读方式安装我的驱动器时,此方法有效。
除了使用标准mount
命令(需要root用户)之外,您还可以使用标准用户udisks
和dbus
与标准用户一起安装驱动器。
为此,首先了解有关驱动器的一些知识很有用(但不是必需的):
/dev/sdb1
)了解这些知识后,您可以使用简单的命令从命令行安装驱动器。
gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/<device> --method org.freedesktop.UDisks.Device.FilesystemMount "<filesystem>" []
如果安装成功,则此调用应回显其安装路径。
要卸载以这种方式安装的驱动器,可以运行:
gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/<device> --method org.freedesktop.UDisks.Device.FilesystemUnmount []
注意,这<device>
仅仅是通往它的道路的尽头。因此,例如,如果您要安装的是,/dev/sdb2
则可以sdb2
代替<device>
。
如果您不知道它是哪个设备或使用哪个文件系统,请不要担心。您可以使用以下小命令轻松地打印出所有这些信息:
gdbus introspect --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices --recurse --only-properties | grep -E "(readonly .+ (IdLabel|IdType|Device(IsMounted|IsDrive|File) ).*|\}|.*\{)"
这将打印出如下内容:
node /org/freedesktop/UDisks/devices {
node /org/freedesktop/UDisks/devices/sda {
interface org.freedesktop.UDisks.Device {
readonly s IdLabel = '';
readonly s IdType = '';
readonly s IdUsage = '';
readonly b DeviceIsMounted = false;
readonly s DeviceFile = '/dev/sda';
};
};
node /org/freedesktop/UDisks/devices/sda1 {
interface org.freedesktop.UDisks.Device {
readonly s IdLabel = 'SYSTEM';
readonly s IdType = 'ntfs';
readonly s IdUsage = 'filesystem';
readonly b DeviceIsMounted = false;
readonly s DeviceFile = '/dev/sda1';
};
};
node /org/freedesktop/UDisks/devices/sda2 {
interface org.freedesktop.UDisks.Device {
readonly s IdLabel = 'Windows7';
readonly s IdType = 'ntfs';
readonly s IdUsage = 'filesystem';
readonly b DeviceIsMounted = true;
readonly s DeviceFile = '/dev/sda2';
};
};
node /org/freedesktop/UDisks/devices/sda3 {
interface org.freedesktop.UDisks.Device {
readonly s IdLabel = 'Recovery';
readonly s IdType = 'ntfs';
readonly s IdUsage = 'filesystem';
readonly b DeviceIsMounted = false;
readonly s DeviceFile = '/dev/sda3';
};
};
node /org/freedesktop/UDisks/devices/sda4 {
interface org.freedesktop.UDisks.Device {
readonly s IdLabel = '';
readonly s IdType = '';
readonly s IdUsage = '';
readonly b DeviceIsMounted = false;
readonly s DeviceFile = '/dev/sda4';
};
};
node /org/freedesktop/UDisks/devices/sda5 {
interface org.freedesktop.UDisks.Device {
readonly s IdLabel = '';
readonly s IdType = 'ext4';
readonly s IdUsage = 'filesystem';
readonly b DeviceIsMounted = true;
readonly s DeviceFile = '/dev/sda5';
};
};
node /org/freedesktop/UDisks/devices/sda6 {
interface org.freedesktop.UDisks.Device {
readonly s IdLabel = '';
readonly s IdType = 'swap';
readonly s IdUsage = 'other';
readonly b DeviceIsMounted = false;
readonly s DeviceFile = '/dev/sda6';
};
};
node /org/freedesktop/UDisks/devices/sda7 {
interface org.freedesktop.UDisks.Device {
readonly s IdLabel = '';
readonly s IdType = 'ext4';
readonly s IdUsage = 'filesystem';
readonly b DeviceIsMounted = true;
readonly s DeviceFile = '/dev/sda7';
};
};
node /org/freedesktop/UDisks/devices/sdb {
interface org.freedesktop.UDisks.Device {
readonly s IdLabel = '';
readonly s IdType = '';
readonly s IdUsage = '';
readonly b DeviceIsMounted = false;
readonly s DeviceFile = '/dev/sdb';
};
};
node /org/freedesktop/UDisks/devices/sdb1 {
interface org.freedesktop.UDisks.Device {
readonly s IdLabel = 'USB DRIVE';
readonly s IdType = 'vfat';
readonly s IdUsage = 'filesystem';
readonly b DeviceIsMounted = false;
readonly s DeviceFile = '/dev/sdb1';
};
};
node /org/freedesktop/UDisks/devices/sr0 {
interface org.freedesktop.UDisks.Device {
readonly s IdLabel = '';
readonly s IdType = '';
readonly s IdUsage = '';
readonly b DeviceIsMounted = false;
readonly s DeviceFile = '/dev/sr0';
};
};
};
那些已经IdUsage = 'filesystem'
可以使用上面的命令挂载的文件。
这意味着,例如,如果我要安装设备“ USB DRIVE”,我将运行以下命令
gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/sdb1 --method org.freedesktop.UDisks.Device.FilesystemMount "vfat" []
这些命令全部使用dbus
消息传递系统工作,Nautilus
与其他文件管理器自动挂载事物的方式相同。在这些命令中,我们正在发送各种对象(即,/org/freedesktop/...
要求它们安装和卸载某些设备的消息。根据是否已授予权限,它们可能会或可能不会这样做PolicyKit
。
使用类似的命令,可以控制Ubuntu中几乎所有用户体验的各个方面,并模拟大多数系统程序和功能(例如,关机,更改音量等)。
gdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/drives --recurse --only-properties
udisksctl
从package =中使用udisks2
(在Ubuntu和Debian中)。程序是:
使用以下命令找到要安装的块设备的ID lsblk
:
user@machine:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
├─sda1 8:1 0 19.1M 0 part /boot/efi
├─sda2 8:2 0 1.8T 0 part
└─sda3 8:3 0 16G 0 part [SWAP]
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 37M 0 part
├─sdb2 8:18 0 15.9G 0 part [SWAP]
└─sdb3 8:19 0 915.7G 0 part /
sdc 8:32 1 14.4G 0 disk
└─sdc1 8:33 1 14.4G 0 part
sdd 8:48 0 1.8T 0 disk
└─sdd1 8:49 0 1.8T 0 part
从其大小来看,/dev/sdc1
似乎是我要安装的USB驱动器。
使用udisksctl
安装该设备。请注意,-b
== --block-device
(以减少键入),但我更喜欢文档较长的选项:
user@machine:~$ udisksctl mount --block-device /dev/sdc1
==== AUTHENTICATING FOR org.freedesktop.udisks2.filesystem-mount ===
Authentication is required to mount Kingston DT microDuo 3C (/dev/sdc1)
Multiple identities can be used for authentication:
1. XXXXX,,, (user)
2. ,,, (YYYYY)
Choose identity to authenticate as (1-2): 1
Password:
==== AUTHENTICATION COMPLETE ===
Mounted /dev/sdc1 at /media/user/USBDRIVELABEL.
在下面回答Hans Deragon的评论:您也可以告诉udisksctl
do --no-user-interaction
。它不会尝试对用户进行身份验证,这通常是“可行的”:
user@machine:~$ udisksctl mount --block-device /dev/sdc1 --no-user-interaction
# possibly some complaining here about I/O charset or need to run `fsck`
Mounted /dev/sdc1 at /media/user/USBDRIVELABEL.
--object-path
它询问?
您也可以借助USBmount在Ubuntu Server上自动挂载USB设备。
在开始安装之前,请确保您运行apt-get update / upgrade:
sudo apt-get update && sudo apt-get upgrade
现在从存储库安装USBmount:
sudo apt-get install usbmount
USBmount将所有USB驱动器装入/media/usb*
(usb0,usb1,usb2 ...)
现在插入USB驱动器,并等待其检测和安装。只要主机操作系统支持文件系统,就应该安装它。
要验证USB驱动器是否已正确安装,您可以df -h
用来查看所有可用的驱动器及其各自的安装点
要卸载驱动器,可以使用umount。
sudo umount /media/usb0
很简单 当我想在终端中使用USB驱动器时,请执行以下操作:
在/media
其中创建一个文件夹:
mkdir /media/mountDrive
该文件夹将用于安装点。使用以下命令:
sudo mount /dev/sdd1 /media/mountDrive
sdd1
是我的USB的第一个分区。然后,您可以导航到已经安装了的文件夹
cd /media/mountDrive
如果要列出驱动器中的文件,则可以使用ls
命令。
要卸载驱动器,您可以使用
sudo umount /dev/sdd1
请注意,在我的系统中,usb驱动器为/dev/sdd1
,但在您的系统中可能有所不同。要了解它是什么,请使用df
命令查看当前连接的所有磁盘。