Πώς να αποκτήσετε πρόσβαση σε μια μονάδα flash USB από το τερματικό;

Έχω πρόσβαση μόνο στη γραμμή εντολών.<br&gt, Πρέπει να δημιουργήσω αντίγραφο ασφαλείας των δεδομένων μου (στο φάκελο χρήστη) σε ένα στυλό (USB DOK).

  • Πώς μπορώ να προσαρτήσω χειροκίνητα μια μονάδα flash;
  • Ποια πρέπει να είναι η εντολή αντιγραφής;
Λύση

1. Βρείτε πώς ονομάζεται η μονάδα δίσκου

Θα πρέπει να ξέρετε πώς ονομάζεται η μονάδα δίσκου για να την προσαρτήσετε. Για να το κάνετε αυτό πυροδοτήστε ένα από τα παρακάτω (με σειρά προτίμησης):

lsblk
sudo blkid
sudo fdisk -l

Ψάχνετε για ένα διαμέρισμα που θα πρέπει να μοιάζει κάπως έτσι: /dev/sdb1. Όσο περισσότερους δίσκους έχετε, τόσο υψηλότερο είναι το γράμμα που είναι πιθανό να είναι αυτό. Εν πάση περιπτώσει, βρείτε το και θυμηθείτε πώς λέγεται.

2. Δημιουργήστε ένα σημείο προσάρτησης (προαιρετικά)

Αυτό πρέπει να προσαρτηθεί στο σύστημα αρχείων κάπου. Συνήθως μπορείτε να χρησιμοποιήσετε το /mnt/ αν είστε τεμπέλης και τίποτα άλλο δεν είναι προσαρτημένο εκεί, αλλά διαφορετικά θα πρέπει να δημιουργήσετε έναν νέο κατάλογο:

sudo  mkdir /media/usb

3. Mount!

sudo mount /dev/sdb1 /media/usb

Όταν τελειώσετε, απλά πυροβολήστε:

sudo umount /media/usb

Αυτή η απάντηση είναι σχεδόν 6 ετών και ενώ ο πυρήνας της εξακολουθεί να λειτουργεί, πράγματα όπως το fdisk -l δεν είναι οι πιο φιλικές προς το χρήστη επιλογές. Υπάρχουν επίσης νέοι μηχανισμοί σε υψηλότερες στοίβες για την τοποθέτηση συσκευών με λογικό και τυπικό τρόπο, οι οποίοι μπορεί να μην είναι πάντα διαθέσιμοι.

Έτσι, πρόσθεσα μερικές βελτιώσεις από τις άλλες απαντήσεις. Όσο διαβάζετε αυτή την υποσημείωση και το κάνετε αυτό σε ένα desktop σύστημα, σίγουρα υπάρχουν επιχειρήματα για τη χρήση του udisksctl, σύμφωνα με την απάντηση του wecac's. Αυτό προσαρτάται με τον ίδιο τρόπο που το κάνει και το desktop -δημιουργώντας το δικό σας κατάλογο /media/$USER/device- αλλά νομίζω ότι υπάρχουν ακόμα επιχειρήματα για ένα στατικό σημείο προσάρτησης, ειδικά όταν δεν θέλετε να αλλάζει η διαδρομή.

Το Udisks βασίζεται επίσης στο D-Bus, οπότε μπορεί να μην είναι διαθέσιμο παντού.

Σχόλια (1)

Εκτός από τη χρήση της τυπικής εντολής mount (η οποία απαιτεί root) μπορείτε να προσαρτήσετε δίσκους χρησιμοποιώντας τις εντολές udisks και dbus με τον τυπικό σας χρήστη.

Για να το κάνετε αυτό είναι χρήσιμο (αλλά όχι απαραίτητο) να γνωρίζετε πρώτα μερικά πράγματα για τη μονάδα δίσκου:

  1. Τι συσκευή είναι (π.χ. /dev/sdb1)
  2. τι σύστημα αρχείων χρησιμοποιεί.

Γνωρίζοντας αυτά μπορείτε να χρησιμοποιήσετε μια απλή εντολή για να προσαρτήσετε μια μονάδα δίσκου από τη γραμμή εντολών.

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

αυτή η κλήση θα πρέπει να εκπέμπει τη διαδρομή στην οποία έχει προσαρτηθεί, αν η προσάρτηση πετύχει.

Για να αποσυνδέσετε τους δίσκους που έχουν προσαρτηθεί με αυτόν τον τρόπο μπορείτε να εκτελέσετε:

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

Σημειώνεται ότι το είναι απλά το τέλος της διαδρομής προς αυτό. Έτσι, για παράδειγμα, αν αυτό που θέλετε να προσαρτήσετε βρίσκεται στο `/dev/sdb2` τότε θα βάλετε το `sdb2` στη θέση του.


Αν δεν ξέρετε ποια συσκευή είναι ή ποιο σύστημα αρχείων χρησιμοποιεί μην φοβάστε. Μπορείτε εύκολα να εκτυπώσετε όλες αυτές τις πληροφορίες με αυτή τη μικρή εντολή:

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.

Χρησιμοποιώντας παρόμοιες εντολές μπορεί κανείς να ελέγξει σχεδόν κάθε πτυχή της εμπειρίας του στο Ubuntu και να προσομοιώσει τα περισσότερα προγράμματα και λειτουργίες του συστήματος (π.χ. τερματισμός λειτουργίας, αλλαγή έντασης ήχου κ.λπ.).

Σχόλια (1)

Αυτό είναι απλό. Όταν θέλω να χρησιμοποιήσω μια μονάδα usb στο τερματικό κάνω αυτό:

Δημιουργώ έναν φάκελο στο /media με:

mkdir /media/mountDrive 

Αυτός ο φάκελος θα χρησιμοποιηθεί για το σημείο προσάρτησης. Χρησιμοποιήστε αυτή την εντολή:

sudo mount /dev/sdd1 /media/mountDrive 

sdd1 είναι η πρώτη κατάτμηση του USB μου. Στη συνέχεια, μπορείτε να πλοηγηθείτε στο φάκελο που έχετε ήδη προσαρτήσει με

cd /media/mountDrive

Αν θέλετε να εμφανίσετε τα αρχεία στο δίσκο μπορείτε να χρησιμοποιήσετε την εντολή ls.

Για να αποσυνδέσετε τη μονάδα δίσκου μπορείτε να χρησιμοποιήσετε την εντολή

sudo umount /dev/sdd1

Σημειώστε ότι στο δικό μου σύστημα η μονάδα usb είναι /dev/sdd1, αλλά στο δικό σας σύστημα μπορεί να είναι κάτι διαφορετικό. Για να μάθετε τι είναι, χρησιμοποιήστε την εντολή df για να δείτε όλους τους δίσκους που είναι συνδεδεμένοι αυτή τη στιγμή.

Σχόλια (0)