Comment monter en ligne de commande comme le Nautilus? [fermé]

sur mon Ubuntu linux box je peux facilement monter des disques USB connectés ou CDROM en cliquant sur les icônes des périphériques que je peux trouver sur le bureau.

par exemple, si je clique sur L'icône D'un lecteur USB, les choses suivantes se produisent:

  • le répertoire/media / LABEL est créé automatiquement (où LABEL est l'étiquette du disque et peut varier d'un disque à l'autre)
  • le système de fichiers sur le périphérique est monté sur/media / LABEL

Ce processus est significativement différent de montage à l'aide de la mount la commande. Notamment:

  • vous n'avez pas besoin d'être root (ou vous n'avez pas besoin de modifier /etc/fstab afin de permettre aux citoyens de l'utilisateur de monter le périphérique)
  • le répertoire/media / LABEL est créé automatiquement
  • le nom du répertoire change selon l'étiquette de volume.

Il y a une commande en ligne de commande qui se comporte comme le font les installations de montage de Gui de Gnome?

30
demandé sur Andrea Francia 2009-01-27 16:51:23

9 réponses

voir le pmount commande pour des informations d'utilisation

9
répondu phihag 2012-09-11 15:15:24

je suppose que ce que vous recherchez est "gfvs-mount" (il a récemment remplacé le "gnome-mount" dont la plupart des gens parlent; à la fois gnome-mount et pmount dépendent de HAL qui est en cours d'élimination).

il n'y a pas de page de manuel alors tapez simplement "gvfs-mount --help" pour les détails, ou lisez ici: comment monter des systèmes de fichiers à partir de la ligne de commande dans Ubuntu 10.04 et 10.10; les bases de l'utilisation est aussi simple qu'il peut obtenir:

"gvfs-mount --list" pour obtenir une liste de montages volumes;

"gvfs-mount [-u]" [de l'onu]mont, par exemple "gvfs-mount smb://serveur/partage" ou "gvfs-mount WINDOWS".

malheureusement, il semble y avoir un bug qui résulte en un message "Error mounting location: volume doesn't implement mount" essayant de monter par nom de volume, mais "gvfs-mount-d /dev/" devrait fonctionner.

sur mon ubuntu 10.04 je peux monter des actions smb comme ça mais pas les partitions windows -- mais il se peut que ce soit moi qui le fasse mal, mon besoin était de monter des actions smb et n'a pas pris la peine de rechercher le problème avec les partitions ntfs.

36
répondu mwx 2011-05-12 11:18:32

sur les distributions modernes HAL n'est plus utilisé, pmount existe toujours mais il est déprécié.... utilisation:

udisks --mount /dev/sdXN
21
répondu noname 2013-01-26 11:22:44

Oui, il est. Il est appelé ivman et gère tous les événements HAL. Je commence lors de l'exécution ion3. J'ai simplement démarrer ivman comme un processus démon, mais a ajouté le programme à mon fichier sudoers:

cat /etc/sudoers
[...]
ivman {hostname}=(root) NOPASSWD: /sbin/init, /usr/sbin/hibernate
[...]

afin qu'il puisse gérer les réglages de puissance.

1
répondu Steen 2009-01-29 19:21:31

Je ne crois pas que Gnome lui-même gère le montage-C'est HAL. Donc si HAL est en cours d'exécution, vous devriez être en mesure d'automatiser. Je suppose que pmount parle à HAL d'une façon ou d'une autre, et ce serait la façon de gérer le démontage. J'espère que ça te fera démarrer, au moins.

0
répondu Paul Fisher 2009-01-27 14:01:56

vous pouvez également utiliser gnome-mount pour le montage / démontage depuis la ligne de commande.

0
répondu bluebrother 2009-01-29 19:26:13

je branche mon périphérique USB, tapez "gnome-volume-manager" et cela semble faire ce dont vous avez besoin.

0
répondu vinc456 2009-01-29 19:50:30

"devkit-disks --mount /dev/sdxx" où xx est la lettre et le numéro de la partition à monter...

0
répondu Samuel Audet 2013-01-03 07:03:50

j'ai un script pour faire ce que vous voulez.

#!/bin/bash
#====================================================================
# udmount.sh - mounts partitons by volume label.
#  usage: udmount.sh <label> [rw|ro|u]
#   rw - mount read-only (default) 
#   rw - mount read-write 
#   u  - unmount
# 
# Mounts on /media/<label>. Tested on Mint 13 and Fedora 19.
# Use and/or modify at your own risk. Your mileage may vary.
# Caveats:
#   * No spaces in volume label. Won't work.
#   * If the mount point (/media/<label>) already exists,
#     (usually from an unclean shutdown), udmount will mount
#     the volume on /media/<label>_  
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You can view the GNU General Public License for this program at
# http://www.gnu.org/licenses/gpl.txt
# Copyright 2013 maxdev137@sbcglobal.net
#====================================================================

BEEP=$'\a'
VLABEL=""     # volume label
MPOINT="/media" # default mount point for gnome-mount/udisks
YN=""           # yes/no string

c_red() { echo -n $(tput setaf 1)$(tput sgr0) ; }
c_grn() { echo -n $(tput setaf 2)$(tput sgr0) ; }
c_yel() { echo -n $(tput setaf 3)$(tput sgr0) ; }
c_blu() { echo -n $(tput setaf 4)$(tput sgr0) ; }
c_pur() { echo -n $(tput setaf 5)$(tput sgr0) ; }
c_aqu() { echo -n $(tput setaf 6)$(tput sgr0) ; }
c_wht() { echo -n $(tput setaf 7)$(tput sgr0) ; }

Y="YEP " ; Y_c=$(c_grn "$Y")
N="NOPE" ; N_c=$(c_red "$N")
SNAME=`echo "" | sed -e 's|.*/\(.*\)$||'`

#--------------------------------------------------
AMV_LABEL=""    # already mounted volume label
MMSG=""         # "is mounted on" msg
AMF=0           # already mounted flag
AMV=""          # already mounted volume (from "mount -l")
AMV_DETAILS=""  # already mounted volume details
AMV_HELPER=""   # "uhelper" subsystem for mount/unmount ("hal" or "udisks")
COPT=""       # command line option
MOPT="ro"       # user input for mount option
UOPT="ro"       # udisk mount options

#--------------------------------------------------
_usage ()      { echo "usage: $SNAME LABEL [rw|ro|u]" ; }
_error()       { echo "!!! Error: . !!!" >&2 ; echo -n "$BEEP"; _usage ; exit 1 ; }
_error_parm()  { _error " Parameter Missing []" ; }
_error_parm2() { _error "Command is wrong (only \"rw, ro, or u\") is alowed, not \"\"" ; }

_unmount () {
  ### unmount ###
  if [ "$COPT" = "u" ] ; then
    MPOINT=`echo "$AMV" | grep "\[$VLABEL\]" |sed -e 's|^.* \(/.*\) type.*$||'`
    #echo "unmount MPOINT = [$MPOINT]"
    if [ -z "$MPOINT" ] ; then
      echo "$N_c - $VLABEL not mounted."
    else
      _MSG=`umount "$MPOINT" 2>&1`
      _STATUS=$?
      if [ "$_STATUS" -eq 0 ] ; then
        echo "$Y_c - \"$MPOINT\" is now unmounted"
      else echo "$N_c - unmount \"$MPOINT\" failed ($_MSG)"
      fi
    fi
  fi
}

#--------------------------------------------------
[ -n "$VLABEL" ]  || _error_parm "$VLABEL" "Volume Label"

### command line option checck
case "$COPT" in
  "ro" ) ;;
  "rw" ) ;;
  "u"  ) ;;
     * ) _error_parm2 "$COPT" ;;
