Как получить доступ к флешке от терминала?
У меня есть доступ только к командной строке.
Мне нужно сделать резервную копию моих данных (в папке пользователя) на ручку (USB DOK).
- Как я могу установить флешку вручную?
- Какой должна быть команда копирования?
7 ответов
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
не самые удобные варианты. В более высоких стеках также есть новые механизмы для установки устройств в здравом и стандартном виде, которые могут быть не всегда доступны.
Поэтому я добавил немного блеска из других ответов. Пока вы читаете эту сноску и делаете это на настольной системе, определенно есть аргументы для использования udisksctl
за ответ wecac. Это монтируется так же, как настольный компьютер - создавая свой собственный /media/$USER/device
каталог - но я думаю, что есть еще аргументы для статической точки монтирования, особенно когда вы не хотите, чтобы путь изменился.
Udisks также использует D-Bus, поэтому может быть недоступен везде.
Устанавливать 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.
Использование udisksctl
из пакета =udisks2
(как в Ubuntu, так и в Debian). Процедура такова:
Найдите идентификатор блочного устройства, которое вы хотите смонтировать, используя
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-накопитель, который я хочу смонтировать.использование
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.
Обращаясь к комментарию Ханса Дерагона ниже: вы также можете сказать 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
со своим стандартным пользователем.
Для этого полезно (но не обязательно) сначала узнать несколько вещей о накопителе:
- Что это за устройство (т.е.
/dev/sdb1
) - какую файловую систему он использует.
Зная это, вы можете использовать простую команду для монтирования диска из командной строки.
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 []
NB <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 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 и моделировать большинство системных программ и функций (например, выключение, изменение громкости и т. Д.).
Вы также можете автоматически монтировать USB-устройства на Ubuntu Server с помощью 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
однако, если хотите, я обнаружил, что это не делает всего того, что вы ожидаете все время.