[pmount] monter des disques dur externes

Reconnaissance et configuration du matériel / kernel linux
Répondre
Avatar de l’utilisateur
gyo
Maître du Kyudo
Messages : 1049
Inscription : jeu. 19 avr. 2007, 10:40
Localisation : Nantes (44)

[pmount] monter des disques dur externes

Message par gyo »

Bonjour,

Je voudrai monter des disques dur externes usb avec pmount, or voici l'erreur que je rencontre quand je lance pmount avec le dev sda1 :

Code : Tout sélectionner

$ pmount sda1
Erreur : le périphérique /dev/sda1 n'est pas amovible
pmount en mode debug :

Code : Tout sélectionner

$ pmount --debug sda1
sda1 cannot be resolved to a proper device node
trying to prepend '/dev/' to device argument, now /dev/sda1
mount point to be used: /media/sda1
no iocharset given, current locale encoding is UTF-8
locale encoding uses UTF-8, setting iocharset to 'utf8'
Cleaning lock directory /var/lock/pmount_dev_sda1
device_whitelist: checking /etc/pmount.allow...
device_whitlisted(): nothing matched, returning 0
find_sysfs_device: looking for sysfs directory for device 8:1
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram0 (1:0)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram1 (1:1)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram2 (1:2)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram3 (1:3)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram4 (1:4)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram5 (1:5)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram6 (1:6)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram7 (1:7)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram8 (1:8)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram9 (1:9)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram10 (1:10)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram11 (1:11)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram12 (1:12)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram13 (1:13)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram14 (1:14)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/ram15 (1:15)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/loop0 (7:0)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/loop1 (7:1)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/loop2 (7:2)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/loop3 (7:3)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/loop4 (7:4)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/loop5 (7:5)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/loop6 (7:6)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/loop7 (7:7)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/hda (3:0)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/hdc (22:0)
find_sysfs_device: checking whether /dev/sda1 is on /sys/block/sda (8:0)
find_sysfs_device: major device numbers match
find_sysfs_device: minor device numbers do not match, checking partitions...
find_sysfs_device: checking whether device /dev/sda1 matches partition 8:0
find_sysfs_device: checking whether device /dev/sda1 matches partition 8:1
find_sysfs_device: -> partition matches, belongs to block device /sys/block/sda
device_removable: corresponding block device for /dev/sda1 is /sys/block/sda
get_blockdev_attr: value of /sys/block/sda/removable == 0
find_bus_ancestry: device 3:0:0:0 (path /sys/devices/pci0000:00/0000:00:0c.2/usb3/3-2/3-2:1.0/host3/target3:0:0/3:0:0:0, bus ) does not match, trying parent
find_bus_ancestry: device target3:0:0 (path /sys/devices/pci0000:00/0000:00:0c.2/usb3/3-2/3-2:1.0/host3/target3:0:0, bus ) does not match, trying parent
find_bus_ancestry: device host3 (path /sys/devices/pci0000:00/0000:00:0c.2/usb3/3-2/3-2:1.0/host3, bus ) does not match, trying parent
find_bus_ancestry: device 3-2:1.0 (path /sys/devices/pci0000:00/0000:00:0c.2/usb3/3-2/3-2:1.0, bus ) does not match, trying parent
find_bus_ancestry: device 3-2 (path /sys/devices/pci0000:00/0000:00:0c.2/usb3/3-2, bus ) does not match, trying parent
find_bus_ancestry: device usb3 (path /sys/devices/pci0000:00/0000:00:0c.2/usb3, bus ) does not match, trying parent
find_bus_ancestry: device 0000:00:0c.2 (path /sys/devices/pci0000:00/0000:00:0c.2, bus ) does not match, trying parent
find_bus_ancestry: device pci0000:00 (path /sys/devices/pci0000:00, bus ) does not match, trying parent
find_bus_ancestry: dev == NULL, fail
Erreur : le périphérique /dev/sda1 n'est pas amovible
policy check failed
En analysant cette sortie, je peux tout de suite voir ce qui ne va pas, à savoir :

