MEM*_*MEM 292 command-line usb-drive mount
我只能访问命令行。
我需要将我的数据(在用户文件夹中)备份到笔(USB DOK)。
Oli*_*Oli 419
您需要知道驱动器的名称来安装它。为此,请执行以下操作之一(按我的偏好排序):
lsblk
sudo blkid
sudo fdisk -l
Run Code Online (Sandbox Code Playgroud)
您正在寻找一个分区应该是这个样子:/dev/sdb1。您拥有的磁盘越多,这可能是字母越高。无论如何,找到它并记住它的名字。
这需要安装到文件系统的某个地方。通常可以使用 /mnt/ 如果您很懒惰并且没有其他任何东西安装在那里,否则您将要创建一个新目录:
sudo mkdir /media/usb
Run Code Online (Sandbox Code Playgroud)
sudo mount /dev/sdb1 /media/usb
Run Code Online (Sandbox Code Playgroud)
完成后,只需开火:
sudo umount /media/usb
Run Code Online (Sandbox Code Playgroud)
这个答案已经有将近 6 年的历史了,虽然它的核心仍然有效,但诸如此类fdisk -l的选项并不是最用户友好的选项。在更高的堆栈中还有新的机制,用于以理智和标准的方式安装设备,但可能并不总是可用。
所以我从其他答案中添加了一些润色。当您阅读此脚注并在桌面系统上执行此操作时udisksctl,根据 wecac 的回答,肯定存在使用 的论据。这以与桌面相同的方式挂载 - 创建您自己的/media/$USER/device目录 - 但我认为静态挂载点仍然存在参数,尤其是当您不想更改路径时。
Udisks 还依赖于 D-Bus,因此可能并非随处可用。
Sep*_*ero 52
pmount / pumount安装pmount. 在 /media/ 中挂载磁盘
pmount /dev/sdb1
pumount /dev/sdb1
Run Code Online (Sandbox Code Playgroud)
不需要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.
Run Code Online (Sandbox Code Playgroud)
小智 18
使用udisksctlfrom 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
Run Code Online (Sandbox Code Playgroud)
从它的大小来看,/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.
Run Code Online (Sandbox Code Playgroud)在下面解决 Hans Deragon 的评论:你也可以告诉udisksctldo --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.
Run Code Online (Sandbox Code Playgroud)
Ale*_* L. 12
除了使用标准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>" []
Run Code Online (Sandbox Code Playgroud)
如果挂载成功,这个调用应该回显它挂载的路径。
要卸载以这种方式安装的驱动器,您可以运行:
gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/<device> --method org.freedesktop.UDisks.Device.FilesystemUnmount []
Run Code Online (Sandbox Code Playgroud)
注意,这<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) ).*|\}|.*\{)"
Run Code Online (Sandbox Code Playgroud)
这将打印出如下内容:
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';
};
};
};
Run Code Online (Sandbox Code Playgroud)
那些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" []
Run Code Online (Sandbox Code Playgroud)
这些命令都使用dbus消息传递系统工作,Nautilus与其他文件管理器自动挂载事物的方式相同。在这些命令中,我们发送了各种对象(即/org/freedesktop/...要求他们挂载和卸载某些设备的消息。他们可能会也可能不会这样做,具体取决于PolicyKit.
使用类似的命令可以控制人们在 Ubuntu 中体验的几乎所有方面,并模拟大多数系统程序和功能(即关机、音量更改等)。
小智 6
您还可以借助 USBmount 在 Ubuntu Server 上自动挂载 USB 设备。
确保在开始安装之前运行 apt-get update/upgrade:
sudo apt-get update && sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
现在从存储库安装 USBmount:
sudo apt-get install usbmount
Run Code Online (Sandbox Code Playgroud)
USBmount 将所有 USB 驱动器安装在/media/usb*(usb0, usb1, usb2 ...)
现在插入 USB 驱动器并等待它被检测到并安装。只要主机操作系统支持文件系统,就应该挂载它。
要验证 USB 驱动器是否正确安装,您可以使用df -h查看所有可用驱动器及其各自的安装点
要卸载驱动器,您可以使用 umount。
sudo umount /media/usb0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1438254 次 |
| 最近记录: |