Modification de règle udev

Modification de règle udev - Logiciels - Linux et OS Alternatifs

Marsh Posté le 03-01-2009 à 22:25:13    

Bonjour,
 
Depuis un moment j'ai un HDD externe branché en e-sata. J'ai créé une règle udev afin de l'identifier de manière unique (et de ne pas devoir à chaque fois voir s'il est reconnu comme sda, sdb, sdc ,... ).  
 
Voilà la règle :  

Code :
  1. ATTRS{model}=="SAMSUNG HD502IJ ", SYMLINK+="samsung_backup%n"


Et ça marche bien.
 
Petit problème : Si j'allume le HDD externe au moment du boot, il se retrouve en sda et donc mon système ne boot plus. Pour le moment j'ai donc "résolu" le problème en prenant garde qu'il soit toujours éteint au moment du boot. Mais ce n'est pas trop pratique.
 
Comment faire pour qu'il soit toujours uniquement présent en /dev/samsung_backup ?
 
J'ai bien tenté de modifier la règle qui créée les différents /dev/sd* :
 

Code :
  1. ACTION=="add", SUBSYSTEM=="block", ATTRS{model}!="SAMSUNG HD502IJ ",KERNEL=="[sh]d[a-z]", RUN+="/etc/init.d/hdparm hotplug"


 
 
Mais ça n'a pas marché.
 
Est-ce que vous avez des idées?
 
Merci beaucoup
 
Edit: Faute de typo


Message édité par esox_ch le 04-01-2009 à 14:33:22

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 03-01-2009 à 22:25:13   

Reply

Marsh Posté le 03-01-2009 à 22:55:22    

Bonjour,  
 
Avec un :
 
OPTIONS+="last_rule" sur votre règle pour le disque dur - sans modifier la règle des /dev/sd* - ça donne quoi ?  
 
ATTRS{model}=="SAMSUNG HD502IJ ", OPTIONS+="last_rule", SYMLINK+="samsung_backup%n"
 

Reply

Marsh Posté le 03-01-2009 à 23:13:34    

Je vais tester sur le champ. Est-ce qu'il y a une manière de voir ce que ça donne sans rebooter/hiberner la machine ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 04-01-2009 à 00:18:19    

Bonsoir,  
 
Euh..je dirais : demonter le hd en question (umount)  
le rebrancher. Si votre noyau est configuré avec l'option :
 
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
 
Mais comme votre "problème" se trouve dans l'attribution au boot de la machine, hd allumé, autant redemarrer.
 

Reply

Marsh Posté le 04-01-2009 à 00:23:09    

D'accord merci beaucoup (P.S: Je suis un jeune con, je peux être tutoyé sans aucun soucis :) )


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 04-01-2009 à 10:03:48    

Donc j'ai essayé et il n'y a pas de changements :s Il est toujours reconnu comme sda au lancement


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 04-01-2009 à 14:13:38    

Bonjour,  
 
Et bien...moi plus avoir d'idée.
 
Vous pouvez, faire une sortie de udevinfo pour ce disque s'il vous plaît.
 

Reply

Marsh Posté le 04-01-2009 à 14:22:10    

