Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Εξωτερικός δίσκος τύπου Western Digital Passport τοποθετείται σε USB για Linux. Στο σχετικό GUI (Mint Mate) εμφανίζεται το παράθυρο του caja (πρώην nautilus) με το περιεχόμενο του δίσκου. Στη συνέχεια γίνεται δεξί κλικ και safe remove drive, οπότε και εξαφανίζεται. Μπορώ να κάνω ελεύθερα unplug του USB αλλά... δεν είναι αυτό που θέλω.

 

Πώς γίνεται να κάνεις ξανά mount ένα δίσκο που παραμένει plugged στο USB, χωρίς να τον βγάλεις από την USB και να τον ξαναβάλεις;

Δημοσ.

Όχι, δεν καταλάβατε. Θέλω να ξανακάνει rescan το bus και να ξανακάνει mount, μετά από το unmount, χωρίς να βγάλω το βύσμα της usb.

Δημοσ.

μετα την εντολη που σου ειπα, λογικα μπορεις να ξανα πας στον file manager σου και να τον κανεις mount.

Δημοσ.

Οταν θα τον κανιε unmount, ειτε με δεξι κλικ > unmount ειτε με τον τροπο που λες, θα εξαφανιστει απο το side panel του file manager, οποτε στην ουσια αυτο που θελει ειναι να τον κανει να ξαναεμφανιστει εκει χωρις να τον βγαλει και να τον ξαναβαλει στη usb...

Δημοσ.

Για να αφαιρέσεις ένα δίσκο από το bus (δηλαδή αυτό που κάνει το "safe remove") αρκεί να γράψεις κάτι στο αρχείο delete στο sysfs. Δηλαδή αν έχουμε τον sdc, τότε γράφουμε

 

# echo 1 > /sys/block/sdc/device/delete
Αν γράψεις dmesg, σε flashάκι δεν θα δεις κάτι ιδιαίτερο ενώ σε σκληρό θα διαβάσεις μηνύματα της libata και φυσικά θα ακούσεις τον δίσκο να κάνει spindown.

 

Το παραπάνω δεν σε νοιάζει αλλά το ανέφερα εγκυκλοπαιδικά. Ας δούμε τώρα πως μπορείς να τον επαναφέρεις. Αυτό γίνεται με πολλούς τρόπους. Δύο κλασικοί τρόποι είναι είτε κάνοντας trigger την udev μέσω του udevadm ή μέσω του script rescan-scsi-bus. Το κακό με αυτούς τους τρόπους είναι ότι η μεν udev θα κάνει trigger πολλά events και το rescan-scsi-bus θα κάνει reset όλους τους hosts επομένως όλους σου τους δίσκους.

 

Ένας άλλος τρόπος είναι να το κάνεις εσύ χειροκίνητα. Όπως και στην περίπτωση της αφαίρεσης, αρκεί να γράψεις στο κατάλληλο αρχείο. Παλαιότερα υπήρχε το αρχείο /proc/scsi/scsi αλλά εδώ και πάρα πολύ καιρό χρησιμοποιείται το sysfs για αυτές τις δουλειές και συγκεκριμένα το /sys/class/scsi_host.

 

# ls -al /sys/class/scsi_host
lrwxrwxrwx  1 root root 0 Απρ   3 07:40 host1 -> ../...../ata2/host1/scsi_host/host1/
lrwxrwxrwx  1 root root 0 Απρ   3 20:50 host10 -> ../..../usb2/2-3/2-3:1.0/host10/scsi_host/host10/
Μέσα στο /sys/class/scsi_host υπάρχουν symbolic links για κάθε host στο μηχάνημά σου. Οι παραπάνω είναι δύο από τους δικούς μου hosts. Όπως βλέπεις ο ένας είναι κανονικός pci ata και ο άλλος είναι usb. Εφόσον σε ενδιαφέρει usb δίσκος θα είναι εύκολο να βρεις τον σωστό host. Έπειτα γράφεις στο αρχείο scan.

 

# dmesg
# echo "- - -" > /sys/class/scsi_host/host10/scan 
# dmesg
scsi 10:0:0:0: Direct-Access     Kingston DataTraveler 120 1.00 PQ: 0 ANSI: 2
sd 10:0:0:0: Attached scsi generic sg3 type 0
sd 10:0:0:0: [sdc] 15695872 512-byte logical blocks: (8.03 GB/7.48 GiB)
blah blah

στον thunar παντως με δεξι κλικ και unmount δεν εξαφανιζεται...

 

unmount != eject

Συνήθως το "safe remove" εκτός από unmount αφαιρεί κιόλας το δίσκο από το bus με συνέπεια να μην υπάρχει ούτε το device του στο /dev ούτε τίποτα.

  • Like 2
Δημοσ.

Συνήθως το "safe remove" εκτός από unmount αφαιρεί κιόλας το δίσκο από το bus με συνέπεια να μην υπάρχει ούτε το device του στο /dev ούτε τίποτα.

Λογικο, αλλα κανοντας unmount απο το side panel του file manager θα πρεπει απλα να εκτελει umount.

 

Ο thunar τουλαχιστον εχει 2 επιλογες Mount/Unmount και Eject.

Δημοσ.

μετα την εντολη που σου ειπα, λογικα μπορεις να ξανα πας στον file manager σου και να τον κανεις mount.

 

Ναι μεν, μόνο που βγαίνει σφάλμα...

 

Error: Error when getting information for file '/media/user/PASSPORT': Transport endpoint is not connected
Please select another viewer and try again.
 
Μπορεί μεν εγώ να έκανα eject από το δεξί κλικ του γραφικού περιβάλλοντος, αλλά άμα δεν βγάλω το δίσκο και από το βύσμα USB, για να τον ξαναβάλω, δεν τον ξαναματαβλέπει σωστά.
 
Δηλαδή, θέλω περίπου το retriggering από το udev.
 
Δοκιμάζω mount -a, τίποτα...

κάτι παρόμοιο έκανα δίνοντας sg_map που είναι μέσα στα sg3-utils

Τα κατέβασα, το εκτέλεσα, έκανα df:
 
df: ‘/media/nik/PASSPORT’: Transport endpoint is not connected

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...