Problema: dmraid troca os nomes de partição. [RESOLVIDO]

1. Problema: dmraid troca os nomes de partição. [RESOLVIDO]

Cezar Augustus Lamann
cezarlamann

(usa OpenSuSE)

Enviado em 22/07/2009 - 16:38h

Olá gente!

bem, estou recorrendo ao forum do VOL, depois de muita bateção de cabeça, google, e outros por aí.
uso o linux há um tempo e até hoje nunca tinha visto algo parecido. vamos aos fatos:

conf:

Debian (Lenny 2.6.26.2-686) (instalação padrão)
Intel Raid ICH9 - raid0 (2x Samsung 161HJ - com DMRAID)

FSTAB:

# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>

proc /proc proc defaults 0 0
/dev/dm-1 / ext3 errors=remount-ro 0 1
/dev/dm-2 /home reiserfs defaults 0 2
/dev/dm-3 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/scd1 /media/cdrom1 udf,iso9660 user,noauto 0 0
/dev/scd2 /media/cdrom2 udf,iso9660 user,noauto 0 0

PROBLEMA:

O problema, é que toda a vez que reinicio o pc, a partição /home "troca de numero", ou seja,
uma hora ela é a /dev/dm-2 outra hora /dev/dm-3... e toda vez eu tenho que "adivinhar" onde
que a /home pode estar... Mais: a cada inicialização, o fstab está com os numeros trocados (dm-*)

algo que eu achei estranho, é que esse problema começou a aparecer depois que eu coloquei um disco
não-raid no meu pc para realizar um backup... este hd estava em ext3 e apareceu como /dev/sdc. ele
iniciou corretamente, fiz o backup, desmontei-o, desliguei o pc para retirá-lo, e em seguida liguei
o pc novamente. E nesta hora, ele já apresentou que a partição /dev/dm-2 (/home - reiserfs) não foi encontrada, e que o superbloco poderia estar corrompido. Mas, o reiserfsck não apresentou falha
alguma.

detalhe: se eu monto manualmente (trocando os numeros), a partição funciona normalmente.

será que pode ser alguma incompatibilidade entre o ext3 e o reiserfs (acho meio dificil... mas será?)?

alguem já viu algo parecido, e pode me dar uma luz?

Desde já agradeço, e desculpe o tamanho do post. =]


  


2. Re: Problema: dmraid troca os nomes de partição. [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 22/07/2009 - 16:56h

Eu acho q o culpado d tudo é o udev. Tem duas formas d resolver esse problema:

- Editando as regras do udev (q eu não sei ao certo como faz. Só sei q é no arquivo /etc/udev/rules.d/64-device-mapper.rules);
- Desativando o udev, retirando a permissão d execução do arquivo udev (chmod -x /etc/init.d/udev).

A 2ª opção é mais arriscada, pois vc desativará a detecção automática dos periféricos do sistema, deixando d funcionar alguns deles. A 1ª opção é mais difícil, mas é mais eficiente, pois vc força o udev a nomear o dispositivo sempre com o msm nome.


3. Re: Problema: dmraid troca os nomes de partição. [RESOLVIDO]

Cezar Augustus Lamann
cezarlamann

(usa OpenSuSE)

Enviado em 22/07/2009 - 17:43h

oi renato!

desde já agradeço pela atenção.

bem, eu estive mexendo lá no diretorio do udev e não encontrei o 64....

lá existem:

024_hpmud.rules 75-cd-aliases-generator.rules
025_libgphoto2.rules 75-persistent-net-generator.rules
025_logitechmouse.rules 80-drivers.rules
11-hplj10xx.rules 85_dmraid.rules
45-hplip.rules 90-hal.rules
50-udev.rules 91-permissions.rules
55-hpmud.rules 95-late.rules
60-persistent-input.rules libmtp7.rules
60-persistent-storage.rules z60_alsa-utils.rules
60-persistent-storage-tape.rules z60_libpisock9.rules
60-persistent-v4l.rules z60_libsane-extras.rules
65_dmsetup.rules z60_libsane.rules
70-persistent-cd.rules z60_xserver-xorg-input-wacom.rules
70-persistent-net.rules

imaginando algo sobre o dmraid, tentei achar algo no 65, 80 e 85, mas neles estão apenas algumas regras com base em variáveis, e não uma lista estática (como teríamos no fstab)...

conteudo do 85_dmraid.rules:

# This file causes drives with dmraid arrays to be checked, and if all
# drives are present, brought up.
# See udev(8) for syntax

SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_TYPE}=="disk", ENV{ID_FS_USAGE}=="raid", KERNEL=="hd[a-z]|sd[a-z]", \
RUN+="/sbin/dmraid-activate %k"