Code : Tout sélectionner

get_blockdev_attr: value of /sys/block/sda/removable == 0
Si je veux forcer le périph' en mode amovible, ça fonctionne pas :

Code : Tout sélectionner

# echo -n "1" >/sys/block/sda/removable
bash: /sys/block/sda/removable: Permission non accordée
(commande lancé en root)

En effet, si c'était possible j'aurai pu faire une règle udev de ce style :

Code : Tout sélectionner

KERNEL=="sd*", SUBSYSTEM=="block", SUBSYSTEMS=="usb", ATTR{removable}="1"
Mais, à quoi bon....

Avez-vous une idée comment faire pour faire entendre au kernel que tout périphérique de block sur branché sur port USB est un périphérique amovible ?

Ça marche avec des clés usb flash, pourquoi il me fait ièch avec les disques durs usb ?

Je précise que je n'utilise pas d'environnement gnome, ni kde et que j'envisage sans doute d'utiliser ivman. Mais je veux d'abord que ça marche avec pmount.

Je sais que l'on peut utiliser /etc/pmount.allow, mais si c'est pour faire du cas par cas c'est bof.
D'autre part, je pourrais très bien faire un règle udev qui me dit que tel disque avec tel S/N je le nomme dans dev avec un ptit nom puis le mettre dans pmount.allow. Mais je veux que ça fonctionne avec n'importe quel disque dur externe (ex: celui d'un pote) et tout ça en user non privilégié.

D'avance, merci pour toutes réponses que vous pourrez m'apporter !
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

salut, l'attribut removable a sa part de responsabilité, mais normalement pmount continue pour voir s'il est branché en usb par exemple
par contre, ce qui me parait bizarre, c'est le /dev/sda, tes disques sont reconnues en hd?

sinon regarde si tu rajoutes le device à /etc/pmount.allow ou en utilisant pmount-hal (les infos hal pouvant être modifiés)
Avatar de l’utilisateur
gyo
Maître du Kyudo
Messages : 1049
Inscription : jeu. 19 avr. 2007, 10:40
Localisation : Nantes (44)

Message par gyo »

tuxce a écrit :par contre, ce qui me parait bizarre, c'est le /dev/sda, tes disques sont reconnues en hd?

sinon regarde si tu rajoutes le device à /etc/pmount.allow ou en utilisant pmount-hal (les infos hal pouvant être modifiés)
Oui, mon disque dur interne est reconnu en hd puisque j'utilise le hook ide au niveau initcpio.
Et je ne veux pas de pmount.allow (cf mon post)

et pmount-hal me donne ça :

Code : Tout sélectionner

 $ pmount-hal /dev/sda1
Erreur : le périphérique /dev/sda1 n'est pas amovible
Erreur: impossible d'exécuter pmount
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

gyo a écrit : Et je ne veux pas de pmount.allow (cf mon post)
j'avais zappé la phrase ;)

est ce que tu utilises une périphérique spécial pour les ports usb?
parce que normalement, pmount s'il ne trouve pas l'attribut removable à 1 teste les bus parent du périphérique et s'il trouve de l'usb, du firewire, un lecteur de cartes ou du pcmcia, il considère que c'est amovible.
par exemple, pour un disque à moi, en montant dans la hierarchie du périphérique:

Code : Tout sélectionner

find_bus_ancestry: device 3-2:1.0 (path /sys/devices/pci0000:00/0000:00:1d.7/usb3/3-2/3-2:1.0, bus usb) matches query, success
à creuser peut etre...

pour pmount-hal, je viens de voir que c'est juste un wrapper de pmount, il ne fait que transformer un udi en fichier block, donc, ca ne sert pas à grand chose.
Avatar de l’utilisateur
gyo
Maître du Kyudo
Messages : 1049
Inscription : jeu. 19 avr. 2007, 10:40
Localisation : Nantes (44)

Message par gyo »

Éh bien non, je ne crois pas, j'ai en ma possession un boîtier externe pour 3"5 et un autre boîtier pour 2"5. Et pour c'est 2 périph là j'ai ce problème avec pmount.
J'ai un portable et une tour avec archlinux, ça déconne avec les 2 :?

En effet, je vois dans les messages de debug de pmount que nul part il voit que c'est sur du bus usb, il met "bus" et que dalle après.

pourtant voici ce que je vois quand je tape la commande udevinfo :

Code : Tout sélectionner

]$ udevinfo -a -p /sys/block/sda/

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/block/sda':
    KERNEL=="sda"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{dev}=="8:0"
    ATTR{range}=="16"
    ATTR{removable}=="0"
    ATTR{size}=="625142448"
    ATTR{stat}=="      19      135      314      830        0        0        0        0        0      733      830"
    ATTR{capability}=="12"

  looking at parent device '/devices/pci0000:00/0000:00:0c.2/usb3/3-1/3-1:1.0/host0/target0:0:0/0:0:0:0':
    KERNELS=="0:0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{device_blocked}=="0"
    ATTRS{type}=="0"
    ATTRS{scsi_level}=="3"
    ATTRS{vendor}=="SAMSUNG "
    ATTRS{model}=="HM320JI         "
    ATTRS{rev}=="    "
    ATTRS{state}=="running"
    ATTRS{timeout}=="60"
    ATTRS{iocounterbits}=="32"
    ATTRS{iorequest_cnt}=="0x1a"
    ATTRS{iodone_cnt}=="0x1a"
    ATTRS{ioerr_cnt}=="0x0"
    ATTRS{modalias}=="scsi:t-0x00"
    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:0c.2/usb3/3-1/3-1:1.0/host0/target0:0:0':
    KERNELS=="target0:0:0"
    SUBSYSTEMS==""
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:0c.2/usb3/3-1/3-1:1.0/host0':
    KERNELS=="host0"
    SUBSYSTEMS==""
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:0c.2/usb3/3-1/3-1:1.0':
    KERNELS=="3-1: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{modalias}=="usb:v04FCp0C15dF615dc00dsc00dp00ic08isc06ip50"
    ATTRS{interface}=="Bulk Only Interface"

  looking at parent device '/devices/pci0000:00/0000:00:0c.2/usb3/3-1':
    KERNELS=="3-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{dev}=="189:257"
    ATTRS{configuration}=="Bulk Only Configuration"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="c0"
    ATTRS{bMaxPower}=="  2mA"
    ATTRS{urbnum}=="106"
    ATTRS{idVendor}=="04fc"
    ATTRS{idProduct}=="0c15"
    ATTRS{bcdDevice}=="f615"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="480"
    ATTRS{busnum}=="3"
    ATTRS{devnum}=="2"
    ATTRS{version}==" 2.00"
    ATTRS{maxchild}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Sunplus Technology Co.,Ltd."
    ATTRS{product}=="USB to Serial-ATA bridge"
    ATTRS{serial}=="FAFFFFF0FFF16FF10F501592"

  looking at parent device '/devices/pci0000:00/0000:00:0c.2/usb3':
    KERNELS=="usb3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{dev}=="189:256"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bMaxPower}=="  0mA"
    ATTRS{urbnum}=="40"
    ATTRS{idVendor}=="0000"
    ATTRS{idProduct}=="0000"
    ATTRS{bcdDevice}=="0206"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="480"
    ATTRS{busnum}=="3"
    ATTRS{devnum}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{maxchild}=="5"
    ATTRS{quirks}=="0x0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Linux 2.6.24-ARCH ehci_hcd"
    ATTRS{product}=="EHCI Host Controller"
    ATTRS{serial}=="0000:00:0c.2"
    ATTRS{authorized_default}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:0c.2':
    KERNELS=="0000:00:0c.2"
    SUBSYSTEMS=="pci"
    DRIVERS=="ehci_hcd"
    ATTRS{vendor}=="0x1033"
    ATTRS{device}=="0x00e0"
    ATTRS{subsystem_vendor}=="0x104d"
    ATTRS{subsystem_device}=="0x8175"
    ATTRS{class}=="0x0c0320"
    ATTRS{irq}=="11"
    ATTRS{local_cpus}=="f"
    ATTRS{modalias}=="pci:v00001033d000000E0sv0000104Dsd00008175bc0Csc03i20"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}==""

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
Donc par rapport au message de pmount, il aurait du voir que dès "/sys/devices/pci0000:00/0000:00:0c.2/usb3/3-2/3-2:1.0", il aurait vu que c'était sur port USB (SUBSYSTEMS=="usb"). Alors donc, j'en déduis que c'est pmount qui déconne dans cette histoire ?!

