Az /etc/auto.ivman tartalmát az ivman fogja állítani.
ivman scriptek
--------------
Kell két script, ami konfigurálja az autofs-t eszköz hozzáadásánál és eltávolításánál.
Az /etc/ivman/ivman-insert hozzáad egy új bejegyzés az auto.ivman fájlhoz. Első paramétere az eszközfájl, második a fájlrendszer.
#!/bin/bash
BLOCK_DEV="$1"
FSTYPE="$2"
DEV_NAME="$(echo $BLOCK_DEV | cut -d '/' -f 3- | sed 's/\//_/g')"
AUTO_IVMAN="/media/.ivman_dev_list"
# Extended partíciót nem csatolok (arra a hal.volume.fstype üres sztring)
if [ -z $FSTYPE ] ; then exit 0 ; fi
# Swap partíciót nem csatolok
if [ $FSTYPE = "swap" ] ; then exit 0 ; fi
# A saját harddiskem levő cuccok ide nem kellenek, azok az fstab-ból jönnek
if [ $(echo $BLOCK_DEV | grep '/dev/hda' | wc -l) = 1 ] ; then exit 0 ; fi
case $FSTYPE in
ext2|ext3|reiserfs|jfs|xfs)
MOUNT_OPT="nodev,nosuid"
;;
msdos|vfat)
MOUNT_OPT="dmask=000,fmask=111,codepage=852,iocharset=iso8859-2,quiet,showexec"
;;
ntfs)
FSTYPE="ntfs-3g"
MOUNT_OPT="dmask=000,fmask=111,locale=en_US.UTF8"
# Ehhez kell ntfs-3g. Ha nincs, akkor ezt a részt módosítani kell.
# MOUNT_OPT = "ro,nls=utf8,dmask=000,fmask=111"
;;
*)
FSTYPE="auto"
MOUNT_OPT="nodev,nosuid"
;;
esac
# Új bejegyzés a konfigfájlba
echo $DEV_NAME -fstype=$FSTYPE,$MOUNT_OPT :$BLOCK_DEV >> $AUTO_IVMAN
# Létrehozzuk a /media/.auto.ivman-t, ha eddig nem volt
mkdir -p /media/.auto.ivman
# Újra olvastassuk a konfigfájlt
sudo /usr/sbin/invoke-rc.d autofs reload >/dev/null 2>&1
# Létrehozzuk a linket (az autofs működési elve miatt jól jön)
ln -s .auto.ivman/$DEV_NAME /media/$DEV_NAME
echo "Device $DEV_NAME plugged in."
Az /etc/ivman/ivman-remove eltávolít egy bejegyzést az auto.ivman fájlból. Egyetlen paramétere az eszközfájl.
#!/bin/bash
BLOCK_DEV="$1"
DEV_NAME="$(echo $BLOCK_DEV | cut -d '/' -f 3- | sed 's/\//_/g')"
AUTO_IVMAN="/media/.ivman_dev_list"
TMP_FILE="/media/.tmp_dev_list"
# Eltávolítjuk a bejegyzést
grep -v "$BLOCK_DEV" < $AUTO_IVMAN > $TMP_FILE
cat < $TMP_FILE > $AUTO_IVMAN
# Ha eszköz használatban volt és az autofs még nem csatolta le,
# akkor tudatjuk a rendszerrel, hogy most már az eszköz nem elérhető
sudo /sbin/umount -l $BLOCK_DEV >/dev/null 2>&1
# Létrehozzuk a /media/.auto.ivman-t, ha eddig nem volt
mkdir -p /media/.auto.ivman
# Újra olvastassuk a konfigfájlt
sudo /usr/sbin/invoke-rc.d autofs reload >/dev/null 2>&1
# Eltávolítjuk a linket
rm -f /media/$DEV_NAME
echo "Device $DEV_NAME removed."
Az /etc/auto.ivman egy link a /media/.ivman_dev_list-re. Később meglátjuk miért kell ez.
A sudo azért kell, mert ezek a scriptek az ivman felhasználó nevében fognak futni. Tehát az /etc/sudoers-be bele kell tenni a következő két sort:
ivman ALL=(root) NOPASSWD: /usr/sbin/invoke-rc.d autofs reload
ivman ALL=(root) NOPASSWD: /sbin/umount -l /dev/*
Aki nem Debian alapú rendszert használ, annak az invoke-rc.d-t helyettesítenie kell valami azzal ekvivalenssel! Az /etc/auto.ivman egy link a /media/.ivman_dev_list-re.
ivman beállítása
----------------
Most beállítjuk az ivmant, hogy használja ezeket a scripteket.
$ cat /etc/ivman/IvmConfigActions.xml
<?xml version="1.0" encoding="UTF-8"?>
<ivm:ActionsConfig version="0.2" xmlns:ivm="http://www.eikke.com/ivm">
<!-- perform these rules on devices already attached when Ivman starts -->
<ivm:Option name="checkOnInit" value="true" />
<!-- try to mount any mountable volume at all -->
<!-- <ivm:Match name="ivm.mountable" value="true"> -->
<ivm:Match name="hal.volume.is_mounted" value="false">
<ivm:Option name="exec" value="/etc/ivman/ivman-insert '$hal.block.device$' '$hal.volume.fstype$'" />
<ivm:Option name="execun" value="/etc/ivman/ivman-remove '$hal.block.device$'" />
</ivm:Match>
</ivm:ActionsConfig>
Még csak annyi hiányzik, hogy kikapcsolás előtt, ha nem húzunk le valami cuccot, akkor megmarad az autofs-nek a bejegyzés, meg a linkek a /media-ban. Ezt a következőképp oldottam meg.
A /media-t tmpfs-re tettem, tehát egy sor az fstabba:
tmpfs /media tmpfs gid=plugdev,mode=775 0 0
Meg csináltam egy scriptet, ami a szükséges dolgokat indításnál beleteszi.
$ cat /etc/init.d/autofs-ivman-prepare
#!/bin/bash
ln -s .auto.static/cdrom /media/cdrom
ln -s .auto.static/cdrom1 /media/dvd
ln -s .auto.static/fd0 /media/floppy
touch /media/.ivman_dev_list
chown ivman /media/.ivman_dev_list
mkdir /media/.auto.static
Ezt beraktam, hogy rendszerindításnál elinduljon.
$ ls -l /etc/rcS.d/S60autofs-ivman-prepare
lrwxrwxrwx 1 root root 30 2007-02-03 16:00 /etc/rcS.d/S60autofs-ivman-prepare -> ../init.d/autofs-ivman-prepare
Kész.
=================================
Szerkesztés: Gondoltam összeírom, mi az nem egy-az-egyben kell bemásolni másoknak, hanem szükség szerint módosítani kell.
1. autofs beállítása a sztatikus eszközfájlú eszközökhöz (pl. cd, dvd, floppy) - itt nem kell ivman.
man autofs automount auto.master mount
Középső rész az opciók, első sorban nálam cd-re, másodikban dvd-re, harmadikban floppyra.
A : után értelemszerűen érvényes eszközfileok kell, hogy legyenek.
Az első szó mindegy mi, de az autofs-ivman-preparet úgy kell elkészíteni, hogy a megfelelő névre készítsen linket.
Igazából ez a legfontosabb, a többire a megjegyzésekből többé-kevésbé rá lehet jönni.
- utpKabel blogja
- A hozzászóláshoz be kell jelentkezni
- 3068 megtekintés
Hozzászólások
Nálam nem jelenik meg az XML részlet. Iceweasel 2.0.0.1
- A hozzászóláshoz be kell jelentkezni
+1 FireFox 2.0.0.1
- A hozzászóláshoz be kell jelentkezni
Betehetem a HUPWiki-be?
- A hozzászóláshoz be kell jelentkezni
Most már lehet, sőt már az XML is jó.
- A hozzászóláshoz be kell jelentkezni
Pastebin legközelebb, plz.
--
Gentoo motto: It's worth spending eight hours trying to make something load 20ns faster.
- A hozzászóláshoz be kell jelentkezni
Az mi is?
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy kéne egy kis bevezető az előző blogomból.
- A hozzászóláshoz be kell jelentkezni
vfat partíció ékezetes fájlneveit latin2-re alakítod, ntfs-ét viszont utf8-ra. Ez nyilván tök következetlen és nem oké. Mindkét helyen egységesen azt a kódolást kellene megadni, amit a Linux rendszerben is használsz.
- A hozzászóláshoz be kell jelentkezni
elhiszem
- A hozzászóláshoz be kell jelentkezni
Ez azért nincs így, mert a vfat nem fogadja el az UTF-8 kódolást egyes helyeken, azon kívül a legtöbb vfat eszközön cp852 vagy iso-8859-2 a fájlnevek kódolása. Ha ezt UTF-8 mountolná fel, akkor teljesen használhatatlanok lennének az ékezetes nevű fájlok, főleg terminálról. Nagyon jól van az úgy, hidd el.
A Windows még mindég cp852 ment :(
- A hozzászóláshoz be kell jelentkezni
nagyon tetszik a kezdeményezés.
én kezdő ubuntu/linux felhasználó vagyok.
megcsináltam mindent amit te leírtál, de nekem nem működik.
elsődleges HIBA jelenség: indítás után teljesen üres a /media mappa.
--
dont_worry_be_happy
- A hozzászóláshoz be kell jelentkezni
/media könyvtárat az végén leírt autofs-ivman-prepare script kellene, hogy inicializálja. Futtathatóvá tetted (chmod +x) az /etc/init.d/autofs-ivman-prepare scriptet?
- A hozzászóláshoz be kell jelentkezni
KÉRDÉS: Az IvmConfigActions.xml tartalmát bővíteni, vagy lecserélni kell? (én lecseréltem).
--
dont_worry_be_happy
- A hozzászóláshoz be kell jelentkezni
# apt-get install ivman
után, az IvmConfigActions.xml-ben ami nem volt megjegyzésbe téve, azt kell kicserélni erre. Szóval ez kell, hogy legyen az egyetlen működő kód, a már megjegyzésben lévő példákat nem fontos törölni, úgy sincs hatásuk.
<ivm:Match name="hal.volume.is_mounted" value="false">
helyett lehet akár
<ivm:Match name="ivm.mountable" value="true">
is benne.
Amikor próbálod, az egyéb automount megoldásokat kapcsold ki! (pl. GNOME-ét)
- A hozzászóláshoz be kell jelentkezni
eddig értem.
de hogy kapcsolom ki a Gnome automount-ját?
parancssorban kell gondolom... de ilyet még nem csináltam.
-
ja meg az az igazság, hogy ez ahogy leírod, már linux haladó szint (azt hiszem), és lehet hogy néhány dolgot nem csinálok, amit te alapnak gondolsz, és ezért nem megy a kerék.
amúgy Ubuntu 6.10 edgy-m van.
-
ja és mégvalami, az ivman-insert fájlban beírtad az ntfs fájlrendszert, de arra nem gondoltál, hogy mi van ha valakinek már az fstab-ban ntfs-3g -re van állítva a fájlrendszer! persze nem nagy dolog az ntfs részt lemásolni, de azért beleírhattad volna. mindegy utólag mondom.
--
dont_worry_be_happy
- A hozzászóláshoz be kell jelentkezni
1. Rendszer -> Beallitasok -> Cserelheto meghajtok es adathordozok
Ki kell venni a pipat, hogy ne csatlakoztasson es ne nyisson nautilust.
2.1. valóban nem kezdő szinten írtam le
2.2. Az jó, akkor a Debian specifikus parancsok (pl. invoke-rc.d) módosítás nélkül menni fognak.
3.1. De gondoltam rá:
if [ $(echo $BLOCK_DEV | grep '/dev/hda' | wc -l) = 1 ] ; then exit 0 ; fi
Ha a /dev/hda-n lévő partíciót talál az ivman, akkor nem csinál semmit.
- A hozzászóláshoz be kell jelentkezni
1. Beállítottam
2. Újraindítás után is tök üres a /media mappa.
Azt hiszem visszatérek az eddigi mount megoldáshoz. de ha esetleg készíŧessz egy install fájlt a te automount-odhoz, akkor megpróbálom majd újra ;)
--
dont_worry_be_happy
- A hozzászóláshoz be kell jelentkezni
Sztatikus autofs nelkul lehetne install file.
ls -l /etc/init.d/autofs-ivman-prepare
mit mond?
- A hozzászóláshoz be kell jelentkezni
Ezt mondja:
-rw-r--r-- 1 root root 253 2007-03-07 23:21 /etc/init.d/autofs-ivman-prepare
Át kell állítani chmod 777-re?
--
dont_worry_be_happy
- A hozzászóláshoz be kell jelentkezni
Akkor megvan miért üres a /media. 744 is elég, de 777 is jó. Legegyszerűbb:
# chmod +x /etc/init.d/autofs-ivman-prepare
Így már nem kellene, hogy üres legyen, ha újraindítod.
- A hozzászóláshoz be kell jelentkezni
1) még mindíg nem megy.
ha beírom parancssorba hogy ivman, akkor ezt kapom:
root@komate-desktop:/home/komate# ivman
manager.c:1362 (do_startup_configure) Directory /etc/ivman/ will be used for configuration files.
/bin/sh: /etc/ivman/ivman-insert: Permission denied
/bin/sh: /etc/ivman/ivman-insert: Permission denied
/bin/sh: /etc/ivman/ivman-insert: Permission denied
/bin/sh: /etc/ivman/ivman-insert: Permission denied
/bin/sh: /etc/ivman/ivman-insert: Permission denied
root@komate-desktop:/home/komate#
2) ugye az ilyen soroknak nincs szemantikai jelentőségük (azaz nem kell őket beírni sehova, én gedit-el szerkesztettem minden fájlt):
$ cat /etc/auto.static | grep -v '#'
--
dont_worry_be_happy
- A hozzászóláshoz be kell jelentkezni
1.) Nem emeltem ki kulon, hogy minden script futtathato kell, hogy legyen.
# chmod +x filename
Van 2 ivman script meg 1 inicializalo, azaz:
/etc/ivman/ivman-insert
/etc/ivman/ivman-remove
/etc/init.d/autofs-ivman-prepare
ivman parancsot nem kell kiadni, ha ubuntu csomagbol van az ivman kellene, hogy induljon inditaskor automatikusan (autofs ugyszinten)
2.) Ez ($ cat /etc/auto.static | grep -v '#') azt jelenti, hogy ha ezt konzolba beirod, akkor valami hasonlot kellene hogy kapjal mint ami alatta van. Legalabb is nalam azt irja ki ami alatta van. a grep -v '#' azert van benne, hogy a megjegyzeseket eltavolitsa.
- A hozzászóláshoz be kell jelentkezni
Azt szeretném a dologhoz hozzáfűzni hogy a "grep -v valami < fileom > fileom" annyira nem jó dolog, mivel a grep folyamatosan streamel, és így egyes rendszereken kapásból fejbe tudja vágni a fájlt. Én inkább egy /tmp/fileom-ba tenném az outputot.
- A hozzászóláshoz be kell jelentkezni
Javitva. Csak az /etc/ivman/ivman-remove valtozott.
- A hozzászóláshoz be kell jelentkezni
megcsináltam a fentieket,működik.csak egy apróság maradt:
egyes eszközöket a system:/media/sdb1-re tesz a konqueror,és ad egy ilyen üzenetet,hogy:
"mount: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so"
ha kiszedem a system: részt,és csak a /media/sdb1-re ütök egy entert,akkor láthatóak a felcsatolt fájlok.
már idegesít egy ideje,de még nem jöttem rá a megoldásra.tudja valaki?csak FAT esetében csinálja..
- A hozzászóláshoz be kell jelentkezni
A system:/media-ban az eszközök mountolását a KDE végzi, a sima /media-ban pedig az én rendszerem által készített linkek vannak.
- A hozzászóláshoz be kell jelentkezni
Sziasztok,
Én is megcsináltam a leírás szerint mindent, reboot után létre is jönnek a fájlok a /media könyvtárban, cdrom-ot csatolja rendesen, de a pendriveokat nem.
Létrejön a .auto.ivman könyvtár, megteszi a bejegyzést a .ivman_dev_list-be, azonban ténylegesen nem csatolja fel.
Az eszköz eltávolítása után rendesen törli a bejegyzéseket.
Mi lehet a gáz?
- A hozzászóláshoz be kell jelentkezni
A link létrejön a /media-ban? Debian derivált a disztró?
- A hozzászóláshoz be kell jelentkezni
Ja igen, bocs ezt elfelejtettem.
Debian sid, csak a ".auto.ivman" könyvtár jön létre, plusz a bejegyzés adódik hozzá a ".ivman_dev_list"-hez, de magára az eszközre(pl. sda1) mutató link nem.
dmesg nem ír semmi hibát.
- A hozzászóláshoz be kell jelentkezni
Miután hozzáadja a .ivman_dev_list akkor már az autofs feladat lenne csatolni, igaz?
Ha kézzel újraindítom az autofs-et akkor sem csinálja meg.
- A hozzászóláshoz be kell jelentkezni
Miután hozzáadja a .ivman_dev_list akkor már az autofs feladat lenne csatolni, igaz?
Igen, de a linknek létre kellene jönnie. Ha bemész a /media/.auto.ivman könyvtárba, és ott bele-cd-zel az sda1-be, akkor belép?
Mik a jogosultságok a /media könyvtárra? ("ls -l /media" mit mond?)
- A hozzászóláshoz be kell jelentkezni
Épp ez az, hogy az sda1 könyvtár sem jön létre.
~$ls -la /media/
összesen 20
drwxr-xr-x 7 root root 4096 aug 20 00.32 .
drwxr-xr-x 23 root root 4096 aug 19 12.37 ..
drwxr-xr-x 2 root root 0 aug 20 00.32 .auto.ivman
drwxr-xr-x 2 root root 0 aug 20 00.33 .auto.static
lrwxrwxrwx 1 root root 19 aug 17 23.30 cdrom0 -> .auto.static/cdrom0
drwxr-xr-x 3 root root 22 aug 15 19.42 files
drwxr-xr-x 2 root root 4096 júl 30 10.48 iso
-rw-r--r-- 1 ivman root 97 aug 20 00.32 .ivman_dev_list
drwxr-xr-x 4 root root 4096 júl 31 12.08 old
~$cat /media/.ivman_dev_list
sda1 -fstype=vfat,dmask=000,fmask=111,codepage=852,iocharset=iso8859-2,quiet,showexec :/dev/sda1
- A hozzászóláshoz be kell jelentkezni
Az sda1 könyvtár az első hozzáférés alkalmával jön létre. Tehát ilyesmire számíts:
/media/.auto.ivman$ ls -A
/media/.auto.ivman$ cd sda1
/media/.auto.ivman/sda1$ cd ..
/media/.auto.ivman$ ls -A
sda1
/media/.auto.ivman$ sleep 3
/media/.auto.ivman$ ls -A
/media/.auto.ivman$
Egyébként megvan a gond. Kihagytad a következő részt az fstabból:
tmpfs /media tmpfs gid=plugdev,mode=775 0 0
Mivel root:root a /media, ivman pedig ivman:plugdev-ként fut, ezért ivmannak nincs jogosultsága a linkek létrehozására.
- A hozzászóláshoz be kell jelentkezni
Valóban, így már működik, köszi a segítséget!
Azt hittem, hogy az a beállítás opcionális.
Még annyit akarok megcsinálni, hogy miután felcsatolta, mc-ben nyissa is meg a könyvtárat.
Az ivman_insert fájl végéhez hozzáadtam ezt a sort:
sudo -u norbi urxvt -title mc -e mc /media/$DEV_NAME &
A sudoers fájlhoz pedig ezt:
ivman ALL=(norbi) NOPASSWD: /usr/bin/urxvt -title mc -e mc /media/*
Azonban nem nyitja meg s nem igazán értem, hogy miért, kell még valami beállítás?
- A hozzászóláshoz be kell jelentkezni
Szerintem kellene még a DISPLAY environment variable.
- A hozzászóláshoz be kell jelentkezni
Ugyanazon a monitoron kell megjelennie, úgyhogy az nem gond.
Beleírtam még egy a sort a sudoers fájlba, így most jó:
Defaults:ivman always_set_home
- A hozzászóláshoz be kell jelentkezni