Terminalden bir usb flash sürücüye nasıl erişilir?


250

Sadece komut satırına erişimim var.
Verilerimi (kullanıcı klasöründeki) bir kaleme (USB DOK) yedeklemem gerekiyor.

  • Bir flash sürücüyü elle nasıl monte edebilirim?
  • Copy komutu ne olmalı?

Yanıtlar:


348

1. Sürücünün ne olduğunu bulun

Sürücüyü takmak için ne dendiğini bilmeniz gerekir. Bu yangını yapmak için aşağıdakilerden birini (tercihim sırasına göre sıralanmış):

lsblk
sudo blkid
sudo fdisk -l

Sen gibi görünmelidir bir bölümü arıyoruz: /dev/sdb1. Ne kadar fazla disk varsa, olması muhtemel olan harf o kadar yüksek olur. Neyse, onu bul ve ne dediğini hatırla.

2. Bir bağlama noktası oluşturun (isteğe bağlı)

Bunun dosya sistemine bir yere monte edilmesi gerekiyor . Genellikle / mnt / kullanabilirsiniz, eğer tembelseniz ve orada başka bir şey monte edilmediyse de, aksi takdirde yeni bir dizin oluşturmak isteyeceksiniz:

sudo  mkdir /media/usb

3. Dağı!

sudo mount /dev/sdb1 /media/usb

İşiniz bittiğinde, sadece ateş edin:

sudo umount /media/usb

Bu cevap neredeyse 6 yaşında ve çekirdeği hala çalışıyor fdisk -lolsa da, en kullanıcı dostu seçenekler gibi şeyler değil. Ayrıca, her zaman kullanılamayacak şekilde akıllı ve standart bir şekilde cihazları monte etmek için daha yüksek istiflerde yeni mekanizmalar da vardır.

Bu yüzden diğer cevaplardan bazı cilalar ekledim. Bu dipnot okuyorsanız ve bir masaüstü sistemde bunu yaparken, kesinlikle için argümanlar vardır kullanarak udisksctlwecac en Yanıt başına, . Bu, masaüstünün yaptığı gibi bağlanır - kendi /media/$USER/devicedizininizi oluşturur - ama özellikle de yolun değişmesini istemediğinizde, statik bir bağlanma noktası için hala argümanlar olduğunu düşünüyorum.

Udisks ayrıca D-Bus'a da dayanır, bu nedenle her yerde bulunmayabilir.


Bu yöntemin temel dezavantajı, aygıtı kök olarak monte etmesidir. Eğer cihaz FAT formatlı ise kullanıcı cihaza yazamaz. / media / $ USER / cihaz bağlantı noktası da her zaman aynı olacaktır
eMBee

45

Yükleyin pmount. / Media / içindeki diskleri takar

pmount /dev/sdb1
pumount /dev/sdb1

Sudo gerekmez. "Sdb1" yi kendi cihaz yolunuzla değiştirin. Daha fazla bilgi için broşür sayfasına bakınız:

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.

Bu mount, salt okunur sürücümü monte etmekte ısrar etti.
Jonathan Landrum

12

Standart mountkomutu kullanmanın yanı sıra (root gerektirir), sürücüleri kullanarak udisksve dbusstandart kullanıcınızla bağlayabilirsiniz .

Bunu yapmak için önce sürücü hakkında birkaç şey bilmek faydalıdır (ancak gerekli değildir):

  1. Hangi cihaz (yani /dev/sdb1)
  2. hangi dosya sistemini kullanıyor.

Bunları bilmek, bir sürücüyü komut satırından monte etmek için basit bir komut kullanabilirsiniz.

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

bu çağrı, montaj başarılı olursa, monte edildiği yolu yankılanmalıdır.

Bu şekilde monte edilen sürücüleri sökmek için aşağıdakileri yapabilirsiniz:

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

NB <device>, sadece onun yolunun sonudur. Mesela monte etmek istediğin şey /dev/sdb2o zaman ise sdb2, yerine koyardın <device>.