esac

### is VLABEL already mounted?
AMV=$(mount -l | grep "\[$VLABEL\]")
AMF=$?

### VLABEL is mounted somewhere
if  [ $AMF -eq 0 ] ; then
  AMV_LABEL=$(echo "$AMV" | sed 's/^.* \[\(.*\)\]$//')
  AMV_DETAILS=$(echo $AMV | sed 's|^.*on \(.*\) \[.*$|on \"\"|')
  AMV_UHELPER=$(echo $AMV | grep uhelper | sed 's/^.*uhelper=\(.*\)).*$//')
  #echo "AMV = [$AMV]"
  #echo "AMV_LABEL = [$AMV_LABEL]"
  #echo "AMV_DETAILS = [$AMV_DETAILS]"
  #echo "AMV_UHELPER = [$AMV_UHELPER]"

  ### unmount ###
  [ "$COPT" = "u" ] && _unmount && exit $?

  ### mounted on MPOINT (usually /media)
  if [ -d "$MPOINT/$VLABEL" ] ; then
    MOPT="ro" ; YN="$N_c"
    [ -w "$MPOINT/$VLABEL" ] && MOPT="rw"
    [ "$MOPT" = "$COPT" ]     && YN="$Y_c"
  ### mounted somewhere else
  else
    MOPT=$(echo "$AMV_DETAILS" | sed 's/^.*(\(.*\)).*$//')
  fi
  echo "$N_c - $VLABEL is already mounted \"$MOPT\" $AMV_DETAILS"

### $VLABEL is not mounted anywhere, decide on "rw" or "ro"
else
  if [ "$COPT" = "u" ] ; then
    echo "$N_c - \"$VLABEL\" is not mounted"
  else
    MOPT="ro"
    [ "$COPT" = "rw" ] && MOPT="rw"
    echo "udisks --mount /dev/disk/by-label/$VLABEL $UOPT"
    udisks --mount /dev/disk/by-label/"$VLABEL" --mount-options "$MOPT"
    _STATUS=$?
    [ $_STATUS -eq 0 ] && echo "$Y_c - $MPOINT/$VLABEL mounted ($MOPT)"
    [ $_STATUS -ne 0 ] && echo "$N_c - \"$VLABEL\""
  fi
fi
#====================================================================
0
répondu maxdev137 2013-11-02 01:46:44