Code :
  1. esox@CColomb:~$ udevinfo -q path -n /dev/samsung_backup
  2. /block/sdh
  3. esox@CColomb:~$ udevinfo -a -p /block/sdh
  4. Udevinfo starts with the device specified by the devpath and then
  5. walks up the chain of parent devices. It prints for every device
  6. found, all possible attributes in the udev rules key format.
  7. A rule to match, can be composed by the attributes of the device
  8. and the attributes from one single parent device.
  9.   looking at device '/block/sdh':
  10.     KERNEL=="sdh"
  11.     SUBSYSTEM=="block"
  12.     DRIVER==""
  13.     ATTR{range}=="16"
  14.     ATTR{removable}=="0"
  15.     ATTR{size}=="976773168"
  16.     ATTR{capability}=="12"
  17.     ATTR{stat}=="     540     6518    55630      780     1899     1294    25544   243344        0     2364   244124"
  18.   looking at parent device '/devices/pci0000:00/0000:00:1c.5/0000:02:00.0/host0/target0:0:0/0:0:0:0':
  19.     KERNELS=="0:0:0:0"
  20.     SUBSYSTEMS=="scsi"
  21.     DRIVERS=="sd"
  22.     ATTRS{device_blocked}=="0"
  23.     ATTRS{type}=="0"
  24.     ATTRS{scsi_level}=="6"
  25.     ATTRS{vendor}=="ATA     "
  26.     ATTRS{model}=="SAMSUNG HD502IJ "
  27.     ATTRS{rev}=="1AA0"
  28.     ATTRS{state}=="running"
  29.     ATTRS{timeout}=="30"
  30.     ATTRS{iocounterbits}=="32"
  31.     ATTRS{iorequest_cnt}=="0x995"
  32.     ATTRS{iodone_cnt}=="0x995"
  33.     ATTRS{ioerr_cnt}=="0x0"
  34.     ATTRS{modalias}=="scsi:t-0x00"
  35.     ATTRS{evt_media_change}=="0"
  36.     ATTRS{queue_depth}=="31"
  37.     ATTRS{queue_type}=="simple"
  38.   looking at parent device '/devices/pci0000:00/0000:00:1c.5/0000:02:00.0/host0/target0:0:0':
  39.     KERNELS=="target0:0:0"
  40.     SUBSYSTEMS==""
  41.     DRIVERS==""
  42.   looking at parent device '/devices/pci0000:00/0000:00:1c.5/0000:02:00.0/host0':
  43.     KERNELS=="host0"
  44.     SUBSYSTEMS==""
  45.     DRIVERS==""
  46.   looking at parent device '/devices/pci0000:00/0000:00:1c.5/0000:02:00.0':
  47.     KERNELS=="0000:02:00.0"
  48.     SUBSYSTEMS=="pci"
  49.     DRIVERS=="ahci"
  50.     ATTRS{vendor}=="0x197b"
  51.     ATTRS{device}=="0x2363"
  52.     ATTRS{subsystem_vendor}=="0x1043"
  53.     ATTRS{subsystem_device}=="0x81e4"
  54.     ATTRS{class}=="0x010601"
  55.     ATTRS{irq}=="17"
  56.     ATTRS{local_cpus}=="ff"
  57.     ATTRS{local_cpulist}=="0-7"
  58.     ATTRS{modalias}=="pci:v0000197Bd00002363sv00001043sd000081E4bc01sc06i01"
  59.     ATTRS{broken_parity_status}=="0"
  60.     ATTRS{msi_bus}==""
  61.   looking at parent device '/devices/pci0000:00/0000:00:1c.5':
  62.     KERNELS=="0000:00:1c.5"
  63.     SUBSYSTEMS=="pci"
  64.     DRIVERS=="pcieport-driver"
  65.     ATTRS{vendor}=="0x8086"
  66.     ATTRS{device}=="0x27e2"
  67.     ATTRS{subsystem_vendor}=="0x0000"
  68.     ATTRS{subsystem_device}=="0x0000"
  69.     ATTRS{class}=="0x060400"
  70.     ATTRS{irq}=="219"
  71.     ATTRS{local_cpus}=="ff"
  72.     ATTRS{local_cpulist}=="0-7"
  73.     ATTRS{modalias}=="pci:v00008086d000027E2sv00000000sd00000000bc06sc04i00"
  74.     ATTRS{broken_parity_status}=="0"
  75.     ATTRS{msi_bus}=="1"
  76.   looking at parent device '/devices/pci0000:00':
  77.     KERNELS=="pci0000:00"
  78.     SUBSYSTEMS==""
  79.     DRIVERS==""


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 04-01-2009 à 14:22:12    

Euh si c'est un fs ext3, tu t'embêtes pas, tu lui mets une étiquette et voilà, ça te fera un joli nom à chaque fois

Reply

Marsh Posté le 04-01-2009 à 14:23:39    

Taz a écrit :

Euh si c'est un fs ext3, tu t'embêtes pas, tu lui mets une étiquette et voilà, ça te fera un joli nom à chaque fois


 
C'est du ext3 effectivement. Une fois que je lui ai mis un label qu'est-ce que ça va changer ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 04-01-2009 à 14:23:39   

Reply

Marsh Posté le 05-01-2009 à 17:40:17    

Bonsoir,  
Juste une question, pour mon information.
 
Vous n'auriez pas dans le bios de votre carte mère, l'option 'boot' dans un ordre qui favoriserait le choix du hd externe ?
 
Sinon, pour les labels, ou l'UUID, il suffit de les mettre dans le fstab - comme pour udev - et de désigner le point de montage souhaité.
 

Reply

Marsh Posté le 05-01-2009 à 17:54:48    

D'accord merci,
 
Donc il me suffira de mettre un label "samsung_backup" sur le FS de mon HDD externe, enlever ma règle UDEV (qui sera de toutes façons inutile) et pour finir remplacer le /dev/samsung_backup1 dans fstab par LABEL=sambsung_backup . Est-ce bien ça?
 
Merci beaucoup
 