J'ai la dernière version de sysfsutils, hal et pmount... C'est quoi ce beans ! :shock:
Avatar de l’utilisateur
warnaud
Maître du Kyudo
Messages : 1640
Inscription : ven. 11 août 2006, 17:05
Localisation : Rolle (CH)

Message par warnaud »

Question à 2€:
- ton user est bien dans le groupe storage?
Soluce à 2c :
- avec sudo ?
Plus ça rate, plus ça a de chance de réussir. En somme, un succès n'est qu'une erreur qui a finit par réussir (même par erreur). Ne déséspérez donc pas et perseverez. Utilisez La Rache™
Patientia quod lard quod barrus planto diligo ut licentia
—¤÷(`[¤*Powered By *¤]´)÷¤—
Archlinux ~ Fvwm ~ Irssi ~ URxvt
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

warnaud a écrit : - avec sudo ?
en même temps, autant utiliser "mount" :P
Avatar de l’utilisateur
warnaud
Maître du Kyudo
Messages : 1640
Inscription : ven. 11 août 2006, 17:05
Localisation : Rolle (CH)

Message par warnaud »

yes en faisant sudo mount :p ... oui bon d'acord ;) (j'avais marqué 2c :D)
Plus ça rate, plus ça a de chance de réussir. En somme, un succès n'est qu'une erreur qui a finit par réussir (même par erreur). Ne déséspérez donc pas et perseverez. Utilisez La Rache™
Patientia quod lard quod barrus planto diligo ut licentia
—¤÷(`[¤*Powered By *¤]´)÷¤—
Archlinux ~ Fvwm ~ Irssi ~ URxvt
Avatar de l’utilisateur
gyo
Maître du Kyudo
Messages : 1049
Inscription : jeu. 19 avr. 2007, 10:40
Localisation : Nantes (44)

