Montaggio CLI vs. montaggio GUI


21

Su Ubuntu 12.10, quando voglio montare un disco rigido, posso semplicemente fare clic sull'unità non montata e tutto funziona bene (montando su /media/username/partitionlabel).

Fondamentalmente, vorrei fare esattamente questo tramite la riga di comando (per uno script su cui sto lavorando).

Dal momento che non voglio eseguire il montaggio automatico all'avvio, fstab è fuori discussione (giusto?).

Quando utilizzo mount su CLI, devo specificare un mountpoint (che deve avere un mountpoint precedentemente creato; inoltre, devo occuparmi delle autorizzazioni e quant'altro) - quello che non capisco è dove la GUI prende tutto le sue informazioni da? Il mountpoint sembra dipendere dall'etichetta della partizione, ma una tale directory non esiste prima del montaggio. Inoltre, il modo in cui la GUI non sembra preoccuparsi troppo di un utente che non è root.

Esiste un modo "semplice" per montare tramite l'interfaccia della riga di comando, proprio come avviene sulla GUI facendo clic su un'unità non montata?

Risposte:


16

Nautilus e altri file manager che montano unità (ad es. La GUI ) usano il udiskscomando.

Ciò fornisce un montaggio dinamico , in cui viene creato il punto di montaggio per l'unità al volo e quando l'unità viene smontata, il punto di montaggio scompare.

Vedi i man 1 udisksdettagli su come usare questo comando (manualmente o chiamato da uno script / applicazione). Per saperne di più su come udisksfunziona, vedi man 7 udisks.

Per montare un dispositivo con udisks, è necessario specificare un nome dispositivo valido per il dispositivo. Specificare il nome del volume del dispositivo non funzionerà. Quindi, puoi usare in udisksquesto modo:

udisks --mount /dev/sdb1

Quando si utilizza manualmente udisksdalla riga di comando, potrebbe essere preferibile collegare semplicemente un dispositivo, quindi eseguire dmesg | tailpoco dopo (vedere man dmesge man tail) per scoprire il nome del dispositivo del dispositivo appena collegato.

udisksTuttavia, questo potrebbe non essere il modo migliore per scrivere uno script che monta i dispositivi . Non so esattamente come dovresti farlo, e sarebbe difficile sapere dal momento che non ci hai detto esattamente cosa vuoi che faccia questo script e quando vuoi che monti i dispositivi.


Grazie mille - udisksè esattamente quello che stavo cercando! Per qualsiasi motivo, visualizzo "Errore non riuscito: non autorizzato" quando lo eseguo ssh; se non sto spingendo la mia fortuna, i suggerimenti sarebbero apprezzati su come risolverlo. ^^
NicApicella

2
@NicolaApicella Come lo stai eseguendo? Riceverai un messaggio non autorizzato se provi a eseguirlo da una sessione remota (incluso SSH) o da un crontab; per impostazione predefinita, gli utenti non root possono montare volumi solo con udisksaccessi interattivi locali. (Possono comunque eseguire uno script da un login interattivo locale che utilizza udisks, tuttavia.)
Eliah Kagan

Sì, scusa, ho appena notato (e modificato) il mio commento precedente: lo sto effettivamente eseguendo ssh. (E attualmente google una correzione.)
NicApicella

6

Dal momento che non voglio eseguire il montaggio automatico all'avvio, fstab è fuori discussione (giusto?).

No. noautola parola chiave fa saltare il montaggio all'avvio.

Esiste un modo "semplice" per montare tramite l'interfaccia della riga di comando, proprio come avviene sulla GUI facendo clic su un'unità non montata?

Il più semplice sarebbe aggiungerlo a /etc/fstabcon noautoe usare ...

mount /dir

Questo avrà un mount mount per un mountpoint e, se non trovato, per un dispositivo in /etc/fstab. /dirdeve esistere però.

Se viene fornito il dispositivo o l'UUID /etc/fstabnon viene sondato. Così ...

mount /dev/sda1 /media/directory

O usa udisks (Lascerò che Eliah lo gestisca> :-))


mount è generalmente solo super user.

Opzioni di esempio:

  • rw,noauto,user lo monta come read + write ma non all'avvio e puoi farlo come utente.

  • È inoltre possibile aggiungere autorizzazioni per un utente /etc/fstabper i file. Puoi usarlo umaskper questo.

  • umask = 0444: tutti leggono, nessuna scrittura, nessuna esecuzione.

  • umask = 0333: tutti leggono, eseguono.
  • umask = 0338: proprietario, gruppo letto ed eseguito; altri, niente

OK, probabilmente andrò avanti e ci proverò, dato che sembra comunque essere il "modo di farlo". :-) Quindi suppongo che dovrò comunque creare una directory mountpoint (con i diritti corretti). ;-)
NicApicella

@Rinzwind Un utente non root sarà in grado di montare il dispositivo?
Eliah Kagan,

1
@EliahKagan Sì, se hai impostato le opzioni appropriate in fstab (uid, user, ...).
NicApicella,

@NicolaApicella Spero che questa risposta possa essere ampliata per includere informazioni al riguardo. :)
Eliah Kagan,

@NicApicella gli piace farmi da padrone: =)
Rinzwind

3

In uno dei commenti hai detto:

Per qualsiasi motivo, visualizzo "Errore non riuscito: non autorizzato" quando lo eseguo tramite ssh

Io uso pmountinvece di udisks. Funziona su SSH.

Se ricordo bene, questa è la sintassi / etc che uso con essa - la maggior parte delle mie sono nascoste dietro gli alias a questo punto:

pmount /dev/sdb1 my_usb
ls /media/my_usb/
eject /media/my_usb

2

Uso

udisks --mount /dev/sdb1

(sostituire /dev/sdb1con il dispositivo che si desidera montare)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.