web-dev-qa-db-fra.com

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

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?
237
MEM

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 recherchez une partition qui devrait ressembler à ceci: /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é dans le système de fichiers quelque part . 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, bien que son noyau fonctionne toujours, des éléments tels que fdisk -l ne sont pas les options 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 système de bureau, il existe certainement des arguments pour tilisant udisksctl, par réponse de wecac . Cela fonctionne de la même manière que le bureau (en créant votre propre répertoire /media/$USER/device), 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 ne sont donc peut-être pas disponibles partout.

332
Oli

Installez 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.
40
Sepero

Outre l'utilisation de la commande standard mount (qui nécessite root), vous pouvez monter des lecteurs à l'aide de udisks et dbus avec votre utilisateur standard.

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

  1. De quel appareil s'agit-il (c'est-à-dire /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 []

N.B. le <device> est simplement la fin du chemin d'accès. Ainsi, par exemple, si vous voulez monter à /dev/sdb2, vous devez placer sdb2 à la place de <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' peuvent être montés à l'aide de 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 système de messagerie dbus, de la même manière que Nautilus et d’autres gestionnaires de fichiers montent automatiquement des choses. Dans ces commandes, nous envoyons divers objets (par exemple, des messages /org/freedesktop/... 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 dans PolicyKit.

En utilisant des commandes similaires, vous pouvez contrôler presque tous les aspects de votre expérience dans Ubuntu et simuler la plupart des programmes et fonctions du système (c'est-à-dire, l'arrêt, le changement de volume, etc.).

11
Alex L.

Utilisez udisksctl de package = udisks2 (sous Ubuntu et Debian). La procédure est:

  1. Recherchez l'ID du bloc que vous voulez 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, /dev/sdc1 semble être le lecteur USB que je souhaite monter.

  2. Utilisez udisksctl pour monter le périphérique. Notez que -b == --block-device (pour réduire le nombre de saisies), mais je préfère les longues options de 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.
    

S'adressant à Hans Deragon commentaire ci-dessous : vous pouvez également dire à udisksctl de 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.
11
wecac

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 utiliser df -h pour afficher tous les lecteurs disponibles et leurs points de montage respectifs.

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

Sudo umount /media/usb0
3
Sandro

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

Créez un dossier dans /media avec:

mkdir /media/mountDrive 

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

Sudo mount /dev/sdd1 /media/mountDrive 

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

cd /media/mountDrive

Si vous souhaitez répertorier les fichiers dans le lecteur, vous pouvez utiliser la commande ls.

Pour démonter le lecteur, vous pouvez utiliser

Sudo umount /dev/sdd1

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

2
David Vale