conteudo do 80-drivers.rules:

ACTION!="add", GOTO="hotplug_not_add_event"

# check if the device has already been claimed by a driver
ENV{DRIVER}=="?*", SUBSYSTEM!="input", GOTO="hotplug_driver_loaded"

# this driver is broken and should not be loaded automatically on kernels
# < 2.6.21 (see #398962)
SUBSYSTEM=="platform", ENV{MODALIAS}=="i82365", GOTO="hotplug_driver_loaded"

# load the drivers
ENV{MODALIAS}=="?*", \
RUN+="/sbin/modprobe --use-blacklist $env{MODALIAS}"

SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", \
RUN+="/bin/sh -c '/sbin/modprobe --use-blacklist --all $$(while read id; do echo pnp:d$$id; done < /sys$devpath/id)'"

SUBSYSTEM=="pcmcia_socket", RUN+="/sbin/modprobe pcmcia"

# rules for subsystems which lack proper hotplug support
SUBSYSTEM=="i2o", RUN+="/sbin/modprobe i2o_block"
SUBSYSTEM=="mmc", RUN+="/sbin/modprobe mmc_block"
SUBSYSTEM=="memstick", RUN+="/sbin/modprobe --all ms_block mspro_block"
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN+="/sbin/modprobe tifm_sd"
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN+="/sbin/modprobe tifm_ms"

# needed for kernels < 2.6.22
SUBSYSTEM=="scsi_device", ATTRS{type}=="0|7|14", RUN+="/sbin/modprobe sd_mod"
SUBSYSTEM=="scsi_device", ATTRS{type}=="1", RUN+="/sbin/modprobe osst", \
ATTRS{vendor}=="Onstream", ATTRS{model}!="ADR*"
SUBSYSTEM=="scsi_device", ATTRS{type}=="1", RUN+="/sbin/modprobe st", \
ATTRS{vendor}=="Onstream", ATTRS{model}=="ADR*"
SUBSYSTEM=="scsi_device", ATTRS{type}=="1", RUN+="/sbin/modprobe st", \
ATTRS{vendor}!="Onstream"
SUBSYSTEM=="scsi_device", ATTRS{type}=="[45]", RUN+="/sbin/modprobe sr_mod"
SUBSYSTEM=="scsi_device", ATTRS{type}=="8", RUN+="/sbin/modprobe ch"

SUBSYSTEM=="scsi_device", ATTRS{type}=="[235689]", TEST!="[module/sg]", \
RUN+="/sbin/modprobe sg"

SUBSYSTEM=="ide", ATTR{media}=="tape", RUN+="/sbin/modprobe ide-scsi"

# From here on follows the hotplug agents which do not load modules
LABEL="hotplug_driver_loaded"

# FIXME: does a sane default exist?
#SUBSYSTEM=="scsi_device", ATTRS{idVendor}=="...", \
# RUN+="scsi-re-add"

SUBSYSTEM=="firmware", RUN+="firmware.agent"

LABEL="hotplug_not_add_event"

SUBSYSTEM=="net", RUN+="net.agent"

SUBSYSTEM=="atm", RUN+="dsl-modem.agent"

# Log every event to /dev/hotplug.log (for debugging).
#RUN+="logger.agent"
ACTION!="add", GOTO="hotplug_not_add_event"

# check if the device has already been claimed by a driver
ENV{DRIVER}=="?*", SUBSYSTEM!="input", GOTO="hotplug_driver_loaded"

# this driver is broken and should not be loaded automatically on kernels
# < 2.6.21 (see #398962)
SUBSYSTEM=="platform", ENV{MODALIAS}=="i82365", GOTO="hotplug_driver_loaded"

# load the drivers
ENV{MODALIAS}=="?*", \
RUN+="/sbin/modprobe --use-blacklist $env{MODALIAS}"

SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", \
RUN+="/bin/sh -c '/sbin/modprobe --use-blacklist --all $$(while read id; do echo pnp:d$$id; done < /sys$devpath/id)'"

SUBSYSTEM=="pcmcia_socket", RUN+="/sbin/modprobe pcmcia"

# rules for subsystems which lack proper hotplug support
SUBSYSTEM=="i2o", RUN+="/sbin/modprobe i2o_block"
SUBSYSTEM=="mmc", RUN+="/sbin/modprobe mmc_block"
SUBSYSTEM=="memstick", RUN+="/sbin/modprobe --all ms_block mspro_block"
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN+="/sbin/modprobe tifm_sd"
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN+="/sbin/modprobe tifm_ms"

