Πώς να κάνω ένα ramdisk να εμφανιστεί στον file manager σαν device;

Λοιπόν φτιάχνω ένα ramdisk

sudo mkdir /tmp/ramdisk

Το κάνω mount με μέγεθος 1GB

sudo mount -t tmpfs -o size=1024m myramdisk /tmp/ramdisk

Όλα καλά, μπορώ να πάω είτε από terminal είτε από τον file manager στον συγκεκριμένο φάκελο, να γράψω να διαβάσω κτλ.

Εκεί που σπάω το κεφάλι μου είναι πώς μπορώ να το κάνω να εμφανιστεί στον file manager σαν συσκευή δηλαδή εδώ που δείχνει το βέλος:

Ξέρω ότι αν προσθέσω στο /etc/fstab το entry

myramdisk  /tmp/ramdisk  tmpfs  defaults,size=1G,x-gvfs-show  0  0

Θα μπορεί να φαίνεται μετά το reboot, αλλά δεν με ενδιαφέρει κάτι μόνιμο. Θέλω προσωρινά να το κάνω να φαίνεται σαν device.

Όλοι οι οδηγοί που βρίσκω online είναι σαν copy/paste ο ένας του άλλου. Όλοι αναφέρουν την παραπάνω εισαγωγή στο fstab αλλά πουθενά δεν βρίσκω αυτό που ζητάω.

Όταν βάζω ένα στικάκι εμφανίζεται κανονικά στον file manager και φεύγει όταν το αποσυνδέω. Μπορώ να κάνω το ίδιο και με ένα ramdisk;

Ευχαριστώ.

Θέλεις το option x-gvfs-show

sudo mount -t tmpfs -o size=1024m,x-gvfs-show myramdisk /tmp/ramdisk

Για ένα παράδειγμα δες

Μια άλλη (και ποιο φιλική στο χρήστη) προσέγγιση είναι να έχεις εγραφή στο /etc/fstab με τις παραμέτρους noauto,user ώστε η εντολή να γίνει απλά (και χωρίς sudo)

mount /tmp/ramdisk
1 Like

Θα έπρεπε να δουλέψει η προσθήκη x-gvfs-show, αλλά δυστυχώς όχι:

Δεν θέλω να κάνω κάποια τροποποίηση στο fstab. Γίνεται;

Δοκίμασε

  • Να κάνεις καταχώρηση στο /etc/fstab
  • Να προσδιορίσεις πλήρως την εικόνα όπως δείχνει το άρθρο

Και δες κατ’ αρχήν αν δουλέψει.

Αν όχι δεν μπορεί να γίνει, και ο λόγος για αυτό είναι πως το gvfs το υποσύστημα που υπάρχει πίσω από nemo,nautilus,caja βλέπει τον τύπο του συστήματος αρχείων και στέλνει στο πρόγραμμα που το χρησιμοποιεί μόνο όσα είναι δίσκοι. Θα πρέπει να κοιτάξεις αν αυτό έχει κάποιο τρόπο, και αν όχι να βρεις την ομάδα του gnome και να το ζητήσεις ευγενικά. Πιθανά να να μπορείς να κάνεις καμία χακία πειράζοντας το udisks2 αλλά δεν θα ακολουθούσα αυτό το μονοπάτι με την θέληση μου.

Η λύση βρέθηκε μετά από αρκετό ψάξιμο και πειραματισμούς με λίγο διαφορετικό τρόπο. Χρειάζεται block devices για να τα δει ο file manager.

  1. Φτιάχνουμε έναν φάκελο, όπου θέλουμε. Εγώ τον έκανα στο desktop μου

mkdir /home/george/Desktop/ramdisks

  1. Κάνουμε mount τον φάκελο ως tmpfs για να χρησιμοποιηθεί σαν ramdisk

sudo mount -t tmpfs tmpfs /home/george/Desktop/ramdisks/

  1. Φτιάχνουμε ένα αρχείο από μηδενικά και ορίζουμε το μέγεθός του. Στο παράδειγμα που ακολουθεί το ονόμασα ramdisk1 και όρισα block size 1M x 1000 = 1GB.

dd if=/dev/zero of=/home/george/Desktop/ramdisks/ramdisk1 bs=1M count=1000

  1. Διασυνδέουμε το αρχείο με ένα loopback device. Αν δεν είναι ελεύθερο το loop0 δοκιμάστε loop1 κ.ο.κ.

sudo losetup /dev/loop0 /home/george/Desktop/ramdisks/ramdisk1

  1. Φτιάχνουμε file system στο loopback device. Εγώ το έκανα ext4 με label ramdisk1

sudo mkfs.ext4 -L ramdisk1 /dev/loop0

και ιδού!!! :slight_smile:

Επειδή δεν θα σας αφήνει να γράψετε χωρίς δικαιώματα root, αλλάζετε τα δικαιώματα (προσοχή να βάλετε σωστό path ανάλογα με τη διανομή σας)

sudo chmod -R 777 /media/george/ramdisk1/

Επαναλαμβάνετε όσες φορές θέλετε εφόσον επιθυμείτε και άλλα ramdisks

Με το επόμενο restart όλα χάνονται.

Αν θέλετε χωρίς restart να αποδεσμεύσετε τους πόρους

losetup -d /dev/loop0

και

rm /home/george/Desktop/ramdisks/ramdisk1
κ.ο.κ.

Ελπίζω να φανούν χρήσιμα όλα αυτά σε όποιον ενδιαφέρεται για κάτι τέτοιο.

3 Likes

Ενδιαφέρουσα λύση! Μπράβο

1 Like