AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 37767
Accepted
MEM
MEM
Asked: 2011-04-29 16:26:21 +0800 CST2011-04-29 16:26:21 +0800 CST 2011-04-29 16:26:21 +0800 CST

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

  • 772

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

  • 如何手动安装闪存驱动器?
  • 复制命令应该是什么?
command-line
  • 7 7 个回答
  • 1534297 Views

7 个回答

  • Voted
  1. Best Answer
    Oli
    2011-04-29T16:43:33+08:002011-04-29T16:43:33+08:00

    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的东西并不是最用户友好的选项。在更高的堆栈中也有新的机制,用于以理智和标准的方式安装设备,这可能并不总是可用。

    所以我从其他答案中添加了一些润色。当您阅读此脚注并在桌面系统上执行此操作时,根据 wecac 的回答,肯定存在使用udisksctl的争论。这以与桌面相同的方式挂载——创建你自己的/media/$USER/device目录——但我认为静态挂载点仍然存在争议,尤其是当你不想改变路径时。

    Udisks 也依赖于 D-Bus,因此可能并非随处可用。

    • 442
  2. Sepero
    2013-11-06T17:39:42+08:002013-11-06T17:39:42+08:00

    pmount/pumount

    安装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.
    
    • 54
  3. wecac
    2016-12-29T07:34:33+08:002016-12-29T07:34:33+08:00

    使用udisksctlfrom package= udisks2(在 Ubuntu 和 Debian 中)。程序是:

    1. 使用以下命令查找要挂载的块设备的 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 驱动器。

    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): 1
      Password:
      ==== AUTHENTICATION COMPLETE ===
      Mounted /dev/sdc1 at /media/user/USBDRIVELABEL.
      

    在下面解决 Hans Deragon 的评论:你也可以告诉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.
    
    • 18
  4. Alex L.
    2012-08-30T07:42:39+08:002012-08-30T07:42:39+08:00

    除了使用标准mount命令(需要 root)之外,您还可以使用标准用户安装驱动udisks器dbus。

    为此,首先了解有关驱动器的一些信息是有用的(但不是必需的):

    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 []
    

    注意这<device>只是通往它的路径的尽头。因此,例如,如果您要安装的是 at ,/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 中体验的方方面面,并模拟大多数系统程序和功能(即关机、音量变化等)。

    • 12
  5. Sandro
    2016-05-15T08:35:05+08:002016-05-15T08:35:05+08:00

    您还可以借助 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
    
    • 6
  6. David Vale
    2012-08-30T06:08:39+08:002012-08-30T06:08:39+08:00

    这很简单。当我想在终端中使用 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命令查看当前连接的所有磁盘。

    • 3
  7. Minecraftchest1
    2021-09-22T14:18:50+08:002021-09-22T14:18:50+08:00

    我不会添加有关如何安装驱动器的内容。但是,由于提问者还询问用于复制数据的最佳命令是什么,所以我会回答,因为据我所知没有回答。

    我建议首先在驱动器上创建一个文件夹(即使它是空的)来备份你的东西以提供组织。mkdir <mountpath>/mybackup应该做的事情。

    其次,我会使用 rsync 复制所有内容。做一些类似的事情rsync -r ~/* <mountpoint>/mybackup。如果你愿意,你也可以使用cp -r,但是,我发现这样做并不能做到你一直期望的所有事情。

    • 0

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve