私のUbuntu linuxボックスでは、デスクトップにあるデバイスアイコンをクリックして、USB接続ドライブまたはCDROMを簡単にマウントできます。
たとえば、USB接続されたドライブのアイコンをクリックすると、次のことが起こります。
このプロセスは、mount
コマンドを使用したマウントとは大きく異なります。特に:
Gnome GUIのマウント機能のように動作するコマンドラインコマンドはありますか?
使用法については pmount
コマンドを参照してください
あなたが探しているのはgio mount
(最近置換されたgvfs-mount
、これはgnome-mount
)。
man page here があるか、または単にgio help mount
詳細
基本的な使用法は次のとおりです。
gio mount --list --detail
マウントおよびマウント可能なボリュームのリストを取得します
gio mount [-u] <volume>
から[アン]マウントします(例: gio mount smb://server/share
またはgio mount WINDOWS
。
悲しいことに、ボリューム名でマウントしようとすると「エラーマウント場所:ボリュームはマウントを実装していません」というメッセージが表示されるバグがあるようですが、gvfs-mount -d /dev/<devicename>
はうまくいくかもしれません。
最近のディストリビューションではHALは使用されなくなりましたが、pmountはまだ存在しますが、非推奨です...使用:
udisks --mount /dev/sdXN
それは「devkit-disks --mount /dev/sdxx
"ここで、xx
はマウントするパーティションの文字と番号です...
USBデバイスを接続し、「gnome-volume-manager」と入力すると、必要な処理が行われるようです。
Gnome自体がマウントを処理するとは思いません。HALです。したがって、HALが実行されている場合は、自動マウントできるはずです。 pmount
はどういうわけかHALと通信し、それがマウント解除を処理する方法になると思います。これで少なくとも始められるといいのですが。
コマンドラインからマウント/アンマウントするためにgnome-mountを使用することもできます。
あなたがやりたいことをするためのスクリプトがあります。
#!/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
#====================================================================