Debian fórum

Dotazy => Všeobecná podpora => Téma založeno: freebeart kdy 07. 06. 2013, 16:37:45

Název: Problém s unmount USB zariadení
Přispěvatel: freebeart kdy 07. 06. 2013, 16:37:45
Zdravím páni,

Prosím o radu.

Xfce4-mount-plugin automaticky pripojí disk, potom zvolím pravým tlačidlom vysunúť disk, disk sa síce vysunie, ale vypíše túto hlášku. (vid. obrázok)
Myslím že problém je v právach, ak napíšem do shellu pod superuserom "unmount usb0 v /etc/media", tak sa bez problému unmoutne. Len cez plochu vyhadzuje tie nezmysli.
Čo s tým? Ďakujem veľmi pekne za rady.

http://postimg.org/image/3mxdhtxor
Název: Re: Problém s unmount USB zariadení
Přispěvatel: Petr Gajdůšek kdy 07. 06. 2013, 17:22:04
Ahoj,

pokud vím, tak xfce4-mount-plugin disky samo nepřipojuje, musíš kliknout na ikonku. Takže je možné, že disk přípojilo něco jiného (udisks?) nebo dokonec jiný uživatel?

Jaký je obsah /etc/fstab?
Co vypíše mount, když je disk připojený?
Název: Re: Problém s unmount USB zariadení
Přispěvatel: Petr Gajdůšek kdy 07. 06. 2013, 17:39:02
Podíval jsem se zběžně na ten plugin:

1) Disky hledá v /etc/fstab a v /etc/mtab, tzn., že aby se disk zobrazil musí být buď již připojený, nebo uveden v /etc/fstab.
Takže by jsi měl zkontrolovat, jestli v /etc/fstab je  uveden a pokud ano, s jakými volbami. Pokud se např. připojuje při startu (připojuje ho root) je tam nutná volba "users", abys ho mohl ty odpojit. Pokud je tam volba noauto, měla by stačit volba user - pokud ho ty připojíš, jen ty ho můžeš odpojit.

2) Připojuje ho něco jiného, musíš zjistit co.

3) V nastavení xfce4-mount-plugin se dají nastavit programy pro připojení i odpojení, zkontroloval bych to taky.
Název: Re: Problém s unmount USB zariadení
Přispěvatel: freebeart kdy 07. 06. 2013, 19:08:03
Pani tu je vypis...

1.Po vlozeni disku sa disk automaticky pripoji. Da sa to nastavit v menu nastavenia, vymenitelne zariadenia. Ako vidite volby user a noauto tam su, ale problem s unmount stale trva.

2. Kde je nastavenie pre xfce4-mount-plugin?

Ďakujem

# /etc/fstab: static file system information.
#
# Use 'blkid' 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/sda1 during installation
UUID=3a601668-573e-4cf8-862a-2ab36d285259 /               ext3    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=91482fe2-cdb4-4a2b-afd8-ca4c22733e12 none            swap    sw              0       0
/dev/sdb1       /media/usb0     auto    rw,user,noauto  0       0



rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,relatime,size=10240k,nr_inodes=999744,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=801008k,mode=755 0 0
/dev/disk/by-uuid/3a601668-573e-4cf8-862a-2ab36d285259 / ext3 rw,relatime,errors=remount-ro,barrier=1,data=ordered 0 0
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
tmpfs /run/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=2387620k 0 0
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
/dev/sdb1 /media/usb0 vfat rw,nosuid,nodev,noexec,relatime,uid




Název: Re: Problém s unmount USB zariadení
Přispěvatel: Petr Gajdůšek kdy 08. 06. 2013, 08:22:34
Tak to vypadá, že xfce4-mount-plugin nepoužíváš..... Vypadá nějak takhle: http://s12.postimg.org/flj0x1309/xfce4_mount_plugin.jpg (http://postimg.org/image/flj0x1309/)

Citace/dev/sdb1 /media/usb0 vfat rw,nosuid,nodev,noexec,relatime,uid
Ta řádka z "mount" není úplná, budou tam důležité volby, například jaké je uid a jestli byl pro připojení použité udisks/udisks2.

O automatické připojování, jak ho popisuješ, se stará thunar-volman.  Ten používá GIO (z GLib), a to by mělo používat GVFS. Zkontroluj, že je nainstalovaný balík gvfs. GVFS obsahuje řadu "monitorů" disků, defakto wrapperů kolem knihoven umožňujících práci s disky, slouží i pro připojování a odpojování. Který monitor je použitý závisí na verzi. V unstable to je  udisks2, ve wheezy by to asi měl být gdu (používající knihovnu libgdu0 z gnome-disk-utility, která použije udisks). Ještě předtím to byl asi hal.

O odpojování se stará samotný thunar, ovšem opět použije GIO, takže to opět jde přes GVFS, a měl tudíž se použije stejný řetězec, jinak disk asi neodpojí. Například pokud disk připojíš pomocí udisks, neodpojíš ho pomocí udisks2. Do toho všeho se míchá ještě policykit.

Balík gvfs závisí na všem potřebném, snad ještě zkontroluj policykit-gnome-1.

Takže:
1) Jaký Debian používáš?
2) Vlož znovu výpis z mount.
3) Je nainstalovaný gvfs, policykit-gnome-1, udisks2 nebo udisks ?
4) Vlož výpis dbus-monitor při připojení disku do USB, zjistíš jaký monitor se používá. Předtím radši zabij tracker, je upovídaný. pkill -u $UID tracker
Název: Re: Problém s unmount USB zariadení
Přispěvatel: Petr Gajdůšek kdy 08. 06. 2013, 08:50:59
Citace/dev/sdb1       /media/usb0     auto    rw,user,noauto  0       0

Já bych to dal z fstab úplně pryč. Pokud ti nevadí, že se asi změní mountpoint.
Název: Re: Problém s unmount USB zariadení
Přispěvatel: freebeart kdy 08. 06. 2013, 09:52:56
Ahoj Peter,

Ďakujem za vyčerpávajúcu odpoveď.

1) verzia 3.2.0-42 amd64 1 SMP Debian 3.2.41-2 x86_64 (wheezy).
2)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=999744,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=801008k,mode=755)
/dev/disk/by-uuid/3a601668-573e-4cf8-862a-2ab36d285259 on / type ext3 (rw,relatime,errors=remount-ro,barrier=1,data=ordered)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=2387620k)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sdb1 on /media/usb0 type vfat (rw,nosuid,nodev,noexec,relatime,uid=1000,fmask=0022,dmask=0022,codepage=cp437,iocharset=utf8,shortname=mixed,errors=remount-ro,user=lucas)

3) ano všetky sú nainštalované

4)
Dbus-monitor pod  superuserom
Failed to open connection to session bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

Dbus-monitor normal user
signal sender=org.freedesktop.DBus -> dest=:1.54 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.54"
method call sender=:1.54 -> dest=org.freedesktop.DBus serial=3 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "eavesdrop=true,type='method_call'"
method call sender=:1.54 -> dest=org.freedesktop.DBus serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "eavesdrop=true,type='method_return'"
method call sender=:1.54 -> dest=org.freedesktop.DBus serial=5 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "eavesdrop=true,type='error'"

LF

P.S. pod superuserom vsetko funguje myslim ze by stacilo nejak pridat uzivatela lucas(jediny uzivatel) aby mal prava pre mount a umount. Ale neviem ako. Porad prosim.
Název: Re: Problém s unmount USB zariadení
Přispěvatel: Petr Gajdůšek kdy 08. 06. 2013, 15:35:34
Ten dbus-monitor jsem myslel pustit po uživatelem lucas a behěm toho, co je puštěn připojit disk. Mělo by tam toho být víc. Předtím zabij tracker, aby nezahlcoval výpis.

Jinak mi podle toho, co jsi napsal, přijde vše v pořádku.

Ten disk nejde odpojit pomocí umount pod uživatelem lucas, jen pod rootem?

Jinak jestli se správně použil pro připojení udisks, tak si můžeš zkusit povolit odpojování (nesystémových) disků, které připojil jiný uživatel takto:

Vytvořit v /etc/polkit-1/localauthority/50-local.d/ třeba soubor
70umount.pkla a do něho přidat


[org.freedesktop.udisks.filesystem-unmount-others]
Identity=unix-user:lucas
Action=org.freedesktop.udisks.filesystem-unmount-others
ResultAny=auth_admin
ResultInactive=auth_admin
ResultActive=yes

Název: Re: Problém s unmount USB zariadení
Přispěvatel: freebeart kdy 08. 06. 2013, 18:43:17
Disk ide pripojiť aj odpojit pomocou mount/umount pod uživateľom lucas aj root len napísaním prikazu cez shell.
sudo mount /dev/sdc1 /media/usb0
sudo umount /dev/sdc1 /media/usb0

Problém je že:
Disk sa sice odpojí s pravým tlačidlom myšky zadaním voľby Vysunút zvazok ale vypíše spomenutú hlášku Not Authorized..
Čiže niekde je chyba, a ja len chcem vedieť kde a prečo a ako sa jej zbaviť.

A tento stav sa komplikuje o to že, mám rôzne USB klúče NTFS. FAT32. Teraz sa bavíme o FAT32, NTFS nefunguje vôbec. Ale to potom.

PRIPOJENIE A ODPOJENIE DISKU DBUS-MONITOR

member=VolumeMount
   string "0x1b56460"
   string ""
   uint32 0
   string "6740:15"
