Vraag Hoe toegang krijgen tot een usb-stick van de terminal?


Ik heb alleen toegang tot de opdrachtregel.
Ik moet een back-up maken van mijn gegevens (in de gebruikersmap) naar een pen (USB DOK).

  • Hoe kan ik een flashstation handmatig koppelen?
  • Wat zou de kopieeropdracht moeten zijn?

212
2018-04-29 00:26


oorsprong




antwoorden:


1. Zoek naar de bestemming van de schijf

U moet weten wat de drive wordt aangeroepen om deze te koppelen. Om dat te doen, vuur je een van de volgende dingen af ​​(gerangschikt in volgorde van mijn voorkeur):

lsblk
sudo blkid
sudo fdisk -l

U zoekt een partitie die er ongeveer zo zou moeten uitzien: /dev/sdb1. Hoe meer schijven je hebt, hoe hoger de letter die dit waarschijnlijk is. Hoe dan ook, vind het en onthoud hoe het heet.

2. Maak een aankoppelpunt (optioneel)

Dit moet in het bestandssysteem worden gemount ergens. Je kunt meestal / mnt / gebruiken als je lui bent en er niets anders is gemount, maar anders wil je een nieuwe map maken:

sudo  mkdir /media/usb

3. Mount!

sudo mount /dev/sdb1 /media/usb

Als je klaar bent, gewoon afvuren:

sudo umount /media/usb

Dit antwoord is bijna 6 jaar oud en terwijl de kern ervan nog steeds werkt, dingen zoals fdisk -l zijn niet de meest gebruiksvriendelijke opties. Er zijn ook nieuwe mechanismen in hogere stapels voor het op een normale en standaard manier monteren van apparaten die mogelijk niet altijd beschikbaar zijn.

Dus ik heb wat Pools toegevoegd aan de andere antwoorden. Terwijl u deze voetnoot leest en dit doet op een desktopsysteem, zijn er zeker argumenten voor gebruik makend van udisksctl, per wecac's antwoord. Dit mounten op dezelfde manier als de desktop doet - je eigen maken /media/$USER/device directory - maar ik denk dat er nog steeds argumenten zijn voor een statisch mountpoint, vooral als je niet wilt dat het pad verandert.

Udisks vertrouwt ook op D-Bus, dus misschien niet overal beschikbaar.


297
2018-04-29 00:43



Het grootste nadeel van deze methode is dat het apparaat als root wordt gemount. als het apparaat FAT-geformatteerd is, kan de gebruiker er niet naartoe schrijven. het / media / $ USER / device mountpoint zal ook altijd hetzelfde zijn - eMBee


Installeren pmount. Mount schijven in / media /

pmount /dev/sdb1
pumount /dev/sdb1

Geen sudo nodig. Vervang "sdb1" door uw specifieke apparaatpad. Zie de manpage voor meer informatie:

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
2017-11-06 01:39



Dit werkte wanneer mount stond erop mijn drive alleen-lezen te monteren. - Jonathan Landrum


Naast het gebruik van de standaard mount commando (dat root vereist) kunt u drives koppelen met behulp van udisks en dbus met uw standaardgebruiker.

Om dit te doen is het nuttig (maar niet verplicht) om eerst een paar dingen over de schijf te weten:

  1. Welk apparaat het is (d.w.z. /dev/sdb1)
  2. welk bestandssysteem het gebruikt.

Als u deze weet, kunt u een eenvoudige opdracht gebruiken om een ​​drive vanaf de opdrachtregel te mounten.

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

deze aanroep moet het pad dat is aangekoppeld weergeven als de mount slaagt.

Om op deze manier aangekoppelde stations te ontkoppelen, kunt u het volgende uitvoeren:

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

N.B. de <device> is gewoon het einde van het pad ernaar toe. Dus bijvoorbeeld als wat je wilt aankoppelen zich bevindt /dev/sdb2 dan zou je zetten sdb2 in plaats van <device>.


