ฉันมีสิทธิ์เข้าถึงบรรทัดคำสั่งเท่านั้น
ฉันต้องการสำรองข้อมูลของฉัน (ในโฟลเดอร์ผู้ใช้) ไปยังปากกา (USB DOK)
- ฉันจะติดตั้งแฟลชไดรฟ์ด้วยตนเองได้อย่างไร
- สิ่งที่ควรเป็นคำสั่งคัดลอก?
ฉันมีสิทธิ์เข้าถึงบรรทัดคำสั่งเท่านั้น
ฉันต้องการสำรองข้อมูลของฉัน (ในโฟลเดอร์ผู้ใช้) ไปยังปากกา (USB DOK)
คำตอบ:
คุณจะต้องรู้ว่าไดรฟ์นั้นเรียกว่าเมาต์อะไร หากต้องการทำเช่นนั้นให้ปิดหนึ่งในสิ่งต่อไปนี้ (จัดอันดับตามลำดับที่ฉันต้องการ):
lsblk
sudo blkid
sudo fdisk -l
/dev/sdb1
คุณกำลังมองหาพาร์ติชันที่ควรมองสิ่งที่ต้องการ: ดิสก์ยิ่งมีตัวอักษรมากเท่าไหร่ก็ยิ่งมีโอกาสมากเท่านั้น อย่างไรก็ตามค้นหาและจดจำสิ่งที่เรียกว่า
นี้จะต้องติดตั้งลงในระบบแฟ้มที่ไหนสักแห่ง โดยปกติคุณสามารถใช้ / mnt / หากคุณขี้เกียจและไม่มีอะไรติดตั้งอยู่ที่นั่น แต่อย่างอื่นคุณจะต้องสร้างไดเรกทอรีใหม่:
sudo mkdir /media/usb
sudo mount /dev/sdb1 /media/usb
เมื่อคุณทำเสร็จแล้วเพิ่งปิดไฟ:
sudo umount /media/usb
คำตอบนี้มีอายุเกือบ 6 ปีและในขณะที่แกนหลักยังคงใช้งานได้สิ่งต่าง ๆfdisk -l
ไม่ใช่ตัวเลือกที่ใช้งานง่ายที่สุด นอกจากนี้ยังมีกลไกใหม่ในสแต็คที่สูงขึ้นสำหรับการติดตั้งอุปกรณ์ด้วยวิธีที่มีสติและมาตรฐานซึ่งอาจไม่สามารถใช้ได้
ดังนั้นฉันจึงได้เพิ่มเงาบางส่วนจากคำตอบอื่น ๆ ในขณะที่คุณกำลังอ่านเชิงอรรถนี้และคุณกำลังทำเช่นนี้ในระบบเดสก์ทอปมีแน่นอนข้อโต้แย้งสำหรับใช้udisksctl
ต่อคำตอบของ wecac สิ่งนี้เมานต์แบบเดียวกับที่เดสก์ท็อปทำ - สร้าง/media/$USER/device
ไดเรกทอรีของคุณเอง - แต่ฉันคิดว่ายังคงมีข้อโต้แย้งสำหรับจุดเมานท์แบบคงที่โดยเฉพาะเมื่อคุณไม่ต้องการเปลี่ยนเส้นทาง
Udisks ยังอาศัย D-Bus ดังนั้นอาจไม่สามารถใช้ได้ทุกที่
pmount
ติดตั้ง เมาท์ดิสก์ใน / media /
pmount /dev/sdb1
pumount /dev/sdb1
ไม่จำเป็นต้องใช้ sudo แทนที่ "sdb1" ด้วยพา ธ อุปกรณ์เฉพาะของคุณ สำหรับข้อมูลเพิ่มเติมดู 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.
mount
ยืนยันในการติดตั้งไดรฟ์ของฉันเป็นแบบอ่านอย่างเดียว
นอกเหนือจากการใช้mount
คำสั่งมาตรฐาน(ซึ่งต้องใช้รูท) คุณสามารถต่อเชื่อมไดรฟ์โดยใช้udisks
และdbus
กับผู้ใช้มาตรฐานของคุณ
หากต้องการทำสิ่งนี้จะมีประโยชน์ (แต่ไม่จำเป็น) เพื่อทราบบางสิ่งเกี่ยวกับไดรฟ์ก่อน:
/dev/sdb1
)การรู้สิ่งเหล่านี้คุณสามารถใช้คำสั่งง่าย ๆ ในการต่อเชื่อมไดรฟ์จากบรรทัดคำสั่ง
gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/<device> --method org.freedesktop.UDisks.Device.FilesystemMount "<filesystem>" []
การเรียกนี้ควรสะท้อนพา ธ ที่ถูกเมาต์หากการเมาต์สำเร็จ
หากต้องการ unmount ไดรฟ์ที่เมาท์ด้วยวิธีนี้คุณสามารถเรียกใช้:
gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/<device> --method org.freedesktop.UDisks.Device.FilesystemUnmount []
NB the <device>
เป็นเพียงจุดสิ้นสุดของเส้นทางไปยังมัน ดังนั้นสำหรับตัวอย่างเช่นถ้าสิ่งที่คุณต้องการที่จะยึดที่/dev/sdb2
แล้วที่คุณจะใส่ในสถานที่ของsdb2
<device>
หากคุณไม่ทราบว่าเป็นอุปกรณ์ใดหรือใช้ระบบไฟล์แบบใดก็ไม่ต้องกลัว คุณสามารถพิมพ์ข้อมูลทั้งหมดได้อย่างง่ายดายด้วยคำสั่งเล็กน้อยนี้:
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) ).*|\}|.*\{)"
สิ่งนี้จะพิมพ์ออกมาดังนี้:
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'
อาจจะติดตั้งโดยใช้คำสั่งดังกล่าว
ซึ่งหมายความว่าหากฉันต้องการเมานต์อุปกรณ์ 'USB DRIVE' ฉันจะเรียกใช้คำสั่ง
gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/sdb1 --method org.freedesktop.UDisks.Device.FilesystemMount "vfat" []
คำสั่งเหล่านี้ทำงานได้โดยใช้dbus
ระบบการส่งข้อความเช่นเดียวกับที่ตัวNautilus
จัดการไฟล์อื่นติดตั้งอัตโนมัติ ในคำสั่งเหล่านี้เรากำลังส่งวัตถุต่าง ๆ (เช่น/org/freedesktop/...
ข้อความที่ขอให้พวกเขาเมานต์และเลิกเมานท์อุปกรณ์บางอย่างพวกเขาอาจหรืออาจไม่ทำเช่นนี้ขึ้นอยู่กับการอนุญาตที่ได้รับPolicyKit
มา
การใช้คำสั่งที่คล้ายกันสามารถควบคุมได้เกือบทุกแง่มุมของประสบการณ์ในอูบุนตูและจำลองโปรแกรมระบบและฟังก์ชั่นส่วนใหญ่ (เช่นปิดเครื่องเปลี่ยนระดับเสียง ฯลฯ )
gdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/drives --recurse --only-properties
ใช้udisksctl
จาก package = udisks2
(ทั้งใน Ubuntu และ Debian) ขั้นตอนคือ:
ค้นหา ID ของอุปกรณ์บล็อกที่คุณต้องการติดตั้งโดยใช้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
จากขนาดของมัน/dev/sdc1
ดูเหมือนว่าจะเป็นไดรฟ์ USB ที่ฉันต้องการติดตั้ง
ใช้udisksctl
สำหรับเชื่อมต่ออุปกรณ์ โปรดทราบว่า-b
== --block-device
(เพื่อลดการพิมพ์) แต่ฉันชอบตัวเลือกแบบยาวสำหรับเอกสาร:
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.
Addressing ฮันส์ Deragon ของความคิดเห็นด้านล่าง : คุณยังสามารถบอกได้จะทำอย่างไรudisksctl
--no-user-interaction
ไม่ได้พยายามตรวจสอบสิทธิ์ผู้ใช้ซึ่งโดยปกติจะเป็น "ใช้งานได้":
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
ที่จะถามหา?
คุณยังสามารถเชื่อมต่ออุปกรณ์ USB บน Ubuntu Server โดยอัตโนมัติด้วยความช่วยเหลือของ USB Mount
ตรวจสอบให้แน่ใจว่าคุณได้ทำการอัปเดต / อัพเกรด apt-get ก่อนเริ่มการติดตั้ง:
sudo apt-get update && sudo apt-get upgrade
ตอนนี้ติดตั้ง USBmount จากที่เก็บ:
sudo apt-get install usbmount
USB Mount ติดตั้งไดรฟ์ USB ทั้งหมดใน/media/usb*
(usb0, usb1, usb2 ... )
ตอนนี้เสียบไดรฟ์ USB และรอให้ตรวจพบและติดตั้ง ตราบเท่าที่โฮสต์ระบบปฏิบัติการรองรับระบบไฟล์ก็ควรจะเมานท์
ในการตรวจสอบว่าติดตั้งไดรฟ์ USB ถูกต้องคุณสามารถใช้df -h
เพื่อดูไดรฟ์ที่มีอยู่ทั้งหมดและจุดเชื่อมต่อที่เกี่ยวข้อง
หากต้องการยกเลิกการต่อเชื่อมไดรฟ์คุณสามารถใช้ umount
sudo umount /media/usb0
ง่ายมาก เมื่อฉันต้องการใช้ไดรฟ์ usb ใน terminal ฉันทำสิ่งนี้:
สร้างโฟลเดอร์/media
ด้วย:
mkdir /media/mountDrive
โฟลเดอร์นี้จะถูกใช้สำหรับจุดเชื่อมต่อ ใช้คำสั่งนี้:
sudo mount /dev/sdd1 /media/mountDrive
sdd1
เป็นพาร์ติชันแรกของ USB ของฉัน จากนั้นคุณสามารถนำทางไปยังโฟลเดอร์ที่คุณติดตั้งไว้แล้ว
cd /media/mountDrive
หากคุณต้องการแสดงรายการไฟล์ในไดรฟ์คุณสามารถใช้ls
คำสั่ง
ในการเลิกเมานท์ไดรฟ์ที่คุณสามารถใช้ได้
sudo umount /dev/sdd1
โปรดทราบว่าในระบบของฉันไดรฟ์ usb เป็น/dev/sdd1
แต่ในระบบของคุณมันอาจจะเป็นสิ่งที่แตกต่าง เพื่อค้นหาสิ่งที่มันใช้df
คำสั่งเพื่อดูดิสก์ทั้งหมดที่เชื่อมต่อในเวลาปัจจุบัน