signal sender=:1.25 -> dest=(null destination) serial=228 path=/org/gtk/Private/RemoteVolumeMonitor; interface=org.gtk.Private.RemoteVolumeMonitor; member=VolumeChanged
   string "org.gtk.Private.GduVolumeMonitor"
   string "0x1b56460"
   struct {
      string "0x1b56460"
      string "16 GB Filesystem"
      string ". GThemedIcon drive-removable-media-usb drive-removable-media drive-removable drive"
      string ""
      string ""
      boolean true
      boolean false
      string "0x1b44b80"
      string "0x1bd60c0"
      array [
         dict entry(
            string "unix-device"
            string "/dev/sdb1"
         )
         dict entry(
            string "uuid"
            string "4C88-5F36"
         )
      ]
      string ""
      array [
      ]
   }
signal sender=:1.25 -> dest=(null destination) serial=229 path=/org/gtk/Private/RemoteVolumeMonitor; interface=org.gtk.Private.RemoteVolumeMonitor; member=MountAdded
   string "org.gtk.Private.GduVolumeMonitor"
   string "0x1bd60c0"
   struct {
      string "0x1bd60c0"
      string "16 GB Filesystem"
      string ". GThemedIcon drive-removable-media-usb drive-removable-media drive-removable drive"
      string ""
      string "file:///media/usb0"
      boolean true
      string "0x1b56460"
      array [
      ]
      string ""
      array [
      ]
   }
method return sender=:1.25 -> dest=:1.19 reply_serial=31
method call sender=:1.62 -> dest=:1.136 serial=30 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify
   string "xfdesktop"
   uint32 0
   string "drive-removable-media-usb"
   string "Zápis dát do zariadenia"
   string "Dáta je potrebné zapísať na zariadenie "16 GB Filesystem" pred jeho odobratím. Neodoberajte médium ani neodpájajte jednotku"
   array [
   ]
   array [
      dict entry(
         string "urgency"
         variant             byte 2
      )
   ]
   int32 0
method return sender=:1.136 -> dest=:1.62 reply_serial=30
   uint32 5
method call sender=:1.19 -> dest=org.gtk.Private.GduVolumeMonitor serial=32 path=/org/gtk/Private/RemoteVolumeMonitor; interface=org.gtk.Private.RemoteVolumeMonitor; member=DriveEject
   string "0x1b44b80"
   string ""
   uint32 0
   string ""
signal sender=:1.25 -> dest=(null destination) serial=231 path=/org/gtk/Private/RemoteVolumeMonitor; interface=org.gtk.Private.RemoteVolumeMonitor; member=MountPreUnmount
   string "org.gtk.Private.GduVolumeMonitor"
   string "0x1bd60c0"
   struct {
      string "0x1bd60c0"
      string "16 GB Filesystem"
      string ". GThemedIcon drive-removable-media-usb drive-removable-media drive-removable drive"
      string ""
      string "file:///media/usb0"
      boolean true
      string "0x1b56460"
      array [
      ]
      string ""
      array [
      ]
   }
signal sender=:1.25 -> dest=(null destination) serial=232 path=/org/gtk/Private/RemoteVolumeMonitor; interface=org.gtk.Private.RemoteVolumeMonitor; member=VolumeChanged
   string "org.gtk.Private.GduVolumeMonitor"
   string "0x1b56460"
   struct {
      string "0x1b56460"
      string "16 GB Filesystem"
      string ". GThemedIcon drive-removable-media-usb drive-removable-media drive-removable drive"
      string ""
      string ""
      boolean true
      boolean false
      string "0x1b44b80"
      string ""
      array [
         dict entry(
            string "unix-device"
            string "/dev/sdb1"
         )
         dict entry(
            string "uuid"
            string "4C88-5F36"
         )
      ]
      string ""
      array [
      ]
   }
signal sender=:1.25 -> dest=(null destination) serial=233 path=/org/gtk/Private/RemoteVolumeMonitor; interface=org.gtk.Private.RemoteVolumeMonitor; member=MountChanged
   string "org.gtk.Private.GduVolumeMonitor"
   string "0x1bd60c0"
   struct {
      string "0x1bd60c0"
      string "16 GB Filesystem"
      string ". GThemedIcon drive-removable-media-usb drive-removable-media drive-removable drive"
      string ""
      string "file:///media/usb0"
      boolean true
      string ""
      array [
      ]
      string ""
      array [
      ]
   }
signal sender=:1.25 -> dest=(null destination) serial=234 path=/org/gtk/Private/RemoteVolumeMonitor; interface=org.gtk.Private.RemoteVolumeMonitor; member=MountRemoved
   string "org.gtk.Private.GduVolumeMonitor"
   string "0x1bd60c0"
   struct {
      string "0x1bd60c0"
      string "16 GB Filesystem"
      string ". GThemedIcon drive-removable-media-usb drive-removable-media drive-removable drive"
      string ""
      string "file:///media/usb0"
      boolean true
      string ""
      array [
      ]
      string ""
      array [
      ]
   }
error sender=:1.25 -> dest=:1.19 error_name=org.glib.GError.gdu_2Derror_2Dquark.c7 reply_serial=32
  [b] string "Not Authorized"[/b]
method call sender=:1.62 -> dest=:1.136 serial=31 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=CloseNotification
   uint32 5
signal sender=:1.136 -> dest=(null destination) serial=25 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=NotificationClosed
   uint32 5
   uint32 3
method return sender=:1.136 -> dest=:1.62 reply_serial=31


EDIT Ota Trkola: Kódy, výpisy atd patří mezi tagy CODE, respektuj to prosím.

Ok. budem. Soory
Název: Re: Problém s unmount USB zariadení
Přispěvatel: Petr Gajdůšek kdy 12. 06. 2013, 08:32:23
Ahoj,

až dneska jsem se dostal k Wheezy.

1)
Pochopil jsem to tedy tak, že disk se odpojí, ale zahlásí chybu. Pravděpodobně proto, že selže eject (metoda DriveEject na udisks). Tedy pokud klikneš pravým tlačítkem na ikonu připojeného disku a zvolíš "Vysunout", zobrazí se chyba, ale disk již připojen není - není ve výpisu mount, ale device files /dev/sdb a /dev/sdb1 jsou stále přítomny, výpis udisks --enumerate je také obsahuje, je to tak?

Pokud ano, co udělá v tento okamžik udisks --eject /dev/sdb, pokud neselže zmizí device files z /dev/?

Není mi jasná jedna věc, ale nechtěl jsem to psát, dokud jsem to nemohl ověřit na wheezy. Ten disk se ti skutečně připojí ihned po vložení, nebo až tehdy, když klikneš na jeho ikonku? Vzhledem k tomu, že je uveden v /etc/fstab a v mount mu chybí helper, tak si myslím, že se automaticky nepřipojuje. Ale to by nemělo mít na odpojování vliv. Každopádně bych vyzkoušel ho odstranit z /etc/fstab... sice to asi nepomůže, ale zkusil bych to proto, že se změní mountpoint, který si vytvoří po připojení, a sníží se pravděpodobnost, že s ním manipuluje ještě něco jiného (?)

Všechny příkazy spouštěj z terminálu v rámci sezení XFCE a normálně pod svým uživatelem.

2)  Co ukáže (je jedno kdy to pustíš)

pkaction --action-id org.freedesktop.udisks.drive-eject --verbose


3) Co po připojení disku ukáže

udisks --dump


4) Co po připojení disku ukáže
PID=$$; sudo bash -c "pkcheck --process $PID --action-id org.freedesktop.udisks.drive-eject --detail device /org/freedesktop/UDisks/devices/sdb1; echo $?"

5) Odpojí tohle po připojení disku bez chyby oddíl a provede se i eject (zmizí soubory /dev/sdb* ?

udisks --unmount /dev/sdb1
udisks --eject /dev/sdb


6) Před připojením konektoru do USB, spusť udisks --monitor-detail a pošli výpis, třeba to ale nebude nutné a chybu odhalí předchozí body.

Hodně štěstí.
Název: Re: Problém s unmount USB zariadení
Přispěvatel: Petr Gajdůšek kdy 12. 06. 2013, 08:51:23
Jinak pokud se odpojí a neprovede se jen "eject", tak by ta chyba měla být neškodná, a disk můžeš normálně vytáhnout.

K tomu ntfs, které jsi zmiňoval, já žádný disk s ntfs nemám, ale pamatuji si že ovladač ntfs-3g používal fuse, a neprivilegovaní uživatelé ho mohli připojit pouze s interní fuse knihovnou ntfs-3g. V debianu tohle bývalo při kompilace zakázáno a používala se systémová fuse knihovna, takže ntfs disky mohl připojovat jen root. Ale je to už několik let a podrobnosti si nepamatuji. Možná o tom něco najdeš na bugs.debian.org  Ani už nevím jestli se stále používá ntfs-3g, těch ovladačů bylo víc.

EDIT: připojování ntfs se tu řešilo ve vláknu https://forum.debian-linux.cz/index.php?topic=1067, příslušný bug report: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=631504, tehdy bylo jediným řešením překompilovat ntfs-3g s --with-fuse=internal nebo ho připojovat jako root (třeba při bootu), nevím jestli se něco změnilo.
Název: Re: Problém s unmount USB zariadení
Přispěvatel: Petr Gajdůšek kdy 12. 06. 2013, 10:44:05
NTFS: Prohlídl jsem si bugreport, prý pomůže odstranit příslušný řádek z fstab.
A být ve skupině fuse:
sudo adduser lucas fuse