O caminho para o dispositivo USB muda espontaneamente em tempo de execução

1

Eu estou executando um Raspberry Pi com Raspbian (um Linux baseado no Debian Wheezy) como um NAS (Network Attached Storage) com um Disco rígido USB conectado como o único dispositivo USB .

O problema com o qual me deparo é que o disco rígido USB externo está em /dev/sda , mas muda, em tempo de execução, do sistema operacional espontaneamente para /dev/sdb sem nenhum motivo. Então, ao usá-lo em /dev/sdb , ele volta para /dev/sda . Isso também acontece ao copiar um grande volume de dados, resultando em erros de E / S. Às vezes leva horas, mas caso contrário, leva alguns minutos para que isso aconteça. - Isso é realmente assustador!

É claro que considerei a internet em busca de pistas antes de pedir ajuda aqui. A única coisa interessante que encontrei foi o seguinte link: Linux: Lembre-se do caminho para o dispositivo USB - Eu segui os passos descritos e estou postando aqui a saída dos comandos,

Comando 1: udevadm info -q all -p $(udevadm info -q path -n /dev/sda)

Resultado 1:

P: /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/host0/target0:0:0/0:0:0:0/block/sda
N: sda
S: disk/by-id/usb-WDC_WD25_00JS-40NGB2_8DC88D250088-0:0
S: disk/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-scsi-0:0:0:0
E: DEVLINKS=/dev/disk/by-id/usb-WDC_WD25_00JS-40NGB2_8DC88D250088-0:0 /dev/disk/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-scsi-0:0:0:0
E: DEVNAME=/dev/sda
E: DEVPATH=/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/host0/target0:0:0/0:0:0:0/block/sda
E: DEVTYPE=disk
E: ID_BUS=usb
E: ID_INSTANCE=0:0
E: ID_MODEL=00JS-40NGB2
E: ID_MODEL_ENC=00JS-40NGB2\x20\x20\x20\x20\x20
E: ID_MODEL_ID=2336
E: ID_PART_TABLE_TYPE=dos
E: ID_PATH=platform-bcm2708_usb-usb-0:1.3:1.0-scsi-0:0:0:0
E: ID_PATH_TAG=platform-bcm2708_usb-usb-0_1_3_1_0-scsi-0_0_0_0
E: ID_REVISION=0100
E: ID_SERIAL=WDC_WD25_00JS-40NGB2_8DC88D250088-0:0
E: ID_SERIAL_SHORT=8DC88D250088
E: ID_TYPE=disk
E: ID_USB_DRIVER=usb-storage
E: ID_USB_INTERFACES=:080650:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=WDC_WD25
E: ID_VENDOR_ENC=WDC\x20WD25
E: ID_VENDOR_ID=152d
E: MAJOR=8
E: MINOR=0
E: SUBSYSTEM=block
E: UDEV_LOG=3
E: UDISKS_ATA_SMART_IS_AVAILABLE=1
E: UDISKS_PARTITION_TABLE=1
E: UDISKS_PARTITION_TABLE_COUNT=1
E: UDISKS_PARTITION_TABLE_SCHEME=mbr
E: UDISKS_PRESENTATION_NOPOLICY=0
E: USEC_INITIALIZED=7853442

Comando 2: udevadm info -q all -p $(udevadm info -q path -n /dev/sdb)

Resultado 2:

