Comment accéder à une clé USB depuis le terminal?

250

Je n'ai accès qu'à la ligne de commande.
Je dois sauvegarder mes données (sur le dossier de l'utilisateur) sur un stylo (clé USB).

  • Comment puis-je monter un lecteur flash manuellement?
  • Quelle devrait être la commande de copie?
MEM
la source

Réponses:

348

1. Trouver comment s'appelle le lecteur

Vous aurez besoin de savoir comment le lecteur est appelé pour le monter. Pour ce faire, effectuez l'une des opérations suivantes (classée par ordre de préférence):

lsblk
sudo blkid
sudo fdisk -l

Vous êtes à la recherche d'une partition qui devrait ressembler à : /dev/sdb1. Plus vous avez de disques, plus la lettre sera haute. Quoi qu'il en soit, trouvez-le et rappelez-vous comment il s'appelle.

2. Créer un point de montage (facultatif)

Cela doit être monté quelque part dans le système de fichiers . Vous pouvez généralement utiliser / mnt / si vous êtes paresseux et que rien d’autre n’y est monté, mais sinon, vous voudrez créer un nouveau répertoire:

sudo  mkdir /media/usb

3. Montez!

sudo mount /dev/sdb1 /media/usb

Lorsque vous avez terminé, lancez-vous:

sudo umount /media/usb

Cette réponse a presque 6 ans et, même si son noyau fonctionne toujours, les fdisk -loptions telles que celles proposées ne sont pas les plus conviviales. Il existe également de nouveaux mécanismes dans les piles plus hautes pour le montage de périphériques de manière normale et normale, qui peuvent ne pas toujours être disponibles.

J'ai donc ajouté un peu de polissage à partir des autres réponses. Pendant que vous lisez cette note de bas de page et que vous le faites sur un ordinateur de bureau, il existe certainement des arguments pour utiliser udisksctl, par réponse de wecac . Cela fonctionne de la même manière que le bureau (création de votre propre /media/$USER/devicerépertoire), mais je pense qu'il existe toujours des arguments pour un point de montage statique, en particulier lorsque vous ne voulez pas que le chemin d'accès change.

Les Udisks reposent également sur D-Bus, ils pourraient donc ne pas être disponibles partout.

Oli
la source
L'inconvénient majeur de cette méthode est qu'elle monte le périphérique en tant que root. si le périphérique est au format FAT, l'utilisateur ne pourra pas y écrire. le point de montage / media / $ USER / device sera également toujours le même
eMBee
45

Installer pmount. Monte les disques dans / media /

pmount /dev/sdb1
pumount /dev/sdb1

Pas besoin de sudo. Remplacez "sdb1" par votre chemin de périphérique spécifique. Pour plus d'informations, voir la page de manuel:

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
la source
Cela a fonctionné lorsque mountj'ai insisté pour monter mon lecteur en lecture seule.
Jonathan Landrum
12

En plus d'utiliser la mountcommande standard (qui nécessite root), vous pouvez monter des lecteurs à l'aide de udiskset dbusavec votre utilisateur standard.

Pour ce faire, il est utile (mais pas obligatoire) de connaître en premier lieu quelques informations sur le lecteur:

  1. Quel appareil est (c. -à /dev/sdb1)
  2. quel système de fichiers il utilise.

Sachant cela, vous pouvez utiliser une simple commande pour monter un lecteur à partir de la ligne de commande.

gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/<device> --method org.freedesktop.UDisks.Device.FilesystemMount "<filesystem>" []

cet appel doit faire écho au chemin sur lequel il est monté si le montage réussit.

Pour démonter les lecteurs montés de cette manière, vous pouvez exécuter:

gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/<device> --method org.freedesktop.UDisks.Device.FilesystemUnmount []

NB le <device>est simplement la fin du chemin qui y mène. Ainsi, par exemple, si vous voulez monter, /dev/sdb2vous devez le sdb2remplacer <device>.


Si vous ne savez pas de quel appareil il s'agit ni quel système de fichiers il utilise, ne craignez rien. Vous pouvez facilement imprimer toutes ces informations avec cette petite commande:

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) ).*|\}|.*\{)"

Cela va imprimer quelque chose comme ça:

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

Ceux qui ont IdUsage = 'filesystem'peut être monté en utilisant la commande ci-dessus.

Cela signifie que, par exemple, si je voulais monter le périphérique 'USB DRIVE', je lancerais la commande

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

Ces commandes fonctionnent toutes avec le dbussystème de messagerie, de la même manière que les Nautilusautres gestionnaires de fichiers qui montent automatiquement des objets. Dans ces commandes, nous envoyons divers objets (par exemple, des /org/freedesktop/...messages leur demandant de monter et de démonter certains périphériques. Ils peuvent le faire ou non en fonction des autorisations qui ont été données PolicyKit.

En utilisant des commandes similaires, il est possible de contrôler presque tous les aspects de l'expérience d'Ubuntu et de simuler la plupart des programmes et des fonctions du système (par exemple, l'arrêt, le changement de volume, etc.).

Alex L.
la source
1
La manière de 2015 estgdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/drives --recurse --only-properties
Nick Alexander
12

Utilisez-le udisksctldepuis package = udisks2(dans Ubuntu et Debian). La procédure est:

  1. Recherchez l'ID du périphérique bloc que vous souhaitez monter en utilisant 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
    

    De par sa taille, il /dev/sdc1semble que ce soit le lecteur USB que je souhaite monter.

  2. Utilisez udisksctlpour monter le périphérique. Notez que -b== --block-device(pour réduire le typage) mais je préfère les longues options pour la documentation:

    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.
    

Répondre au commentaire de Hans Deragon ci - dessous : vous pouvez également dire udisksctlà faire --no-user-interaction. Il ne tente pas d'authentifier l'utilisateur, ce qui généralement "ne fonctionne que":

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.
Wecac
la source
Qu'est-ce --object-pathque cela demande?
CMCDragonkai
5

Vous pouvez également monter automatiquement des périphériques USB sur Ubuntu Server à l'aide de USBmount.

Assurez-vous d’exécuter apt-get update / upgrade avant de commencer l’installation:

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

Maintenant, installez USBmount à partir des référentiels:

sudo apt-get install usbmount

USBmount monte tous les lecteurs USB en /media/usb*(usb0, usb1, usb2 ...)

Maintenant, branchez un lecteur USB et attendez qu'il soit détecté et monté. Tant que le système d'exploitation hôte prend en charge le système de fichiers, il doit être monté.

Pour vérifier si le lecteur USB a été monté correctement, vous pouvez df -hafficher tous les lecteurs disponibles et leurs points de montage respectifs.

Pour démonter un lecteur, vous pouvez utiliser umount.

sudo umount /media/usb0
Sandro
la source
3

C'est simple. Lorsque je veux utiliser un lecteur USB dans un terminal, je fais ceci:

Créez un dossier /mediaavec:

mkdir /media/mountDrive 

Ce dossier sera utilisé pour le point de montage. Utilisez cette commande:

sudo mount /dev/sdd1 /media/mountDrive 

sdd1est la première partition de ma clé USB. Ensuite, vous pouvez accéder au dossier que vous avez déjà monté avec

cd /media/mountDrive

Si vous voulez lister les fichiers dans le lecteur, vous pouvez utiliser la lscommande.

Pour démonter le lecteur, vous pouvez utiliser

sudo umount /dev/sdd1

Notez que dans mon système, le lecteur USB est /dev/sdd1, mais dans votre système, il peut être quelque chose de différent. Pour savoir ce que c'est, utilisez la dfcommande pour voir tous les disques connectés à l'heure actuelle.

David Vale
la source