Message par gyo »

Ouaip, je suis dans le groupe storage...
Non mais la question c'est pourquoi pmount il arrive pas à "voir" le bus. En remontant dans la hiérarchie il aurait du voir que c'est sur usb et que le système qui gère les usb est sur le bus ide..
Mais là, il met usb avec rien à côté. C'est là que je comprend po.....
Avatar de l’utilisateur
warnaud
Maître du Kyudo
Messages : 1640
Inscription : ven. 11 août 2006, 17:05
Localisation : Rolle (CH)

Message par warnaud »

perso tous mes dd usb marchent avec pmount sauf un ... même délire alors je le monte via mon amis root :) (il est hyper balaise)
Plus ça rate, plus ça a de chance de réussir. En somme, un succès n'est qu'une erreur qui a finit par réussir (même par erreur). Ne déséspérez donc pas et perseverez. Utilisez La Rache™
Patientia quod lard quod barrus planto diligo ut licentia
—¤÷(`[¤*Powered By *¤]´)÷¤—
Archlinux ~ Fvwm ~ Irssi ~ URxvt
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Message par tuxce »

gyo a écrit : Non mais la question c'est pourquoi pmount il arrive pas à "voir" le bus.
c'est plutot du à la librairie sysfsutils qui ne retourne pas le bon bus, à mon avis, vu qu'elle date de 2006, ca m'étonnerait pas qu'il y ait eu une évolution du kernel non prise en compte
Répondre