# needed for kernels < 2.6.22
SUBSYSTEM=="scsi_device", ATTRS{type}=="0|7|14", RUN+="/sbin/modprobe sd_mod"
SUBSYSTEM=="scsi_device", ATTRS{type}=="1", RUN+="/sbin/modprobe osst", \
ATTRS{vendor}=="Onstream", ATTRS{model}!="ADR*"
SUBSYSTEM=="scsi_device", ATTRS{type}=="1", RUN+="/sbin/modprobe st", \
ATTRS{vendor}=="Onstream", ATTRS{model}=="ADR*"
SUBSYSTEM=="scsi_device", ATTRS{type}=="1", RUN+="/sbin/modprobe st", \
ATTRS{vendor}!="Onstream"
SUBSYSTEM=="scsi_device", ATTRS{type}=="[45]", RUN+="/sbin/modprobe sr_mod"
SUBSYSTEM=="scsi_device", ATTRS{type}=="8", RUN+="/sbin/modprobe ch"

SUBSYSTEM=="scsi_device", ATTRS{type}=="[235689]", TEST!="[module/sg]", \
RUN+="/sbin/modprobe sg"

SUBSYSTEM=="ide", ATTR{media}=="tape", RUN+="/sbin/modprobe ide-scsi"

# From here on follows the hotplug agents which do not load modules
LABEL="hotplug_driver_loaded"

# FIXME: does a sane default exist?
#SUBSYSTEM=="scsi_device", ATTRS{idVendor}=="...", \
# RUN+="scsi-re-add"

SUBSYSTEM=="firmware", RUN+="firmware.agent"

LABEL="hotplug_not_add_event"

SUBSYSTEM=="net", RUN+="net.agent"

SUBSYSTEM=="atm", RUN+="dsl-modem.agent"

# Log every event to /dev/hotplug.log (for debugging).
#RUN+="logger.agent"
ACTION!="add", GOTO="hotplug_not_add_event"

# check if the device has already been claimed by a driver
ENV{DRIVER}=="?*", SUBSYSTEM!="input", GOTO="hotplug_driver_loaded"

# this driver is broken and should not be loaded automatically on kernels
# < 2.6.21 (see #398962)
SUBSYSTEM=="platform", ENV{MODALIAS}=="i82365", GOTO="hotplug_driver_loaded"

# load the drivers
ENV{MODALIAS}=="?*", \
RUN+="/sbin/modprobe --use-blacklist $env{MODALIAS}"

SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", \
RUN+="/bin/sh -c '/sbin/modprobe --use-blacklist --all $$(while read id; do echo pnp:d$$id; done < /sys$devpath/id)'"

SUBSYSTEM=="pcmcia_socket", RUN+="/sbin/modprobe pcmcia"

# rules for subsystems which lack proper hotplug support
SUBSYSTEM=="i2o", RUN+="/sbin/modprobe i2o_block"
SUBSYSTEM=="mmc", RUN+="/sbin/modprobe mmc_block"
SUBSYSTEM=="memstick", RUN+="/sbin/modprobe --all ms_block mspro_block"
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN+="/sbin/modprobe tifm_sd"
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN+="/sbin/modprobe tifm_ms"

# needed for kernels < 2.6.22
SUBSYSTEM=="scsi_device", ATTRS{type}=="0|7|14", RUN+="/sbin/modprobe sd_mod"
SUBSYSTEM=="scsi_device", ATTRS{type}=="1", RUN+="/sbin/modprobe osst", \
ATTRS{vendor}=="Onstream", ATTRS{model}!="ADR*"
SUBSYSTEM=="scsi_device", ATTRS{type}=="1", RUN+="/sbin/modprobe st", \
ATTRS{vendor}=="Onstream", ATTRS{model}=="ADR*"
SUBSYSTEM=="scsi_device", ATTRS{type}=="1", RUN+="/sbin/modprobe st", \
ATTRS{vendor}!="Onstream"
SUBSYSTEM=="scsi_device", ATTRS{type}=="[45]", RUN+="/sbin/modprobe sr_mod"
SUBSYSTEM=="scsi_device", ATTRS{type}=="8", RUN+="/sbin/modprobe ch"

SUBSYSTEM=="scsi_device", ATTRS{type}=="[235689]", TEST!="[module/sg]", \
RUN+="/sbin/modprobe sg"

SUBSYSTEM=="ide", ATTR{media}=="tape", RUN+="/sbin/modprobe ide-scsi"

# From here on follows the hotplug agents which do not load modules
LABEL="hotplug_driver_loaded"

# FIXME: does a sane default exist?
#SUBSYSTEM=="scsi_device", ATTRS{idVendor}=="...", \
# RUN+="scsi-re-add"

SUBSYSTEM=="firmware", RUN+="firmware.agent"

LABEL="hotplug_not_add_event"

SUBSYSTEM=="net", RUN+="net.agent"

SUBSYSTEM=="atm", RUN+="dsl-modem.agent"

# Log every event to /dev/hotplug.log (for debugging).
#RUN+="logger.agent"

...



4. Re: Problema: dmraid troca os nomes de partição. [RESOLVIDO]

Cezar Augustus Lamann
cezarlamann

(usa OpenSuSE)

Enviado em 22/07/2009 - 17:46h

...
conteudo do 65_dmsetup.rules:

SUBSYSTEM!="block", GOTO="device_mapper_end"
KERNEL!="dm-*", GOTO="device_mapper_end"
ACTION!="add|change", GOTO="device_mapper_end"

# Obtain device status
IMPORT{program}="/sbin/dmsetup export -j $major -m $minor"
ENV{DM_NAME}!="?*", GOTO="device_mapper_end"

# these are temporary devices created by cryptsetup, we want to ignore them
# and also hide them from HAL
ENV{DM_NAME}=="temporary-cryptsetup-*", OPTIONS="ignore_device"

SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}"
ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}"

ENV{DM_STATE_ACTIVE}!="?*", GOTO="device_mapper_end"
ENV{DM_TARGET_TYPES}=="|*error*", GOTO="device_mapper_end"

IMPORT{program}="vol_id --export $tempnode"

OPTIONS+="link_priority=-100"
ENV{DM_UUID}=="DMRAID-*", OPTIONS="link_priority=100"
ENV{DM_TARGET_TYPES}=="*snapshot-origin*", OPTIONS+="link_priority=-90"

ENV{ID_FS_UUID_ENC}=="?*", ENV{ID_FS_USAGE}=="filesystem|other|crypto", \
SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
ENV{ID_FS_LABEL_ENC}=="?*", ENV{ID_FS_USAGE}=="filesystem|other", \
SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"

LABEL="device_mapper_end"




pelo o que eu consegui entender, estes arquivos contem regras para a montagem dos dispositivos dmraid...
mas olhando a sintaxe, não consegui entender como funciona o sistema de "nomeação" dos dispositivos...

o que voce acha?


5. Re: Problema: dmraid troca os nomes de partição. [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 22/07/2009 - 17:48h

Tente editar o arquivo 85_dmraid.rules, colocando essa linha:

SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_TYPE}=="disk", ENV{ID_FS_USAGE}=="raid", KERNEL=="hd[a-z]|sd[a-z]", \

Para:

SUBSYSTEM=="block", ACTION=="add", ENV{ID_TYPE}=="disk", ENV{ID_FS_USAGE}=="raid", KERNEL=="hd[a-z]|sd[a-z]", \

Talvez funcione, eu tou achando q é ae o problema.


6. Re: Problema: dmraid troca os nomes de partição. [RESOLVIDO]

Cezar Augustus Lamann
cezarlamann

(usa OpenSuSE)

Enviado em 22/07/2009 - 17:54h

vou lá tentar, rebootar e ver no que dá...

abraço!


7. Re: Problema: dmraid troca os nomes de partição. [RESOLVIDO]

Cezar Augustus Lamann
cezarlamann

(usa OpenSuSE)

Enviado em 22/07/2009 - 20:36h

é....

não deu em nada ainda... tanto tirando o "change" quanto tirando direitos de execução, não funcionou ainda....

o que sera?

desde já agradeço a atenção.

abraço!


8. Re: Problema: dmraid troca os nomes de partição. [RESOLVIDO]

Cezar Augustus Lamann
cezarlamann

(usa OpenSuSE)

Enviado em 22/07/2009 - 22:28h

up... please!


9. Re: Problema: dmraid troca os nomes de partição. [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 23/07/2009 - 00:53h

Eu realmente não sei fuçar muito no udev, mas tenho alguns tutos q podem t auxiliar com relação a regras. Dae vc pode modificar as regras no intuito d evitar as renomeações dos dispositivos. Segue os links:

http://reactivated.net/writing_udev_rules.html
http://www.debian-administration.org/articles/126
http://liquidat.wordpress.com/2008/08/16/howto-find-matches-for-udev-rules/




10. RESOLVIDO

Cezar Augustus Lamann
cezarlamann

(usa OpenSuSE)

Enviado em 12/08/2009 - 09:48h

Olá pessoal...

depois de muito bater a cabeça, acabei instalando o pacote disk-manager do debian, e percebi que a opção de detectar novos drives na hora do boot estava desativada... ativei, e ficou tudo certo!

Desde já, agradeço a atenção!

=]






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts