pmount czy autofs - automontowanie USB

Tematy związane z oprogramowaniem, instalacją, konfiguracją
doman18
Posty: 84
Rejestracja: 04 lipca 2009, 17:33

pmount czy autofs - automontowanie USB

Post autor: doman18 »

Witam.
Przede wszystkim zastanawiałem się w jakim temacie to umieścić. Jeśli jest w złym to proszę o przeniesienie. Ostatnio się przekonałem, że jestem jednym z wielu użytkowników, którzy nie mają automontowania usb. Przejrzałem TEN topik i w zasadzie mógłbym zacząć działać bo symptomy są takie same jak tam przedstawiają ale mam inny pomysł. Poczytałem Manual Pmount i z tego co widzę nie ma możliwości montowania nim katalogów sieciowych. Ponadto w TYM topiku oraz TUTAJ sugeruje się autofs do montowania. Więc kilka pytań

1. Czy zainstalowanie Autofs może naprawić problem automontowania bez ingerencji w PolicyKit?
2. W powyższych poradnikach przeczytałem
Do poprawnego skonfigurowania automatycznego montowania potrzebujemy kilku rzeczy.

1. Wkompilowanej w jądro opcji
Kernel automounter version 4 support (also supports v3)
w sekcji "File systems". Wystarczy jako modu?. Domyślnie jest w zasadzie z każdym dystrybucyjnym kernelem, więc nie należy sobie zawracać tym głowy.

2. Wkompilowanej obsługi systemu plików, który chcemy automontować, również w dystrybucyjnych jądrach nie ma z tym problemu.
Czy mnie to obowiązuję skoro ręczne montowanie poleceniem

Kod: Zaznacz cały

sudo mount -t cifs //192.168.0.2/Udostepnione /home/doman/Sieciowe/Edytka
działa bez problemu?
3. W TYM topiku przeczytałem że autofs może się gryźć z pmount. Czy po zainstalowaniu aurtofs całkowicie wywalić pmount?

Niektórych odpowiedzi się domyślam ale jestem newbie i wolę się upewnić zanim zacznę grzebać w dotychczasowym systemie automontowania

Na wszelki wypadek wrzucę tu wyniki niektórych poleceń

Kod: Zaznacz cały

doman@debian:~$ dpkg -l | grep hal
ii  hal                               0.5.13-3                   Hardware Abstraction Layer
ii  hal-info                          20090716-1                 Hardware Abstraction Layer - fdi files
ii  libhal-storage1                   0.5.13-3                   Hardware Abstraction Layer - shared library for storage devices
ii  libhal1                           0.5.13-3                   Hardware Abstraction Layer - shared library

Kod: Zaznacz cały

doman@debian:~$ dpkg -l | grep mount
ii  mount                             2.16.1-4                   Tools for mounting and manipulating filesystems
ii  pmount                            0.9.20-2                   mount removable devices as normal user

Kod: Zaznacz cały

doman@debian:~$ lsusb
Bus 006 Device 002: ID 06a3:80c1 Saitek PLC 
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 04f9:018c Brother Industries, Ltd DCP-115C
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 005: ID 125f:c72a A-DATA Technology Co., Ltd.  <=Mój pendrive
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Kod: Zaznacz cały

doman@debian:~$ ls -la /media
razem 12
drwxr-xr-x  3 root root 4096 10-27 09:32 .
drwxr-xr-x 21 root root 4096 10-21 20:48 ..
lrwxrwxrwx  1 root root    6 10-21 20:06 cdrom -> cdrom0
drwxr-xr-x  2 root root 4096 10-21 20:06 cdrom0
No i także jestem w grupie plugdev
winnetou

Post autor: winnetou »

Dziękuje...
doman18
Posty: 84
Rejestracja: 04 lipca 2009, 17:33

Post autor: doman18 »

No i nie działa? Przedstawiam pliki
auto.master:

Kod: Zaznacz cały

/media	/etc/auto.misc	--timeout=120
auto.misc:

Kod: Zaznacz cały

#
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# Details may be found in the autofs(5) manpage

cd		-fstype=iso9660,ro,nosuid,nodev	:/dev/cdrom
usb 		-fstype=auto,async,nodev,nosuid,umask=000 :/dev/sda

