Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: jak na automount USB na Ubuntu bez grafickeho prostredi  (Přečteno 6425 krát)

karlitos

  • Stálý člen
  • **
  • Příspěvků: 1057
  • Bioinformatics - solutions in-silico
    • homepage
jak na automount USB na Ubuntu bez grafickeho prostredi
« kdy: 28 Února 2011, 17:10:53 »
Zdravim

Resim jak nejlepe udelat automount USB zarizeni a pametovych karet na Ubuntu Server nebo Ubuntu bez grafickeho prostredi. Nasel jsem sice toto k Ubuntu server Edition :
Citace
By default, disk drives do not automount in Ubuntu Server Edition. If you are looking for a lightweight solution that does not depend on HAL/DBUS, you can install "usbmount".
jenze to mi vytvorilo nekolik ruznych USB adresaru v /media
Hledam reseni ktere bude fungovat tak jako gnome-volume-manager, tedy v pripade ze jednotka ma label vytvori adresar s timto labelem v /media nebo vytvori adresar /disk-1 apod.
Nasel jsem uz i odkazy na jina reseni ivman/halevt ale ty zase zavisi na HAL. Nasel jsem i program udisks-automount ale ten zase potrebuje graficke prostredi.

Tak zatim nevim. Diky K
Lenovo ThinkCentre A61 912073G
Athlon X2 5000+ 4GB RAM Nvidia Geforce 9500GT
Linux Mint 9 Isadora , Win7 64Bit

daysleeper

  • Stálý člen
  • **
  • Příspěvků: 1206
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #1 kdy: 28 Února 2011, 19:13:44 »
proc ti tolik vadi, ze usbmount pripojuje disky na /media/usbX?
jinak usbmount je "jen" shell skript, takze se da upravit
jinou moznosti je vytvorit v /media adresare podle sveho gusta, a pak je tak i nastavit v usbmount.conf do radku MOUNTPOINTS.

karlitos

  • Stálý člen
  • **
  • Příspěvků: 1057
  • Bioinformatics - solutions in-silico
    • homepage
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #2 kdy: 28 Února 2011, 19:45:26 »
Vadi mi to protoze vetsinou dbam na to abych mel svoje diska a flashky olabelovane cimz se mi taky zjednodusuje prace kdyz na ne treba v terminalu chci pristoupit. Takhle abych hledal kam mi se mi to zarizeni pripojilo.  Zkusim se ale jeste na to usbmount podivat.
Lenovo ThinkCentre A61 912073G
Athlon X2 5000+ 4GB RAM Nvidia Geforce 9500GT
Linux Mint 9 Isadora , Win7 64Bit

karlitos

  • Stálý člen
  • **
  • Příspěvků: 1057
  • Bioinformatics - solutions in-silico
    • homepage
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #3 kdy: 01 Března 2011, 13:35:46 »
jinou moznosti je vytvorit v /media adresare podle sveho gusta, a pak je tak i nastavit v usbmount.conf do radku MOUNTPOINTS.

No dival jsem se na ten usbmount.conf, ale tady se daji nastavit jen staticke adresare a ja je chci dynamicke. Bud podle labelu nebo aspons udanim velikosti - USB-disc-8GB tak, jako to zvlada Gnome-volume-manager.

A at hledam jak hledam stale nenachazim.
Lenovo ThinkCentre A61 912073G
Athlon X2 5000+ 4GB RAM Nvidia Geforce 9500GT
Linux Mint 9 Isadora , Win7 64Bit

karlitos

  • Stálý člen
  • **
  • Příspěvků: 1057
  • Bioinformatics - solutions in-silico
    • homepage
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #4 kdy: 01 Března 2011, 15:27:09 »
Koukam ze si sem pisu sam ... ale budiz  ;D

Nasel jsem skripty pro udev ale z Wiki Archlinuxu

Zkousim to na Debianu testing, nahodil jsem jeste ntfs-3g, po restartu strcil moji flashku, ta na me zamrkala a mam ji namountovanou v /media/Corsair_survivor

Takze radost prevelika, jenom nevim jestli je zcela zdravo pouzivat ty skripty pro Arch-Linux v Debianu. Muze to mit nejaky negativni dopad  ? (padani vlasu, ztrata prvorozeneho syna ... )
Lenovo ThinkCentre A61 912073G
Athlon X2 5000+ 4GB RAM Nvidia Geforce 9500GT
Linux Mint 9 Isadora , Win7 64Bit

