Câu hỏi Làm thế nào để truy cập một ổ đĩa flash USB từ thiết bị đầu cuối?


Tôi chỉ có quyền truy cập vào dòng lệnh.
Tôi cần phải sao lưu dữ liệu của tôi (trên thư mục người dùng) vào một cây bút (USB DOK).

  • Làm thế nào tôi có thể gắn một ổ đĩa flash bằng tay?
  • Lệnh sao chép là gì?

212
2018-04-29 00:26


gốc




Các câu trả lời:


1. Tìm ổ đĩa được gọi là gì

Bạn sẽ cần phải biết những gì các ổ đĩa được gọi là để gắn kết nó. Để thực hiện điều đó, hãy tắt một trong những điều sau (xếp theo thứ tự ưu tiên của tôi):

lsblk
sudo blkid
sudo fdisk -l

Bạn đang tìm kiếm một phân vùng trông giống như sau: /dev/sdb1. Càng có nhiều đĩa, bạn càng có nhiều chữ cái. Dù sao, tìm nó và nhớ những gì nó được gọi là.

2. Tạo điểm lắp (tùy chọn)

Điều này cần phải được gắn vào hệ thống tập tin một vài nơi. Bạn thường có thể sử dụng / mnt / nếu bạn đang lười biếng và không có gì khác được gắn ở đó nhưng nếu không bạn sẽ muốn tạo một thư mục mới:

sudo  mkdir /media/usb

3. Gắn kết!

sudo mount /dev/sdb1 /media/usb

Khi bạn hoàn tất, chỉ cần tắt:

sudo umount /media/usb

Câu trả lời này gần 6 tuổi và trong khi cốt lõi của nó vẫn hoạt động, những thứ như fdisk -l không phải là lựa chọn thân thiện với người dùng nhất. Ngoài ra còn có các cơ chế mới trong ngăn xếp cao hơn cho các thiết bị gắn kết theo một cách sane và tiêu chuẩn mà có thể không phải lúc nào cũng có sẵn.

Vì vậy, tôi đã thêm một số đánh bóng từ các câu trả lời khác. Trong khi bạn đang đọc chú thích này và bạn đang làm điều này trên một hệ thống máy tính để bàn, chắc chắn có các đối số cho sử dụng udisksctl, theo câu trả lời của wecac. Điều này gắn kết theo cùng một cách mà máy tính để bàn thực hiện —tạo riêng của bạn /media/$USER/device thư mục - nhưng tôi nghĩ rằng vẫn còn có các đối số cho một điểm gắn kết tĩnh, đặc biệt là khi bạn không muốn đường dẫn thay đổi.

Udisks cũng dựa trên D-Bus, vì vậy có thể không có sẵn ở khắp mọi nơi.


298
2018-04-29 00:43



những bất lợi chính của phương pháp này là nó gắn kết thiết bị như là người chủ. nếu thiết bị được định dạng FAT thì người dùng sẽ không thể ghi vào thiết bị đó. Điểm kết nối / media / $ USER / thiết bị cũng sẽ luôn giống nhau - eMBee


cài đặt, dựng lên pmount. Gắn ổ đĩa vào / media /

pmount /dev/sdb1
pumount /dev/sdb1

Không cần sudo. Thay thế "sdb1" bằng đường dẫn thiết bị cụ thể của bạn. Để biết thêm thông tin, xem manpage:

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



Điều này làm việc khi mount nhấn mạnh vào việc gắn ổ đĩa của tôi chỉ đọc. - Jonathan Landrum


Ngoài việc sử dụng tiêu chuẩn mount lệnh (yêu cầu root) bạn có thể gắn ổ đĩa bằng udisks và dbus với người dùng chuẩn của bạn.

Để làm điều này, nó rất hữu ích (nhưng không bắt buộc) để biết một số điều về ổ đĩa đầu tiên:

  1. Thiết bị là gì (tức là /dev/sdb1)
  2. những gì hệ thống tập tin nó sử dụng.

Biết được những điều này bạn có thể sử dụng một lệnh đơn giản để gắn kết một ổ đĩa từ dòng lệnh.

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

cuộc gọi này sẽ lặp lại đường dẫn mà nó được gắn kết nếu gắn kết thành công.

Để ngắt kết nối các ổ đĩa được gắn theo cách này, bạn có thể chạy:

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

N.B. các <device> đơn giản là sự kết thúc của con đường đến nó. Vì vậy, ví dụ nếu những gì bạn muốn gắn kết là tại /dev/sdb2 sau đó bạn sẽ đặt sdb2 thay cho <device>.


Nếu bạn không biết thiết bị đó là gì hoặc hệ thống tập tin nào nó sử dụng không sợ. Bạn có thể dễ dàng in ra tất cả thông tin đó bằng lệnh nhỏ này:

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

Điều này sẽ in ra một cái gì đó như thế này:

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

Những người có IdUsage = 'filesystem' có thể được gắn kết bằng cách sử dụng lệnh trên.

Điều này có nghĩa rằng, ví dụ, nếu tôi muốn gắn thiết bị USB DRIVE của tôi, tôi sẽ chạy lệnh

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

Các lệnh này đều hoạt động bằng cách sử dụng dbus hệ thống nhắn tin, giống như cách Nautilus và các trình quản lý tệp khác tự động gắn kết mọi thứ. Trong các lệnh này, chúng tôi đang gửi các đối tượng khác nhau (tức là /org/freedesktop/... thông báo yêu cầu họ gắn kết và ngắt kết nối một số thiết bị nhất định. Họ có thể hoặc có thể không làm điều này tùy thuộc vào một trong những điều khoản đã được đưa ra trong PolicyKit.

Sử dụng các lệnh tương tự, người ta có thể kiểm soát hầu hết mọi khía cạnh của những trải nghiệm đó trong Ubuntu và mô phỏng hầu hết các chương trình và chức năng của hệ thống (tức là tắt máy, thay đổi âm lượng, v.v.).


11
2017-08-29 15:42



Cách 2015 là gdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/drives --recurse --only-properties - Nick Alexander


Sử dụng udisksctl từ gói =udisks2 (trong cả Ubuntu và Debian). Thủ tục là:

  1. Tìm ID của thiết bị khối bạn muốn gắn kết, sử dụng 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
    

    Từ kích thước của nó, /dev/sdc1 dường như là ổ USB mà tôi muốn gắn kết.

  2. Sử dụng udisksctl để gắn thiết bị. Lưu ý rằng -b == --block-device (để giảm đánh máy) nhưng tôi thích các tùy chọn dài hơn cho tài liệu:

    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.
    

Địa chỉ của Hans Deragon bình luận dưới đây: bạn cũng có thể nói udisksctl làm --no-user-interaction. Nó không cố gắng xác thực người dùng, thường là "chỉ hoạt động":

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





Thật đơn giản. Khi tôi muốn sử dụng một ổ đĩa USB trong thiết bị đầu cuối tôi làm điều này:

Tạo thư mục trong /media với:

mkdir /media/mountDrive 

Thư mục này sẽ được sử dụng cho điểm gắn kết. Sử dụng lệnh này:

sudo mount /dev/sdd1 /media/mountDrive 

sdd1 là phân vùng đầu tiên của USB của tôi. Sau đó, bạn có thể điều hướng đến thư mục bạn đã gắn kết với

cd /media/mountDrive

Nếu bạn muốn liệt kê các tập tin trong ổ đĩa, bạn có thể sử dụng ls chỉ huy.

Để ngắt kết nối ổ đĩa, bạn có thể sử dụng

sudo umount /dev/sdd1

Lưu ý rằng trong hệ thống của tôi, ổ USB là /dev/sdd1nhưng trong hệ thống của bạn, nó có thể khác. Để tìm hiểu xem nó sử dụng cái gì df lệnh để xem tất cả các ổ đĩa được kết nối tại thời điểm hiện tại.


2
2017-08-29 14:08





Bạn cũng có thể tự động kết nối các thiết bị USB trên Ubuntu Server với sự trợ giúp của USBmount.

Đảm bảo rằng bạn chạy apt-get update / upgrade trước khi bắt đầu cài đặt:

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

Bây giờ cài đặt USBmount từ các kho lưu trữ:

sudo apt-get install usbmount

USBmount gắn tất cả các ổ USB vào /media/usb* (usb0, usb1, usb2 ...)

Bây giờ cắm một ổ USB và chờ cho nó được phát hiện và gắn kết. Miễn là hệ điều hành máy chủ hỗ trợ Hệ thống tệp cần được gắn kết.

Để xác minh xem ổ USB đã được lắp đúng chưa, bạn có thể sử dụng df -h để xem tất cả các ổ đĩa có sẵn và các điểm gắn kết tương ứng của chúng

Để bỏ gắn kết một ổ đĩa, bạn có thể sử dụng umount.

sudo umount /media/usb0

2
2018-05-14 16:35