P.S: Dans le BIOS le 1er Drive a être booté est le HDD interne, c'est pour ça que je suis surpris d'avoir des soucis..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 05-01-2009 à 19:56:28    

esox_ch a écrit :


 
C'est du ext3 effectivement. Une fois que je lui ai mis un label qu'est-ce que ça va changer ?


 
Bah le nom du /dev importe-t-il vraiment ou bien est-ce que c'est pas plutôt le nom du montage ? Si c'est le nom du montage, avec une étiquette, hal te montera le truc invariablement avec un nom adéquat.

Reply

Marsh Posté le 05-01-2009 à 20:11:31    

Le nom du /dev ne m'importe absolument pas :o . Dès que j'ai la possibilité de démonter mon HDD externe, je vais ajouter le label.
Par contre j'ai bien compris, je n'ai pas besoin de toucher les partitions sur mon disque interne (j'ai swap, / et /home), pas besoin de leur mettre des labels & co non? (Surtout que mon /home est en reiserfs, donc ça serait plus chiant :o )


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 05-01-2009 à 20:24:01    

un coup de tune1fs ouais.
Par contre pour reiserfs je ne sais pas bien.
 
Fais gaffe a bien avoir des types de partitions Linux également, certaines versions de HAL refusent de monter de l'ext3 si la partition est marquée FAT. Tu changes ça facilement avec fdisk.

Reply

Marsh Posté le 05-01-2009 à 20:29:29    

Ok mais ce que je veux dire : Suffi que je mette un label sur la partition de HDD externe, et après HAL va comprendre tout seul du coups qu'il doit pas me le mettre en /dev/sda ? Et donc je suis pas obligé à mettre des labels sur les partitions des autres disques.
J'ai regardé sur le net et c'est possible de mettre des labels sur reiserfs et sur la swap, mais bon si je peux éviter de devoir rebooter sur un liveCD histoire d'avoir toutes mes partitions démontées ... ça m'arrange :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 06-01-2009 à 18:22:53    

Donc voilà, ça ne marche toujours pas.. Là j'ai allumé le HDD après le boot et quand je fais un cfdisk j'obtiens ça :  
 

Citation :


                                                                                 Disk Drive: /dev/sdg
                                                                            Size: 500107862016 bytes, 500.1 GB
                                                                   Heads: 255   Sectors per Track: 63   Cylinders: 60801
 
         Name                        Flags                      Part Type               FS Type                                [Label]                          Size (MB)
 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
         sdg1                                                    Primary                Linux ext3                             [samsung_backup]                 500105.25
 


 
Mon fstab au cas où  
 

Citation :


#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
 
/dev/sda4 /home  reiserfs defaults 0 0
/dev/sda3       /               ext3    errors=remount-ro 0       1
/dev/sda2       none            swap    sw              0       0
/dev/sda1 /Windows ntfs-3g users,auto 0 0
 
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
 
LABEL=samsung_backup /media/esata    ext3 auto,relatime,defaults 0 0


 
 
Des idées de pourquoi diable il continue à considérer samsung_backup comme sda quand il est allumé au boot?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 07-01-2009 à 18:53:15    

parce qu'il est énuméré et donc nommé avant l'autre disque par le bios ou linux ?

 

À mon avis, c'est difficilement soluble en modifiant les règles udev. Par contre, tu peux reconfigurer ton fstab (et grub) pour utiliser les labels ou les UUIDs, les noms de partitions deviendront alors indépendant du nom du périphérique sous-jacent (par contre, les UUID changent quand tu reformates il me semble et le LABEL peuvent être changé avec l'outil idoine).


Message édité par Mjules le 07-01-2009 à 18:55:48

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 07-01-2009 à 18:56:36    

Salut,
 
Dans le bios, mon HDD interne est nommé en 1er. Dans linux .. je vois pas où ça pourrait ne pas être le cas :??:
Je pense aussi recourir aux labels, et donc mettre des labels sur toutes mes partitions..
Merci et à bientôt


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 07-01-2009 à 18:58:00    

esox_ch a écrit :

Salut,
 
Dans le bios, mon HDD interne est nommé en 1er. Dans linux .. je vois pas où ça pourrait ne pas être le cas :??:
Je pense aussi recourir aux labels, et donc mettre des labels sur toutes mes partitions..
Merci et à bientôt


 
tu n'es pas obligé de mettre des labels, les uuid, fonctionnent bien aussi.


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 07-01-2009 à 19:05:31    

Oui mais je trouve plus clair d'avoir un label "explicite" qu'un UUID de 40 caractères pseudo-random :p


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed