Tôi chỉ có quyền truy cập vào dòng lệnh.
Tôi cần sao lưu dữ liệu của mình (trên thư mục người dùng) vào bút (USB DOK).
- Làm thế nào tôi có thể gắn ổ đĩa flash bằng tay?
- Nên sao chép lệnh sao chép?
Tôi chỉ có quyền truy cập vào dòng lệnh.
Tôi cần sao lưu dữ liệu của mình (trên thư mục người dùng) vào bút (USB DOK).
Câu trả lời:
Bạn sẽ cần phải biết những gì ổ đĩa được gọi để gắn kết nó. Để thực hiện điều đó, hãy loại bỏ một trong những điều sau đây (xếp theo thứ tự sở thích 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ư : /dev/sdb1
. Càng nhiều đĩa bạn có chữ cái này càng cao. Dù sao, tìm nó và nhớ những gì nó được gọi.
Điều này cần phải được gắn vào hệ thống tập tin ở đâu đó . Bạn thường có thể sử dụng / mnt / nếu bạn lười biếng và không có gì khác được gắn kết ở đó nhưng nếu không, bạn sẽ muốn tạo một thư mục mới:
sudo mkdir /media/usb
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 năm 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 nhất với người dùng. Ngoài ra còn có các cơ chế mới trong các ngăn xếp cao hơn để gắn các thiết bị theo cách chuẩn và lành mạnh mà 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ó những lý lẽ để sử dụng udisksctl
, theo câu trả lời của wecac . Điều này gắn kết giống như cách máy tính để bàn thực hiện /media/$USER/device
thư mục riêng của bạn, nhưng tôi nghĩ vẫn còn đố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 vào D-Bus, vì vậy có thể không có sẵn ở mọi nơi.
Cài đặt 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 trang web:
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.
mount
nhấn mạnh vào việc gắn ổ đĩa của tôi chỉ đọc.
Ngoài việc sử dụng mount
lệnh tiêu chuẩn (yêu cầu root), bạn có thể gắn ổ đĩa bằng cách sử dụng udisks
và dbus
với người dùng chuẩn của mình.
Để làm điều này, thật hữu ích (nhưng không bắt buộc) để biết một số điều về ổ đĩa trước tiên:
/dev/sdb1
)Biết những điều này bạn có thể sử dụng một lệnh đơn giản để gắn 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 việc gắn kết thành công.
Để ngắt kết nối ổ đĩ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 []
NB <device>
chỉ đơn giản là 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à lúc /dev/sdb2
đó bạn sẽ sdb2
thay thế <device>
.
Nếu bạn không biết nó là thiết bị gì hoặc hệ thống tập tin nào nó sử dụng thì đừ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'
thể được gắn kết bằng cách sử dụng lệnh trên.
Điều này có nghĩa là, ví dụ, nếu tôi muốn gắn thiết bị 'USB DRIVE', 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 mà Nautilus
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/...
các tin nhắn yêu cầu chúng gắn kết và ngắt kết nối một số thiết bị nhất định. Chúng có thể hoặc không thể thực hiện việc này tùy thuộc vào quyền mà người ta đã đưa ra 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 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 (ví dụ như tắt máy, thay đổi âm lượng, v.v.).
gdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/drives --recurse --only-properties
Sử dụng udisksctl
từ gói = udisks2
(trong cả Ubuntu và Debian). Thủ tục là:
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 tôi muốn gắn.
Sử dụng udisksctl
để gắn thiết bị. Lưu ý rằng -b
== --block-device
(để giảm việc nhập) 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.
Giải quyết bình luận của Hans Deragon bên dưới : 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.
--object-path
mà nó yêu cầu?
Bạn cũng có thể tự động gắn thiết bị USB trên Ubuntu Server với sự trợ giúp của USBmount.
Đảm bảo bạn chạy apt-get update / nâng cấp 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ừ kho lưu trữ:
sudo apt-get install usbmount
USBmount gắn kết 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, nó sẽ được gắn kết.
Để xác minh xem ổ USB đã được gắn đú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
Để hủy gắn ổ đĩa, bạn có thể sử dụng umount.
sudo umount /media/usb0
Điều đó thật đơn giản. Khi tôi muốn sử dụng ổ USB trong thiết bị đầu cuối, tôi làm điều này:
Tạo một thư mục trong /media
:
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
lệnh.
Để 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/sdd1
, nhưng trong hệ thống của bạn, nó có thể là một cái gì đó khác. Để tìm hiểu những gì nó được sử dụng 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.