P: /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/host2/target2:0:0/2:0:0:0/block/sdb
N: sdb
S: disk/by-id/usb-WDC_WD25_00JS-40NGB2_8DC88D250088-0:0
S: disk/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-scsi-0:0:0:0
E: DEVLINKS=/dev/disk/by-id/usb-WDC_WD25_00JS-40NGB2_8DC88D250088-0:0 /dev/disk/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-scsi-0:0:0:0
E: DEVNAME=/dev/sdb
E: DEVPATH=/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/host2/target2:0:0/2:0:0:0/block/sdb
E: DEVTYPE=disk
E: ID_BUS=usb
E: ID_INSTANCE=0:0
E: ID_MODEL=00JS-40NGB2
E: ID_MODEL_ENC=00JS-40NGB2\x20\x20\x20\x20\x20
E: ID_MODEL_ID=2336
E: ID_PART_TABLE_TYPE=dos
E: ID_PATH=platform-bcm2708_usb-usb-0:1.3:1.0-scsi-0:0:0:0
E: ID_PATH_TAG=platform-bcm2708_usb-usb-0_1_3_1_0-scsi-0_0_0_0
E: ID_REVISION=0100
E: ID_SERIAL=WDC_WD25_00JS-40NGB2_8DC88D250088-0:0
E: ID_SERIAL_SHORT=8DC88D250088
E: ID_TYPE=disk
E: ID_USB_DRIVER=usb-storage
E: ID_USB_INTERFACES=:080650:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=WDC_WD25
E: ID_VENDOR_ENC=WDC\x20WD25
E: ID_VENDOR_ID=152d
E: MAJOR=8
E: MINOR=16
E: SUBSYSTEM=block
E: UDEV_LOG=3
E: UDISKS_ATA_SMART_IS_AVAILABLE=1
E: UDISKS_PARTITION_TABLE=1
E: UDISKS_PARTITION_TABLE_COUNT=1
E: UDISKS_PARTITION_TABLE_SCHEME=mbr
E: UDISKS_PRESENTATION_NOPOLICY=0
E: USEC_INITIALIZED=2425648913

Então eu tentei o truque e adicionei a linha BUS=="usb", ATTR{serial}=="WDC_WD25_00JS-40NGB2_8DC88D250088-0:0", NAME="sda" ao arquivo /etc/udev/rules.d/10-usb-serial , mas infelizmente isso também não resolveu o problema.

Eu não sei se isso é importante mencionar, mas o armazenamento externo USB usado consiste em dois discos rígidos idênticos de 256 GB de tamanho em um JBOD caso controlado. Isso significa que parece um disco rígido de 512 GB de tamanho para o sistema operacional.

E agora estou ansioso para receber ajuda e / ou sugestões. - Obrigado antecipadamente!

    
por MrksKwsnck 06.01.2014 / 13:05

2 respostas

0

Como não tinha mais idéias para resolver este problema, simplesmente usei outro cabo USB para conectar o disco rígido externo ao Raspberry Pi e agora ele está funcionando corretamente O_o Parece que o cabo USB usado anteriormente estava com defeito.

Obviamente, o disco rígido externo anteriormente perdeu a conectividade com o Raspberry Pi por um curto período de tempo. O sistema operacional, em seguida, estava pensando que outro disco rígido foi anexado. Caso contrário, não consigo imaginar esse problema.

Então, esta questão está oficialmente resolvida agora!

    
por 10.01.2014 / 19:36
0

Considerando que é uma unidade conectada via USB, a comutação entre /dev/sda e /dev/sdb na inicialização não é surpreendente; fazer isso durante sessões normais levaria alguém a suspeitar de uma configuração usb estragada no lado RasPi OU no próprio HDD físico (mais o firmware que controla os 2 HDDs no gabinete). Dito isto, confira este link em UUID's . para partições Linux EXT3 e a julgar pela sua saída você tem dos partições (o que é mais provável partições FAT32) mas você deve ser capaz de puxar um UUID do USB HDD usando o comando blkid como mencionado em the article . Aqui está alguns links se você tiver problemas para obter o UUID da sua partição DOS.

IMHO se você estiver usando o RasPi como NAS e as unidades USB não forem movidas (ou seja, a unidade USB permanecer conectada no RasPi 24/7), eu recomendo tirar as HDDs da USB gabinete e conectá-los diretamente ao RasPi (se possível), isso evitará esses problemas de E / S e fornecerá maior rendimento aos seus discos (velocidades SATA vs. velocidades USB2).

Espero que isso possa ajudar.

    
por 06.01.2014 / 14:11