Bagaimana cara mengakses usb flash drive dari terminal?

250

Saya hanya memiliki akses ke baris perintah.
Saya perlu mencadangkan data saya (pada folder pengguna) ke pena (USB DOK).

  • Bagaimana saya bisa memasang flash drive secara manual?
  • Apa yang seharusnya menjadi perintah salin?
MEM
sumber

Jawaban:

348

1. Temukan nama drive itu

Anda harus tahu drive apa yang dipanggil untuk memasangnya. Untuk melakukan itu, jalankan salah satu dari yang berikut ini (diurutkan berdasarkan pilihan saya):

lsblk
sudo blkid
sudo fdisk -l

Anda sedang mencari partisi yang harus terlihat seperti: /dev/sdb1. Semakin banyak disk yang Anda miliki, semakin tinggi huruf ini. Pokoknya, temukan dan ingat apa namanya.

2. Buat titik pemasangan (opsional)

Ini perlu di-mount ke sistem file di suatu tempat . Anda biasanya dapat menggunakan / mnt / jika Anda malas dan tidak ada lagi yang dipasang di sana tetapi jika tidak, Anda ingin membuat direktori baru:

sudo  mkdir /media/usb

3. Gunung!

sudo mount /dev/sdb1 /media/usb

Setelah selesai, tembak saja:

sudo umount /media/usb

Jawaban ini hampir 6 tahun dan sementara inti masih berfungsi, hal-hal seperti fdisk -lbukan pilihan yang paling ramah pengguna. Ada juga mekanisme baru di tumpukan yang lebih tinggi untuk memasang perangkat dengan cara yang waras dan standar yang mungkin tidak selalu tersedia.

Jadi saya telah menambahkan beberapa polesan dari jawaban lain. Saat Anda membaca catatan kaki ini dan Anda melakukan ini pada sistem desktop, pasti ada argumen untuk menggunakan udisksctl, per jawaban wecac . Mount ini dengan cara yang sama seperti desktop - membuat /media/$USER/devicedirektori Anda sendiri - tapi saya pikir masih ada argumen untuk mountpoint statis, terutama ketika Anda tidak ingin path berubah.

Udang juga bergantung pada D-Bus, jadi mungkin tidak tersedia di mana-mana.

Oli
sumber
Kerugian utama dari metode ini adalah me-mount perangkat sebagai root. jika perangkat diformat FAT maka pengguna tidak akan dapat menulis untuk itu. mountpoint / media / $ USER / perangkat juga akan selalu sama
eMBee
45

Instal pmount. Pasang disk di / media /

pmount /dev/sdb1
pumount /dev/sdb1

Tidak perlu sudo. Ganti "sdb1" dengan jalur perangkat spesifik Anda. Untuk informasi lebih lanjut lihat halaman manual:

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
sumber
Ini berfungsi ketika mountbersikeras memasang drive saya hanya-baca.
Jonathan Landrum
12

Selain menggunakan mountperintah standar (yang membutuhkan root) Anda dapat memasang drive menggunakan udisksdan dbusdengan pengguna standar Anda.

Untuk melakukan ini, ada baiknya (tetapi tidak diharuskan) untuk mengetahui beberapa hal tentang drive terlebih dahulu:

  1. Perangkat apa itu (yaitu /dev/sdb1)
  2. filesystem apa yang digunakannya.

Mengetahui hal ini, Anda dapat menggunakan perintah sederhana untuk memasang drive dari baris perintah.

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

panggilan ini harus menggemakan jalur tempat ia dipasang jika mount berhasil.

Untuk melepas drive yang dipasang dengan cara ini, Anda dapat menjalankan:

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

NB <device>hanyalah akhir dari jalan menuju itu. Jadi misalnya jika apa yang Anda ingin me-mount adalah pada /dev/sdb2maka Anda akan menempatkan sdb2di tempat <device>.


