如何从终端访问usb闪存驱动器?

我只能访问命令行。
我需要将我的数据(在用户文件夹上)备份到笔(USB DOK)。

  • 如何手动安装闪存驱动器?
  • 复制命令应该是什么?

1. 找到驱动器的名称

您需要知道驱动器被调用以安装它。 要做到这一点火关闭以下之一(按我的喜好排序):

lsblksudo blkidsudo fdisk -l

你正在寻找一个分区,应该看起来像: /dev/sdb1. 您拥有的磁盘越多,字母就越高。 无论如何,找到它并记住它的名字。

2. 创建挂载点(可选)

这需要挂载到文件系统中 某个地方. 你通常可以使用/mnt/如果你是懒惰的,没有其他东西挂载在那里,但否则你会想要创建一个新的目录:

sudo  mkdir /media/usb

3. 上马!

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中)。 程序是:

  1. 找到要挂载的块设备的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驱动器。

  2. 使用方法 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)您可以使用 udisksdbus 与您的标准用户。

要做到这一点,首先了解驱动器的一些事情是有用的(但不是必需的):

  1. 它是什么设备(即 /dev/sdb1)
  2. 它使用什么文件系统。

了解这些,您可以使用一个简单的命令从命令行挂载驱动器。

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 但是,如果你愿意,我发现这样做并不能做到你一直期望的一切。