Als u niet weet welk apparaat het is of welk bestandssysteem het gebruikt, hoeft u niet bang te zijn. Je kunt al die informatie gemakkelijk afdrukken met deze kleine opdracht:

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

Dit zal iets als dit afdrukken:

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

Degenen die hebben IdUsage = 'filesystem' kan worden gemonteerd met behulp van de bovenstaande opdracht.

Dit betekent dat als ik bijvoorbeeld het apparaat 'USB DRIVE' zou willen aankoppelen, ik het commando zou uitvoeren

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

Deze commando's werken allemaal met de dbus berichtensysteem, op dezelfde manier Nautilus en andere bestandsbeheerders starten automatisch dingen op. In deze opdrachten sturen we verschillende objecten (d.w.z. /org/freedesktop/... berichten waarin ze worden gevraagd bepaalde apparaten te koppelen en te ontkoppelen. Ze kunnen dit wel of niet doen, afhankelijk van de toestemmingen die men heeft gekregen PolicyKit.

Met soortgelijke commando's kan men bijna elk aspect van iemands ervaring in Ubuntu besturen en de meeste systeemprogramma's en functies simuleren (dat wil zeggen afsluiten, volumeverandering, etc.).


11
2017-08-29 15:42



De manier van 2015 is gdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/drives --recurse --only-properties - Nick Alexander


Gebruik udisksctl van pakket =udisks2 (in zowel Ubuntu en Debian). Procedure is:

  1. Zoek de ID van het blokapparaat dat u wilt koppelen met behulp van 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
    

    Van zijn grootte, /dev/sdc1 lijkt de USB-drive te zijn die ik wil koppelen.

  2. Gebruik udisksctl om het apparaat te koppelen. Let daar op -b == --block-device (om typen te verminderen) maar ik geef de voorkeur aan lange opties voor documentatie:

    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.
    

Het adres van Hans Deragon's laat je opmerking beneden achter: je kunt het ook vertellen udisksctl Te doen --no-user-interaction. Het probeert niet om de gebruiker te authenticeren, die meestal "gewoon werkt":

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.

10
2017-12-28 15:34





Dat is eenvoudig. Wanneer ik een USB-drive in een terminal wil gebruiken, doe ik dit:

Maak een map in /media met:

mkdir /media/mountDrive 

Deze map wordt gebruikt voor het koppelpunt. Gebruik deze opdracht:

sudo mount /dev/sdd1 /media/mountDrive 

sdd1 is de eerste partitie van mijn USB. Vervolgens kunt u navigeren naar de map waarmee u al bent aangekoppeld

cd /media/mountDrive

Als u de bestanden op de schijf wilt weergeven, gebruikt u de ls opdracht.

Om de schijf te ontkoppelen die u kunt gebruiken

sudo umount /dev/sdd1

Merk op dat in mijn systeem de USB-schijf is /dev/sdd1, maar in jouw systeem kan het iets anders zijn. Om te weten te komen wat het is, gebruik de df opdracht om alle schijven op dit moment verbonden te zien.


2
2017-08-29 14:08





U kunt ook USB-apparaten automatisch op Ubuntu Server koppelen met behulp van USBmount.

Zorg ervoor dat u apt-get update / upgrade uitvoert voordat u de installatie start:

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

Installeer nu USBmount van de repositories:

sudo apt-get install usbmount

USBmount koppelt alle USB-stations aan /media/usb* (usb0, usb1, usb2 ...)

Sluit nu een USB-drive aan en wacht tot deze wordt gedetecteerd en gemonteerd. Zolang het host-besturingssysteem het bestandssysteem ondersteunt, moet het worden gemount.

Om te controleren of het USB-station correct is gemount, kunt u gebruiken df -h om alle beschikbare schijven en hun respectievelijke koppelpunten te bekijken

Om een ​​schijf te ontkoppelen, kunt u umount gebruiken.

sudo umount /media/usb0

2
2018-05-14 16:35