Jika Anda tidak tahu perangkat apa itu atau sistem file apa yang digunakannya, jangan takut. Anda dapat dengan mudah mencetak semua informasi itu dengan perintah kecil ini:

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

Ini akan mencetak sesuatu seperti ini:

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

Yang sudah IdUsage = 'filesystem'bisa di-mount menggunakan perintah di atas.

Ini berarti bahwa, misalnya, jika saya ingin memasang perangkat 'USB DRIVE' saya akan menjalankan perintah

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

Semua perintah ini berfungsi menggunakan dbussistem pengiriman pesan, cara yang sama Nautilusdan pengelola file lainnya memasang secara otomatis. Dalam perintah ini kami mengirim berbagai objek (mis. /org/freedesktop/...Pesan yang meminta mereka untuk memasang dan melepas perangkat tertentu. Mereka mungkin atau mungkin tidak melakukan ini tergantung pada izin yang telah diberikan PolicyKit.

Dengan menggunakan perintah yang serupa, seseorang dapat mengontrol hampir setiap aspek dari pengalamannya di Ubuntu dan mensimulasikan sebagian besar program dan fungsi sistem (mis. Shutdown, perubahan volume, dll.).

Alex L.
sumber
1
Cara 2015 adalahgdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/drives --recurse --only-properties
Nick Alexander
12

Gunakan udisksctldari package = udisks2(di Ubuntu dan Debian). Prosedurnya adalah:

  1. Temukan ID perangkat blok yang ingin Anda pasang, menggunakan 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
    

    Dari ukurannya, /dev/sdc1sepertinya USB drive yang ingin saya mount.

  2. Gunakan udisksctluntuk memasang perangkat. Perhatikan bahwa -b== --block-device(untuk mengurangi pengetikan) tetapi saya lebih suka opsi panjang untuk dokumentasi:

    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.
    

Mengatasi komentar Hans Deragon di bawah ini : Anda juga dapat meminta udisksctluntuk melakukannya --no-user-interaction. Itu tidak berusaha untuk mengotentikasi pengguna, yang biasanya "hanya berfungsi":

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
sumber
Apa --object-pathyang diminta?
CMCDragonkai
5

Anda juga dapat secara otomatis memasang perangkat USB di Server Ubuntu dengan bantuan USBmount.

Pastikan Anda menjalankan pembaruan / peningkatan apt-get sebelum memulai instalasi:

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

Sekarang instal USBmount dari repositori:

sudo apt-get install usbmount

USBmount memasang semua drive USB di /media/usb*(usb0, usb1, usb2 ...)

Sekarang colokkan drive USB dan tunggu hingga terdeteksi dan dipasang. Selama OS host mendukung Sistem File itu harus dipasang.

Untuk memverifikasi apakah drive USB dipasang dengan benar, Anda dapat menggunakan df -huntuk melihat semua drive yang tersedia dan masing-masing titik pemasangannya

Untuk membatalkan pemasangan drive, Anda dapat menggunakan umount.

sudo umount /media/usb0
Sandro
sumber
3

Sederhana saja. Ketika saya ingin menggunakan usb drive di terminal saya melakukan ini:

Buat folder /mediadengan:

mkdir /media/mountDrive 

Folder ini akan digunakan untuk mount point. Gunakan perintah ini:

sudo mount /dev/sdd1 /media/mountDrive 

sdd1adalah partisi pertama dari USB saya. Kemudian Anda dapat menavigasi ke folder yang sudah Anda mount

cd /media/mountDrive

Jika Anda ingin membuat daftar file dalam drive Anda dapat menggunakan lsperintah.

Untuk melepas drive yang dapat Anda gunakan

sudo umount /dev/sdd1

Perhatikan bahwa di sistem saya drive usb /dev/sdd1, tetapi di sistem Anda itu mungkin sesuatu yang berbeda. Untuk mengetahui apa itu gunakan dfperintah untuk melihat semua disk yang terhubung saat ini.

David Vale
sumber