Hangi cihazın olduğunu veya hangi dosya sistemini kullandığını bilmiyorsanız korkmayın. Tüm bu bilgileri bu küçük komutla kolayca yazdırabilirsiniz:

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

Bu şöyle bir şey basar:

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'Yukarıdaki komutu kullanarak monte edilmiş olanlar olabilir.

Bu, örneğin, 'USB SÜRÜCÜ' cihazını monte etmek istesem komutu çalıştıracağım anlamına gelir.

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

Bu komutların tümü dbusmesajlaşma sistemini kullanarak çalışır , aynı Nautilusve diğer dosya yöneticileri işleri otomatik olarak bağlar. Bu komutlarda çeşitli nesneler gönderiyoruz (yani, /org/freedesktop/...belirli aygıtları takma ve sökmelerini isteyen mesajlar. Birinde verilen izinlere bağlı olarak bunu yapabilir veya olmayabilir) PolicyKit.

Benzer komutları kullanarak, Ubuntu'da yaşananların hemen hemen her yönünü kontrol edebilir ve çoğu sistem program ve fonksiyonunu simüle edebilirsiniz (yani kapatma, ses seviyesi değişimi vb.).


1
2015 yoludurgdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/drives --recurse --only-properties
Nick Alexander,

12

udisksctlPaketinden kullanın = udisks2(hem Ubuntu'da hem de Debian'da). Prosedür:

  1. Kullanmak istediğiniz blok aygıtın kimliğini bulun 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
    

    Boyutundan, /dev/sdc1monte etmek istediğim USB sürücüsü gibi görünüyor.

  2. udisksctlCihazı monte etmek için kullanın . Not -b== --block-device(yazmayı azaltmak için) ancak dokümantasyon için uzun seçenekleri tercih ediyorum:

    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.
    

Hans Deragon en Ele yorumunu aşağıda : Ayrıca söyleyebilir udisksctlyapmak --no-user-interaction. Genellikle "sadece çalışan" olan kullanıcının kimliğini doğrulamaya çalışmaz:

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.

Bunun için ne --object-pathistiyor?
CMCDragonkai

5

Ayrıca USB aygıtlarını USBmount yardımı ile Ubuntu Sunucusu'na otomatik olarak da monte edebilirsiniz.

Kuruluma başlamadan önce apt-get update / upgrade komutunu çalıştırdığınızdan emin olun:

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

Şimdi USBmount'u depolardan yükleyin:

sudo apt-get install usbmount

USBmount tüm USB sürücülerini monte eder /media/usb*(usb0, usb1, usb2 ...)

Şimdi bir USB sürücü takın ve algılanıp takılmasını bekleyin. İşletim sistemi işletim sistemi Dosya Sistemini desteklediği sürece monte edilmelidir.

USB sürücüsünün doğru takılıp takılmadığını doğrulamak df -hiçin mevcut tüm sürücüleri ve ilgili bağlama noktalarını görüntülemek için kullanabilirsiniz .

Bir sürücüyü sökmek için umount kullanabilirsiniz.

sudo umount /media/usb0

3

Bu basit. Terminalde bir usb sürücü kullanmak istediğimde şunu yapıyorum:

İçinde bir klasör oluşturun /media:

mkdir /media/mountDrive 

Bu klasör bağlama noktası için kullanılacak. Bu komutu kullanın:

sudo mount /dev/sdd1 /media/mountDrive 

sdd1USB’nin ilk bölümü. Ardından, önceden bağlanmış olduğunuz klasöre gidebilirsiniz.

cd /media/mountDrive

Sürücüdeki dosyaları listelemek istiyorsanız bu lskomutu kullanabilirsiniz .

Sürücünün bağlantısını kesmek için kullanabilirsiniz.

sudo umount /dev/sdd1

Benim sistemimde usb sürücünün olduğuna dikkat edin /dev/sdd1, ancak sisteminizde farklı bir şey olabilir. Bunun ne olduğunu bulmak dfiçin şu anda bağlı olan tüm diskleri görmek için bu komutu kullanın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.