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

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

  • Как установить флешку вручную?
  • Какой должна быть команда копирования?
292
задан 25 July 2017 в 14:21

6 ответов

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

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

393
ответ дан 25 July 2017 в 14:21

pmount / pumount

Hametraka pmount . Mametraka kapila ao anaty / media /

pmount /dev/sdb1
pumount /dev/sdb1

Tsy ilaina ny sudo .

Soloy ny "sdb1" amin'ny lalan'ny fitaovanao manokana. Raha mila fanazavana fanampiny dia jereo ny pejy 11107795] :

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.
49
ответ дан 25 July 2017 в 14:21

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

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

     user @ machine: ~ $ lsblk
    НАЗВАНИЕ ГЛАВНОЕ: МИН.РМ РАЗМЕР RO ТИП ГОРКА
    sda 8: 0 0 1,8 т 0 диск
     ├─sda1 8: 1 0 19,1M 0 часть / boot / efi
     ├─sda2 8: 2 0 1.8T 0 часть
     └─sda3 8: 3 0 16G 0 часть [SWAP]
    sdb 8:16 0931.5G 0 диск
     ├─sdb1 8:17 0 37M 0 часть
     ├─sdb2 8:18 0 15.9G 0 часть [SWAP]
     └─sdb3 8:19 0 915.7G 0 часть /
    sdc 8:32 1 14,4 ГБ 0 диск
     └─sdc1 8:33 1 14.4G 0 часть
    sdd 8:48 0 1.8T 0 диск
     └─sdd1 8:49 0 1.8T 0 часть
     

    Судя по размеру, / dev / sdc1 мне кажется USB-накопитель, который я хочу смонтировать.

  2. Используйте udisksctl , чтобы смонтировать устройство. Обратите внимание, что -b == - block-device (для уменьшения набора текста), но я предпочитаю длинные варианты документации:

     user @ machine: ~ $ udisksctl mount --block  -устройство / dev / sdc1
     ==== АУТЕНТИФИКАЦИЯ ДЛЯ org.freedesktop.udisks2.filesystem-mount ===
    Для установки Kingston DT microDuo 3C (/ dev / sdc1) требуется аутентификация.
    Для аутентификации можно использовать несколько идентификаторов:
      1. XXXXX ,,, (пользователь)
      2. ,,, (ГГГГГ)
    Выберите личность для аутентификации как (1-2): 1
    Пароль:
     ==== АУТЕНТИФИКАЦИЯ ЗАВЕРШЕНА ===
    Смонтирован / dev / sdc1 в / media / user / USBDRIVELABEL.
     

В ответ на комментарий Ханса Дерагона ниже : вы также можете указать udisksctl выполнить - без взаимодействия с пользователем . Он не пытается аутентифицировать пользователя, что обычно «просто работает»:

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.
14
ответ дан 25 July 2017 в 14:21

Это просто. Когда я хочу использовать USB-накопитель в терминале, я делаю это:

Создайте папку в /медиа с:

mkdir /media/mountDrive 

Эта папка будет использоваться для точки монтирования. Используйте эту команду:

sudo mount /dev/sdd1 /media/mountDrive 

sdd1 является первым разделом моего USB. Затем можно перейти к папке, которая уже смонтирована с помощью

cd /media/mountDrive

Если необходимо перечислить файлы на диске, можно воспользоваться командой ls.

Для размонтирования диска можно использовать

sudo umount /dev/sdd1

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

3
ответ дан 25 July 2017 в 14:21

Вы также можете автоматически монтировать 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
6
ответ дан 25 July 2017 в 14:21

В дополнение к использованию стандартной команды 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. - это просто конец пути к нему. Так например, если вы хотите смонтировать /dev/sdb2, то вы поставите sdb2 вместо .


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

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 = 'файловая система' могут быть смонтированы с помощью вышеуказанной команды. Это означает, что, например, если бы я хотел смонтировать устройство '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
ответ дан 25 July 2017 в 14:21

Другие вопросы по тегам:

Похожие вопросы: