Как получить доступ к 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. Монтирует диски в /media/

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. Найдите идентификатор блочного устройства, которое вы хотите смонтировать, используя 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) вы можете монтировать диски с помощью 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 []

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 и имитировать большинство системных программ и функций (например, выключение, изменение громкости и т.д.).

Вы также можете автоматически монтировать USB-устройства на сервере Ubuntu с помощью USBmount.

Убедитесь, что вы запустили 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 однако, если вы хотите, я обнаружил, что это не совсем то, чего вы ожидали бы все время.