it-swarm.com.de

Wie kann ich wie der Nautilus von der Kommandozeile aus mounten?

Auf meiner Ubuntu-Linux-Box kann ich auf einfache Weise über USB verbundene Laufwerke oder CD-ROMs mounten, indem ich auf Gerätesymbole klicke, die ich auf dem Desktop finde.

Wenn ich zum Beispiel auf ein Symbol für ein über USB verbundenes Laufwerk klicke, passiert Folgendes:

  • ein/media/LABEL-Verzeichnis wird automatisch erstellt (wobei LABEL die Bezeichnung der Festplatte ist und von Festplatte zu Festplatte unterschiedlich sein kann).
  • das Dateisystem auf dem Gerät ist unter/media/LABEL gemountet

Dieser Vorgang unterscheidet sich erheblich von der Bereitstellung mit dem Befehl mount. Im Speziellen:

  • sie müssen kein Root sein (oder Sie müssen/etc/fstab nicht ändern, damit der normale Benutzer das Gerät einbinden kann)
  • das Verzeichnis/media/LABEL wird automatisch erstellt
  • der Name des Verzeichnisses ändert sich entsprechend der Datenträgerbezeichnung.

Gibt es einen Befehlszeilenbefehl, der sich wie die Gnome-GUI-Montagefunktionen verhält?

31
Andrea Francia

Informationen zur Verwendung finden Sie unter pmount

9
phihag

ich schätze, was Sie suchen, ist "gfvs-mount" (es hat kürzlich das "gnome-mount" ersetzt, über das die meisten Leute sprechen; sowohl gnome-mount als auch pmount setzen auf HAL, das aus dem Markt genommen wird).

es gibt keine Manpage. Geben Sie einfach "gvfs-mount --help" ein, oder lesen Sie hier: Wie man Dateisysteme von der Kommandozeile aus in Ubuntu 10.04 und 10.10 einbindet ; Die grundlegende Verwendung ist so einfach wie möglich: 

"gvfs-mount --list", um eine Liste der gemounteten/mountbaren Volumes zu erhalten. 

"gvfs-mount [-u]" um [un] zu mounten, z. "gvfs-mount smb: // server/share" oder "gvfs-mount WINDOWS".

leider scheint es einen Fehler zu geben, der dazu führt, dass die Meldung "Fehler beim Einrichten des Speicherortes: Volume implementiert Mount" nicht ausgeführt wird, wenn versucht wird, anhand des Volume-Namens einzuhängen, "gvfs-mount -d/dev /" sollte jedoch funktionieren.

auf meinem ubuntu 10.04 kann ich smb-aktien so einbinden, aber nicht die Windows-Partitionen - aber es könnte sein, dass ich es falsch mache.

36
mwx

Bei modernen Distributionen wird HAL nicht mehr verwendet, pmount ist noch vorhanden, aber es ist veraltet. 

udisks --mount /dev/sdXN
22
noname

Ja da ist. Es heißt ivman und behandelt alle HAL-Ereignisse. Ich starte es beim Laufen ion3 . Ich starte einfach ivman als Daemon-Prozess, habe das Programm jedoch meiner sudoers-Datei hinzugefügt:

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

so dass es auch die Energieeinstellungen verwalten kann.

1
Steen

Das wäre "devkit-disks --mount /dev/sdxx", wobei xx der Buchstabe und die Nummer der Partition ist, die gemountet werden soll ...

0
Samuel Audet

Ich stecke mein USB-Gerät ein, tippe "gnome-volume-manager" und dies scheint zu tun, was Sie brauchen.

0
vinc456

Ich glaube nicht, dass Gnome die Montage selbst erledigt - es ist HAL. Wenn also HAL läuft, sollten Sie in der Lage sein, automatisch zu parken. Ich gehe davon aus, dass pmount irgendwie mit HAL spricht, und das wäre der Weg, um das Unmounting zu erledigen. Ich hoffe, dass Sie wenigstens damit anfangen.

0
Paul Fisher

Sie können gnome-mount auch zum Ein- und Aushängen über die Befehlszeile verwenden.

0
bluebrother

Ich habe ein Skript, um zu tun, was Sie wollen.

#!/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 [email protected]
#====================================================================

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

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

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

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

_unmount () {
  ### unmount ###
  if [ "$COPT" = "u" ] ; then
    MPOINT=`echo "$AMV" | grep "\[$VLABEL\]" |sed -e 's|^.* \(/.*\) type.*$|\1|'`
    #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/^.* \[\(.*\)\]$/\1/')
  AMV_DETAILS=$(echo $AMV | sed 's|^.*on \(.*\) \[.*$|on \"\1\"|')
  AMV_UHELPER=$(echo $AMV | grep uhelper | sed 's/^.*uhelper=\(.*\)).*$/\1/')
  #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/^.*(\(.*\)).*$/\1/')
  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
maxdev137