ulo

  • Aktivní člen
  • *
  • Příspěvků: 327
    • Linux Mint Czech
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #5 kdy: 01 Března 2011, 16:08:13 »
Já mám pocit, že ta syntaxe pravidel pro udev je stejná (aspoň teda ten základ), takže pokud ti to funguje, tak bych to neřešil a mnul bych si ruce nad dobře vykonanou prací :-)
PC-doma:  LinuxMint 13 KDE - AMD Athlon II X2 270, MB ASUS M5A78L LE, RAM 4 GB, ATI Radeon HD4350
PC-práce: LinuxMint 13 KDE - Intel Pentium 4, MB MSI 945G Neo, RAM 4 GB, GeForce 8400 GS
NB:  LinuxMint 15 KDE - Acer TravelMate 3002

karlitos

  • Stálý člen
  • **
  • Příspěvků: 1057
  • Bioinformatics - solutions in-silico
    • homepage
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #6 kdy: 01 Března 2011, 20:13:54 »
No jeste to budu muset trochu doladit. Ale vypada to ze bych se mohl v tech skriptech vyznat, rozhodne preferuji pripojeni do adresare treba podle vyrobce a nebo aspon podle velikosti.

A jeste vyresit uklid nepouzivanych adresare - treba nejakym cronjobem jednou denne ?
« Poslední změna: 01 Března 2011, 20:16:25 od karlitos »
Lenovo ThinkCentre A61 912073G
Athlon X2 5000+ 4GB RAM Nvidia Geforce 9500GT
Linux Mint 9 Isadora , Win7 64Bit

daysleeper

  • Stálý člen
  • **
  • Příspěvků: 1206
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #7 kdy: 01 Března 2011, 20:28:14 »
co myslis uklid - vzdyt v tom odkazu automaticke smazani adresare po odpojeni je
Kód: [Vybrat]
# clean up after device removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l '/media/%E{dir_name}'", RUN+="/bin/rmdir '/media/%E{dir_name}'"
nefunguje to?

karlitos

  • Stálý člen
  • **
  • Příspěvků: 1057
  • Bioinformatics - solutions in-silico
    • homepage
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #8 kdy: 14 Března 2011, 00:43:04 »
Zdravim

Zase jsem se dostal k tomu tohle resit. Zjistil jsem ze ten kdyz udelam klasicky
Kód: [Vybrat]
umount /dev/nazev_zarizeni tak mi to ten vytvoreny adresar nesmaze. Testoval jsem to s jednim diskem ktery nemel dany label, takze mi ho to priojilo do adresare oznaceneho jako usb_sdb1 nebo tak nejak a po umountu tam ten adresar je stale.
Lenovo ThinkCentre A61 912073G
Athlon X2 5000+ 4GB RAM Nvidia Geforce 9500GT
Linux Mint 9 Isadora , Win7 64Bit

daysleeper

  • Stálý člen
  • **
  • Příspěvků: 1206
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #9 kdy: 14 Března 2011, 12:31:50 »
adresar se nesmaze ani po fyzickem vyjmuti usb z konektoru?

karlitos

  • Stálý člen
  • **
  • Příspěvků: 1057
  • Bioinformatics - solutions in-silico
    • homepage
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #10 kdy: 14 Března 2011, 18:20:41 »
Takze poporade :
V /media mam jen vlastnorucne vytvorene slozky. Strcim USB flashku do zadniho USB portu ->  simsalabim, flashka zamrka, terminal vyplodi par hlasek a mam novou slozku /media/Verbatim_US. Takze pekne natukam v terminalu
Kód: [Vybrat]
umount /dev/sdd1 a adresar /media/Verbatim_US je stale pritomen. Vyndam flashku z USB portu -> a ohooo  :o  :o kouzlooo  ;D

Tak moc dekuju to bych tedy necekal. Zkousel jsem ted vyrvat USBcko bez umountu a adresar taky zmizel. Olalala  :)

Takze jediny mozny worst-case je : erver se vypne, nekdo vytahne zarizeni a pak ho zase nahodi, ale to nebude asi casty problem. Takze jeste dopatrat jak lepe zjistovat oznaceni zarizeni - treba kdyz chybi label pouzit "vyrobce - velikost" ale to zkusim nejak dat do kupy uz sam.

diky moc K+
Lenovo ThinkCentre A61 912073G
Athlon X2 5000+ 4GB RAM Nvidia Geforce 9500GT
Linux Mint 9 Isadora , Win7 64Bit

karlitos

  • Stálý člen
  • **
  • Příspěvků: 1057
  • Bioinformatics - solutions in-silico
    • homepage
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #11 kdy: 29 Června 2011, 08:52:59 »
Zdravim

Po nejake dobe jsem se dostal k tomu vylepsit ty mountovaci skripty. Rad bych aby se USB disky mountovaly jako vyrobce-nazev_vyrobku-label a kdyz neni label jako vyrobce-nazev_vyrobku-oddil_cislo...

Z tech mountovacich skriptu jsem pochopil ze jde o tyto radky :
Kód: [Vybrat]
# get the label if present, otherwise assign one based on device/partition
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"

Dal jsem si nechal vypsat co vsechno zjisti udev o me flashce :
Kód: [Vybrat]
looking at device '/devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4:1.0/host4/target4:0:0/4:0:0:0/block/sdd':
    KERNEL=="sdd"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{range}=="16"
    ATTR{ext_range}=="256"
    ATTR{removable}=="1"
    ATTR{ro}=="0"
    ATTR{size}=="31309760"
    ATTR{alignment_offset}=="0"
    ATTR{discard_alignment}=="0"
    ATTR{capability}=="51"
    ATTR{stat}=="      56      192      549       52        0        0        0        0        0       52       52"
    ATTR{inflight}=="       0        0"
    ATTR{events}=="media_change"
    ATTR{events_async}==""
    ATTR{events_poll_msecs}=="-1"

  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4:1.0/host4/target4:0:0/4:0:0:0':
    KERNELS=="4:0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{device_blocked}=="0"
    ATTRS{type}=="0"
    ATTRS{scsi_level}=="3"
    ATTRS{vendor}=="Kingston"
    ATTRS{model}=="DataTraveler G2 "
    ATTRS{rev}=="1.00"
    ATTRS{state}=="running"
    ATTRS{timeout}=="30"
    ATTRS{iocounterbits}=="32"
    ATTRS{iorequest_cnt}=="0x58"
    ATTRS{iodone_cnt}=="0x58"
    ATTRS{ioerr_cnt}=="0x2"
    ATTRS{evt_media_change}=="0"
    ATTRS{queue_depth}=="1"
    ATTRS{queue_type}=="none"
    ATTRS{max_sectors}=="240"

  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4:1.0/host4/target4:0:0':
    KERNELS=="target4:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4:1.0/host4':
    KERNELS=="host4"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4:1.0':
    KERNELS=="1-4:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb-storage"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{bInterfaceClass}=="08"
    ATTRS{bInterfaceSubClass}=="06"
    ATTRS{bInterfaceProtocol}=="50"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-4':
    KERNELS=="1-4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="80"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{urbnum}=="270"
    ATTRS{idVendor}=="0951"
    ATTRS{idProduct}=="1624"
    ATTRS{bcdDevice}=="0100"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="480"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="3"
    ATTRS{devpath}=="4"
    ATTRS{version}==" 2.00"
    ATTRS{maxchild}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Kingston"
    ATTRS{product}=="DataTraveler G2"
    ATTRS{serial}=="001372982F25F97126400A09"

  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1':
    KERNELS=="usb1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bMaxPower}=="  0mA"
    ATTRS{urbnum}=="55"
    ATTRS{idVendor}=="1d6b"
    ATTRS{idProduct}=="0002"
    ATTRS{bcdDevice}=="0206"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="480"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{version}==" 2.00"
    ATTRS{maxchild}=="8"
    ATTRS{quirks}=="0x0"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Linux 2.6.39-2-686-pae ehci_hcd"
    ATTRS{product}=="EHCI Host Controller"
    ATTRS{serial}=="0000:00:1d.7"
    ATTRS{authorized_default}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:1d.7':
    KERNELS=="0000:00:1d.7"
    SUBSYSTEMS=="pci"
    DRIVERS=="ehci_hcd"
    ATTRS{vendor}=="0x8086"
    ATTRS{device}=="0x27cc"
    ATTRS{subsystem_vendor}=="0x8086"
    ATTRS{subsystem_device}=="0xd615"
    ATTRS{class}=="0x0c0320"
    ATTRS{irq}=="23"
    ATTRS{local_cpus}=="ffffffff"
    ATTRS{local_cpulist}=="0-31"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{enable}=="1"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}==""
    ATTRS{companion}==""

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

z cehoz nezajimavejsi informace jsou :
Kód: [Vybrat]
ATTRS{vendor}=="Kingston"
ATTRS{model}=="DataTraveler G2 "
...
ATTRS{manufacturer}=="Kingston"
ATTRS{product}=="DataTraveler G2"

Nejsem ale moc dobornik na syntaxi tech pravidel, ty zacatky tech radku jsou jasne : je-li label ->  jmeno, neni-li -> jine jmeno Ale jak mam udelat to aby se mi hodnota ENV{dir_name}= udelele jako retezec : vyrobce-nazev_vyrobku-label a kdyz neni label jako vyrobce-nazev_vyrobku-oddil_cislo... Protoze treba ve tom vypisu toho co rozpozna udev zadnou hodnotu label nevidim ...

Kdyby nekdo umel napovedet budu moc rad, diky K

Lenovo ThinkCentre A61 912073G
Athlon X2 5000+ 4GB RAM Nvidia Geforce 9500GT
Linux Mint 9 Isadora , Win7 64Bit

daysleeper

  • Stálý člen
  • **
  • Příspěvků: 1206
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #12 kdy: 29 Června 2011, 18:25:26 »
no tak ID_FS_LABEL v tom vypise neni, protoze LABEL ma jen oddil, ne cely disk (sdd)
musis se podivat na info k oddilu (sdd1?)

pekny popis tvoreni pravidel zde
http://reactivated.net/writing_udev_rules.html
i kdyz nektere prikazy jsou jiz zastarale (dnes se na "vse" pouziva udevadm) 

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #13 kdy: 29 Června 2011, 20:22:24 »
Odkazovat na atributy můžeš konstrukcí %s{attr_name}, udev by měl probrat i atributy rodičů odpovídající podmínce.

karlitos

  • Stálý člen
  • **
  • Příspěvků: 1057
  • Bioinformatics - solutions in-silico
    • homepage
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #14 kdy: 05 Července 2011, 08:50:45 »
Diky za tipy podiuvam se na to. Zatim ale valcim s problemem, ze pravidlo pro pripojovani USB mi nefunguje zcela dobre pro NTFS jednotky. Adresar se vytvori - a pri vytazeni i smaze - spravne, ale neprovede se mount. A ja hlavne nevim jak to poradne debugovat, zvysil jsem verbosity udev, ale ve /var/log/messages se nic nezobrazi. Tady je to pravidlo, vicemene presne to co je na te Arch-Wiki :
Kód: [Vybrat]
# start at sdb to ignore the system hard drive
KERNEL!="sd[b-z]*", GOTO="my_media_automount_end"
ACTION=="add", PROGRAM!="/sbin/blkid %N", GOTO="my_media_automount_end"

# import some useful filesystem info as variables
IMPORT{program}="/sbin/blkid -o udev -p %N"

# get the label if present, otherwise assign one based on device/partition
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"

# create the dir in /media and symlink it to /mnt
ACTION=="add", RUN+="/bin/mkdir -p '/media/%E{dir_name}'"

# global mount options
ACTION=="add", ENV{mount_options}="relatime"
# filesystem-specific mount options (777/666 dir/file perms for ntfs/vfat)
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},gid=100,dmask=000,fmask=111,utf8"

# automount ntfs filesystems using ntfs-3g driver
ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", RUN+="/bin/mount -t ntfs-3g -o %E{mount_options} /dev/%k '/media/%E{dir_name}'"
# automount all other filesystems
ACTION=="add", ENV{ID_FS_TYPE}!="ntfs", RUN+="/bin/mount -t auto -o %E{mount_options} /dev/%k '/media/%E{dir_name}'"

# clean up after device removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l '/media/%E{dir_name}'", RUN+="/bin/rmdir '/media/%E{dir_name}'"

# exit
LABEL="my_media_automount_end"root@server-berlinet:/etc/udev/rules.d#
Vfat/ext filesystemy funguji jak po masle a krome pripojeni funguje vsechno ostatni takze nepredpokladam ze by mel byt problem jinde. Uz sem ten skript prohlizeol asi 50krat a nemuzu najit chybu. Rucne provedeny (u)mount funguje bez problemu myslim ze jsem zkousel i pouzit ten prikaz z toho skriptu - tedy doplnil podminky a dal ho do konzole a pripojeni probehlo bez problemu.
Zkusim tu radkou s tim mountem vykomentovat a odstranit vsechny ty podminky jestli to pomuze ale jinak uz nevim.
Lenovo ThinkCentre A61 912073G
Athlon X2 5000+ 4GB RAM Nvidia Geforce 9500GT
Linux Mint 9 Isadora , Win7 64Bit

karlitos

  • Stálý člen
  • **
  • Příspěvků: 1057
  • Bioinformatics - solutions in-silico
    • homepage
Re: jak na automount USB na Ubuntu bez grafickeho prostredi
« Odpověď #15 kdy: 05 Července 2011, 13:56:21 »
Zahada vyresena, z me neznameho duvodu chybel balik ntfs-3g, pak mi ale zustava skryto jak se mountoval ten ntfs oddil predtim, kdyz jsem to delal manualne - a mozna to radsi ani vedet nechci. Takze se ted muzu soustredit na vylepseni tech pravidel aby mi to v pripade neexistence labelu nepripojovalo zarizeni jen podle/dev/sxx...
Lenovo ThinkCentre A61 912073G
Athlon X2 5000+ 4GB RAM Nvidia Geforce 9500GT
Linux Mint 9 Isadora , Win7 64Bit

 

Provoz zaštiťuje spolek OpenAlt.