我只能访问命令行。
我需要将我的数据(在用户文件夹上)备份到笔(USB DOK)。
- 如何手动安装闪存驱动器?
- 复制命令应该是什么?
我只能访问命令行。
我需要将我的数据(在用户文件夹上)备份到笔(USB DOK)。
您需要知道驱动器被调用以安装它。 要做到这一点火关闭以下之一(按我的喜好排序):
lsblksudo blkidsudo fdisk -l
你正在寻找一个分区,应该看起来像: /dev/sdb1
. 您拥有的磁盘越多,字母就越高。 无论如何,找到它并记住它的名字。
这需要挂载到文件系统中 某个地方. 你通常可以使用/mnt/如果你是懒惰的,没有其他东西挂载在那里,但否则你会想要创建一个新的目录:
sudo mkdir /media/usb
sudo mount /dev/sdb1 /media/usb
当你完成后,就开火:
sudo umount /media/usb
这个答案几乎是6岁,虽然它的核心仍然有效,但类似的事情 fdisk -l
不是最方便用户的选择。 在更高的堆栈中也有新的机制,以理智和标准的方式安装设备,这可能并不总是可用的。
所以我从其他答案中添加了一些润色。 当你在阅读这个脚注并且在桌面系统上这样做的时候,肯定有争论。 使用 udisksctl
,根据wecac的答案. 这与桌面的安装方式相同-创建自己的 /media/$USER/device
目录-但我认为静态挂载点仍然存在参数,特别是当您不希望路径更改时。
Udisks也依赖于D-Bus,因此可能无法在任何地方使用。
pmount
/ pumount
安装/安装 pmount
. 在/媒体中安装磁盘/
pmount /dev/sdb1pumount /dev/sdb1
非也。 sudo
需要。
将"sdb1"替换为您的特定设备路径。 有关更多信息,请参阅 手册页:
pmount ("policy mount") is a wrapper around the standard mount programwhich 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.
使用方法 udisksctl
从包=udisks2
(在Ubuntu和Debian中)。 程序是:
找到要挂载的块设备的ID,使用 lsblk
:
user@machine:~$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 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 partsdd 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): 1Password:==== AUTHENTICATION COMPLETE ===Mounted /dev/sdc1 at /media/user/USBDRIVELABEL.
向汉斯*德拉贡致词 下面的评论:你也可以告诉 udisksctl
去做 --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.
除了使用标准 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 []
N.B.的 <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驱动器',我会运行命令
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和模拟大多数系统程序和功能(即关机,音量变化等)。).
您还可以在Usbmount的帮助下在Ubuntu服务器上自动挂载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
命令查看当前连接的所有磁盘。
我不会补充关于如何安装驱动器。 但是,由于询问者还询问使用什么最好的命令来复制数据,我会回答说,因为据我所知,它没有得到回答。
我会建议首先在驱动器上创建一个文件夹(即使它是空的)来备份你的东西,以提供组织。 类似于...... mkdir <mountpath>/mybackup
应该这样做。
其次,我会使用rsync复制所有内容。 做一些沿着 rsync -r ~/* <mountpoint>/mybackup
. 您也可以使用 cp -r
但是,如果你愿意,我发现这样做并不能做到你一直期望的一切。