# the following entries are samples to pique your imagination
#1Kaska	-ro,soft,intr		192.168.0.4:/Udostepnione
#2Edytka		-fstype=nfs,ro,soft,intr,rsize=8192,wsize=8192,nosuid		GRUPA:/Edytka
#2Kaska		-fstype=nfs,ro,soft,intr,rsize=8192,wsize=8192,nosuid		GRUPA:/Kaska
3Kaska   -fstype=smbfs       ://192.168.0.4/Udostepnione
3Edytka   -fstype=smbfs       ://192.168.0.2/Udostepnione
#boot		-fstype=ext2		:/dev/hda1
#floppy		-fstype=auto		:/dev/fd0
I parę wyjaśnień odnośnie wpisów:
  • cd - domyślny wpis który już był w tym pliku
    usb - wpis który zaczerpnąłem ze strony którą podałeś winnetou
    1Kaska - jeden z dwóch wpisów, które zrobiłem na podstawie przykładowego wpisu, który tam był.

Kod: Zaznacz cały

kernel    -ro,soft,intr       ftp.kernel.org:/pub/linux
Ale wpis ten nie zadziałał ale też odciął mnie całkowicie od sieci.
  • 2Edytka, 2Kaska - wpisy które zaczerpnąłem z TEJ stronki.
Myślałem nazwa "madsick" u niego to nazwa grupy roboczej. Ale chyba nie o to chodzi choć nie wypróbowałem tego wpisu.
3Edytka, 3Kaska - wpisy, które zrobiłem na podstawie Manuala autofs5. Nie działają także.

Najlepsze jest to że domyślne montowanie CD działa i ma się znakomicie. Montuje mi płytę pod /media/cdrom0. Zamieszczam plik: /etc/fstab

Kod: Zaznacz cały

# /etc/fstab: static file system information.
#
# Use 'vol_id --uuid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/hdb2 during installation
UUID=682b397a-1ac3-4dd4-aa5d-a6b6eef0d858 /               ext3    errors=remount-ro 0       1
/dev/hdb1       none            swap    sw              0       0
/dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/hdb3       /home/doman/dane               ext3    defaults 0       1
/dev/hda2    /home/doman/windows    ntfs-3g    rw,uid=1000,locale=pl_PL.UTF-8,auto    0    2
Spróbuję na razie zmienić jeszcze domyślny wpis w auto.misc z /dev/cdrom na /dev/hdc tak jak jest w fstab pliku.
winnetou

Post autor: winnetou »

Dziękuje...
doman18
Posty: 84
Rejestracja: 04 lipca 2009, 17:33

Post autor: doman18 »

Dobrze, kombinowałem z tymi wpisami i nic nie dało. Zablokowałem sobie /media i nie mogłem otworzyć CD. Płyta w napędzie siedziała, miałem w thunarze i pcmanfmie ikonkę, że jest płyta CD ale przy próbie otwarcia wywala TEN błąd:

Kod: Zaznacz cały

Błąd [i]org.freedesktop.Hal.Device.Volume.UnknownFailure[/i]
A gdy zobaczyłem co jest w media? Okazało się, że nic (a normalnie jest cdrom0 i skrót do niego). Próbowałem jako root utworzyć tam cokolwiek (dokument, plik) i nie miałem dostępu. W końcu przerobiłem plik auto.master:

Kod: Zaznacz cały

/mnt		/etc/auto.misc		--timeout=30
/home/doman/Sieciowe	/etc/auto.siec	--timeout=30
#/home/doman/Sieciowe	/etc/auto.smb	--timeout=30
i utworzyłem nowy plik auto.siec z wpisami:

Kod: Zaznacz cały

