问题描述
我只能访问命令行。我需要将我的数据(在用户文件夹上)备份到笔(USB DOK)。
-
我如何手动安装闪存驱动器?
-
复制命令应该是什么?
最佳解决方法
1.找到该驱动器被称为
你需要知道驱动器被调用来挂载它。要做到这一点,请关闭以下其中一项(按照我的偏好排序):
lsblk
sudo blkid
sudo fdisk -l
你正在寻找一个看起来像这样的分区:/dev/sdb1
。您可能拥有的字母越高,磁盘越多。无论如何,找到它并记住它叫什么。
2.创建一个安装点(可选)
这需要在某处加载到文件系统中。你通常可以使用/mnt /如果你懒惰,没有别的东西挂在那里,否则你会想创建一个新的目录:
sudo mkdir /media/usb
3.挂载!
sudo mount /dev/sdb1 /media/usb
当你完成后,只需开枪:
sudo umount /media/usb
这个答案已经有6年的历史了,尽管它的核心仍然有效,但像fdisk -l
这样的东西并不是user-friendly选项中最多的。高级堆栈中还有一些新的机制,用于以合理和标准的方式安装设备,而这些设备可能并不总是可用的。
所以我从其他答案中添加了一些波兰语。当你阅读这个脚注并且你在桌面系统上这样做时,根据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
命令(需要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
和其他文件管理器auto-mount的东西一样。在这些命令中,我们发送了各种对象(即/org/freedesktop/...
消息,要求他们装载和卸载某些设备。根据PolicyKit
中给出的权限,它们可能会也可能不会这样做。
使用类似的命令,可以控制Ubuntu中几乎所有的体验,并模拟大多数系统程序和功能(即关机,音量变化等)。
第四种方法
对于Ubuntu 14.04,您可以使用udisksctl
1.找出块设备
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
2.尺寸/dev/sdc1
似乎是我想要安装的USB设备。
user@machine:~$ udisksctl mount -b /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.
第五种方法
这很简单。当我想在终端中使用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
命令查看当前连接的所有磁盘。
第六种方法
您也可以借助USBmount在Ubuntu服务器上自动安装USB设备。
确保在开始安装之前运行apt-get更新/升级:
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
查看所有可用的驱动器及其各自的安装点
对于un-mount驱动器,您可以使用umount。
sudo umount /media/usb0