Как получить доступ к флэш-накопителю USB с терминала?

217

У меня есть доступ к командной строке. Мне нужно сделать резервную копию моих данных (в папке пользователя) на ручке (USB DOK).

  • Как смонтировать флешку вручную?
  • Какова должна быть команда копирования?
задан MEM 29.04.2011 в 02:26
источник

6 ответов

304

1. Найти, что называется диск

Вам нужно знать, что вызвал диск для его монтирования. Для этого выполните одно из следующих действий (в соответствии с моими предпочтениями):

lsblk
sudo blkid
sudo fdisk -l

Вы ищете раздел, который должен выглядеть примерно так: /dev/sdb1 . Чем больше у вас дисков, тем выше будет это письмо. В любом случае, найдите его и вспомните, как он называется.

2. Создайте точку монтирования (необязательно)

Это необходимо установить в файловую систему где-то . Обычно вы можете использовать / mnt /, если вы ленивы, и больше ничего не монтируется там, но в противном случае вы захотите создать новый каталог:

sudo  mkdir /media/usb

3. Mount!

sudo mount /dev/sdb1 /media/usb

Когда вы закончите, просто запустите:

sudo umount /media/usb

Этот ответ почти 6 лет, и хотя ядро его все еще работает, такие вещи, как fdisk -l , не самые удобные для пользователя варианты. Существуют также новые механизмы в более высоких штабелях для установки устройств стандартным и стандартным способом, который может не всегда быть доступен.

Итак, я добавил некоторые отладки из других ответов. Пока вы читаете эту сноску, и вы делаете это на настольной системе, определенно есть аргументы для с использованием udisksctl , per wecac's ответить . Это устанавливается так же, как на рабочем столе, создавая собственный каталог /media/$USER/device , но я думаю, что есть еще аргументы для статической точки монтирования, особенно если вы не хотите, чтобы путь изменился.

Udisks также полагается на D-Bus, поэтому может быть недоступен везде.

    
ответ дан Oli 29.04.2011 в 02:43
источник
40

Установите pmount . Монтирует диски в / media /

pmount /dev/sdb1
pumount /dev/sdb1

Не нужно судо. Замените «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.
    
ответ дан Sepero 06.11.2013 в 02:39
11

В дополнение к использованию стандартной команды 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> будет помещен IdUsage = 'filesystem' .

Если вы не знаете, какое устройство оно или какая файловая система использует, не бойтесь. Вы можете легко распечатать всю эту информацию с помощью этой небольшой команды:

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';
    };
  };
};

Те, у кого есть dbus , могут быть установлены с использованием указанной выше команды.

Это означает, что, например, если бы я хотел установить устройство USB DRIVE, я бы выполнил команду

gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/sdb1 --method org.freedesktop.UDisks.Device.FilesystemMount "vfat" []

Эти команды работают с помощью системы сообщений Nautilus , так же, как /org/freedesktop/... и другие файловые менеджеры автоматически монтируют вещи. В этих командах мы отправляем различные объекты (т. Е. PolicyKit сообщений с просьбой установить и отключить определенные устройства. Они могут или не могут делать это в зависимости от разрешений, предоставленных в %co_de% .

Используя аналогичные команды, вы можете контролировать практически каждый аспект работы в Ubuntu и имитировать большинство системных программ и функций (например, выключение, изменение объема и т. д.).

    
ответ дан Alex L. 29.08.2012 в 17:42
10

Используйте udisksctl из пакета = udisks2 (как в Ubuntu, так и в Debian). Процедура:

  1. Найдите идентификатор блочного устройства, которое хотите установить, используя lsblk :

    [email protected]:~$ 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 (для сокращения ввода), но я предпочитаю длинные варианты документации:

    [email protected]:~$ 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 . Он не пытается аутентифицировать пользователя, который обычно "просто работает":

[email protected]:~$ 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.
    
ответ дан wecac 28.12.2016 в 16:34
2

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

    
ответ дан Deivid Vale 29.08.2012 в 16:08
2

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

Перед запуском установки убедитесь, что вы запустили обновление / обновление apt-get:

sudo apt-get update && sudo apt-get upgrade

Теперь установите USBmount из репозиториев:

sudo apt-get install usbmount

USB-накопитель монтирует все USB-накопители в /media/usb* (usb0, usb1, usb2 ...)

Теперь подключите USB-накопитель и дождитесь его обнаружения и установки. Пока ОС хоста поддерживает файловую систему, он должен быть установлен.

Чтобы проверить правильность установки USB-накопителя, вы можете использовать df -h для просмотра всех доступных дисков и их соответствующих точек монтирования.

Чтобы отключить накопитель, вы можете использовать umount.

sudo umount /media/usb0
    
ответ дан Sandro 14.05.2016 в 18:35
1

Я обнаружил, что команда mount (указанная как первый ответ / ответ выше) отлично подходит для того, чтобы система сделала USB-накопитель доступным для использования. Если я хочу скопировать пучки файлов и / или папок с USB-накопителя на мой внутренний диск, мне нравится использовать интерфейс MC ( Midnight Commander )! MC позволяет вам работать в двух бок о бок, вкладки между каждой панелью, использовать разные меню или «кнопки» для копирования / перемещения / удаления и т. Д. Пучков файлов / папок, использовать фильтрацию, чтобы выбирать только определенные файлы (с дикими карты и т. д.) Действительно отличный инструмент, который снимает жало из консоли. Должен быть доступен в вашем любимом репозитории!

    
ответ дан Beely 04.12.2015 в 02:50