#linux		-ro,soft,intr		192.168.0.4:/Udostepnione
#Edytka		-fstype=nfs,ro,soft,intr,rsize=8192,wsize=8192,nosuid		GRUPA:/Edytka
#Kaska		-fstype=nfs,ro,soft,intr,rsize=8192,wsize=8192,nosuid		GRUPA:/Kaska
#Kaska   -fstype=smbfs       ://192.168.0.4/Udostepnione
#Edytka   -fstype=smbfs       ://192.168.0.2/Udostepnione
Kaska		-fstype=cifs,ro,soft,intr,rsize=8192,wsize=8192,nosuid		://192.168.0.4/Udostepnione
Edytka		-fstype=cifs,ro,soft,intr,rsize=8192,wsize=8192,nosuid		://192.168.0.2/Udostepnione
Ten nieaktywny (#) wpis dotyczy pliku, który domyślnie już był zainstalowany z autofs. Oto jego treść:

Kod: Zaznacz cały

#!/bin/bash

# This file must be executable to work! chmod 755!

key="$1"
opts="-fstype=cifs"

for P in /bin /sbin /usr/bin /usr/sbin
do
	if [ -x $P/smbclient ]
	then
		SMBCLIENT=$P/smbclient
		break
	fi
done

[ -x $SMBCLIENT ] || exit 1

$SMBCLIENT -gNL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- '
	BEGIN	{ ORS=""; first=1 }
	/Disk/	{
		  if (first)
			print opts; first=0
		  dir = $2
		  loc = $2
		  # Enclose mount dir and location in quotes
		  # Double quote "$" in location as it is special
		  gsub(/\$$/, "\\$", loc);
		  print " \\\n\t \"/" dir "\"", "\"://" key "/" loc "\""
		}
	END 	{ if (!first) print "\n"; else exit 1 }
	'
Plik ma uprawnienia wykonywania:

Kod: Zaznacz cały

doman@debian:~$ ls -l /etc/auto.smb
-rwxr-xr-x 1 root root 660 09-07 10:54 /etc/auto.smb
Ale wpis nie zadziałał. Przynajmniej teraz po przekierowaniu katalog /media znów się odblokował i mogę otwierać normalnie płyty.

Dodam tylko:

Kod: Zaznacz cały

Bus 006 Device 002: ID 06a3:80c1 Saitek PLC <= saitek command unit
Bus 005 Device 002: ID 04f9:018c Brother Industries, Ltd DCP-115C <= urządzenie wielofunkcyjne
Oba urządzenia podłączone ale nie skonfigurowane, bez sterowników.
Ponadto wg porady sp3cu powinno się dodać

Kod: Zaznacz cały

daemonoptions='-g'
a ja nie miałem tego gdzie dodać bo nie mam pliku /etc/conf.d/autofs ale jest taki plik /etc/init.d/autofs ale tam nie ma sekcji daemonoptions

Teraz zdaję się już na was :)

PS. Wiecie może jak zrobić żeby taki skrypt:

Kod: Zaznacz cały

#!/bin/bash
mount -t cifs //192.168.0.2/Udostepnione /home/doman/Publiczny/Edytka
exit 0
nie trzeba było uruchamiać w konsoli z poleceniem sudo tylko jakoś powiązać to z gksu i uruchamiać dwuklikiem?[/code]
rolnikov
Posty: 16
Rejestracja: 08 marca 2008, 13:25

Post autor: rolnikov »

Witam, udało Ci się dojść do ładu z tym autofsem?
winnetou

Post autor: winnetou »

Dziękuje...
doman18
Posty: 84
Rejestracja: 04 lipca 2009, 17:33

Post autor: doman18 »

A czy kod:

Kod: Zaznacz cały

        if [ "$MOUNTED" == "$PLACE" ] 
        then 
            $TERMINAL -e mc /media/$PLACE 
        else 
            mount_media 
        fi
Nie dałoby się ubrać w funkcję? Troszkę by mniej pisania było. Poza tym nie widzę tu wykorzystania wbara, więc chyba nie trzeba go umieszczać w Requirements.
winnetou

Post autor: winnetou »

Dziękuje...
doman18
Posty: 84
Rejestracja: 04 lipca 2009, 17:33

Post autor: doman18 »

Ja osobiście pobawię się pętlą while. Tak żeby nie uruchamiać go argumentami tylko żeby sam program mnie pytał co chcę zamontować/ odmontować.
Poza tym może taki skrypcik dałoby się powiązać w jakiś sposób z cronem. Ale nie cały skrypt tylko między crona a skrypt włożyć jakiś skrypcik do sprawdzania czy coś zostało podłączone. Np polecenie

Kod: Zaznacz cały

lsusb

by coś takiego załatwiało. Ale cóż, to kwestia dalszej zabawy :)
ODPOWIEDZ