# [Disco USB]Mi disco externo se cuelga

## jpcandioti

Buenas a todos. Tengo una pc muy viejita que utilizo como centro musical, o algo así. Es una Pentium 166Mhz con 64Mb de memoria, tengo instalado un lighttpd y mpd que manipulo con una página en php, y la música está en un disco externo de 500Gb. Todo funciona perfecto, hasta tengo instalado autofs!  :Very Happy: 

Pero a veces... a veces...   :Crying or Very sad:  ... el disco externo se cuelga... y al ratito vuelve a funcionar.... pero otras veces no... y ya no hay forma de que el sistema funcione bien. Todo lo que esté utilizando el disco se cuelga... sea el mpd, un ls desde consola... lo que sea ya no hay forma de nada... ni siquiera de matarlo.. ni con kill, ni con killall... nada de nada!   :Mad:  ni desenchufando el usb... ni con reboot, ni con poweroff!!! sólo queda presionar la tecla reset...   :Crying or Very sad: 

El kernel lo compilé varias veces... gracias a eso logré conseguir mucha memoria libre y gran velocidad en el sistema. Los modulos para el usb estan todos instalados desde el kernel.

Cómo muchos imaginaran la velocidad del disco no es la mejor... debido a que el enchufe usb del disco es USB2.0 y el de la compu es USB1... pero funcionar, funciona!

Aquí vienen las preguntas:

¿Alguien sabe que puede estar haciendo que sea tan inestable?

¿Por qué los procesos no mueren cuando les doy la orden? Si es kill -9 es kill -9!!! no puede ser que sólo me quede resetear la maquina!

Espero puedan ayudarme... Muchas gracias! Saludos!

----------

## cameta

-Problemas que den lugar al cuelgue:

1º Podria estar el disco duro completamente fragmentado.

2º Evidentemente el hecho de que el disco es usb 2.0 y tu pc es usb 1.0

En resumen supongo que tienes un problema de hardware.

Lo primero seria testear cuanta fragmentación tiene el disco duro. Ahora no recuerdo como se hace para saberlo pero supongo que algún forero te lo dira.

----------

## natxoblogg

Por el tema de la fragmentación existe el potentísimo comando "filefrag", echale un ojo al man, (tranquilo recuerdo que el man era de los cortitos).

Yo sin duda miraria los parametros óptimos para el disco duro, busca información y leete el man de "hdparm", con este potentísimo comando puedes otimozar la velocidad, los datos de entrada/salida, la lectura/escritura..... del disco duro.

Por lo del USB 1.0 a 2.0, no tiene nada que ver, en verdad estás utilizando un USB 1.0, la diferencia entre las dos versiones del estandar es que la 2.0 tiene 3 lineas más de datos, combinandose con las 4 que tiene todos, es un más que posible cuello de botella, pero no tiene nada que ver con que se cuelgue el disco duro.

Intenta mirarte los parametros del disco duro, optimizarlos y bueno nunca queda de más hacerle un test, como los que hace linux cada x montages cuando lo tenemos todo por defecto, esto lo puedes hacer con "fsck", si tienes sectores rotos o inodos desubicados, este script te hara un clon en otro sector pudiendo asi acceder a los datos y poder reparar  el disco duro, si en verdad ha cascado, que no me extrañaria conforme estabas diciendo.

Ya nos cuentas.

----------

## quilosaq

Parece un problema de los drivers que gestinan el disco usb. Quizá podrías aportar mas información: ¿Manejas la maquina localmente o por red? ¿Tienes entorno gráfico? ¿Cual? ¿Has probado a no usar entorno gráfico? ¿También se bloquea?

 *jpcandioti wrote:*   

> Buenas a todos. Tengo una pc muy viejita que utilizo como centro musical, o algo así. Es una Pentium 166Mhz con 64Mb de memoria, tengo instalado un lighttpd y mpd que manipulo con una página en php, y la música está en un disco externo de 500Gb. Todo funciona perfecto, hasta tengo instalado autofs! 
> 
> Pero a veces... a veces...   ... el disco externo se cuelga... y al ratito vuelve a funcionar.... pero otras veces no... y ya no hay forma de que el sistema funcione bien. Todo lo que esté utilizando el disco se cuelga... sea el mpd, un ls desde consola... lo que sea ya no hay forma de nada... ni siquiera de matarlo.. ni con kill, ni con killall... 

 

Aquí podrías mostrar la salida de dmesg.

 *jpcandioti wrote:*   

> ...El kernel lo compilé varias veces... gracias a eso logré conseguir mucha memoria libre y gran velocidad en el sistema. Los modulos para el usb estan todos instalados desde el kernel.

 

También estaría bien saber qué módulos tienes cargados (lsmod).

----------

## pelelademadera

la mayoria de las veces que se cuelga asi, dmesg te tira data importante.

por ahi chequear la data tambien del logger onda syslog o el que quieras.

----------

## jpcandioti

Muchas gracias a todos!

Me había olvidado de comentarles algunas cuestiones sobre el disco: Es Western Digital de 500Gb SATA II, y utilizo un conversor USB para poder enchufarlo. Cómo la idea era poder usarlo con Windows sin problemas, en un primer momento hice una sóla partición NTFS... si bien lo leía perfectamente, el mpd no lo reconocía, así que terminé haciendo una partición FAT32. Aclaro que en él sólo guardo música, el sistema está en otro disco. Y con respecto a la velocidad, para mi es más que suficiente... es casi todo mp3s.

De los módulos y el dmesg la verdad que no entiendo mucho. Aquí les dejo el resultado. Si saben de algo que se pueda optimizar se los agradecería.

```
mandark ~ # lsmod

Module                  Size  Used by

ipv6                  196948  14

rtc                     8464  0

mandark ~ # dmesg

Linux version 2.6.29-gentoo-r5 (root@mandark) (gcc version 4.1.2 (Gentoo 4.1.2 p1.0.2)) #3 Wed Dec 2 21:14:34 ARST 2009

KERNEL supported cpus:

  Intel GenuineIntel

  AMD AuthenticAMD

  NSC Geode by NSC

  Cyrix CyrixInstead

  Centaur CentaurHauls

  Transmeta GenuineTMx86

  Transmeta TransmetaCPU

  UMC UMC UMC UMC

BIOS-provided physical RAM map:

 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)

 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)

 BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)

 BIOS-e820: 0000000000100000 - 0000000004000000 (usable)

 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)

 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)

 BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved)

DMI not present or invalid.

last_pfn = 0x4000 max_arch_pfn = 0x100000

kernel direct mapping tables up to 4000000 @ 7000-b000

64MB LOWMEM available.

  mapped low ram: 0 - 04000000

  low ram: 00000000 - 04000000

  bootmap 00001000 - 00001800

(6 early reservations) ==> bootmem [0000000000 - 0004000000]

  #0 [0000000000 - 0000001000]   BIOS data page ==> [0000000000 - 0000001000]

  #1 [0000100000 - 000050f75c]    TEXT DATA BSS ==> [0000100000 - 000050f75c]

  #2 [0000510000 - 0000513000]    INIT_PG_TABLE ==> [0000510000 - 0000513000]

  #3 [000009fc00 - 0000100000]    BIOS reserved ==> [000009fc00 - 0000100000]

  #4 [0000007000 - 0000007000]          PGTABLE

  #5 [0000001000 - 0000002000]          BOOTMAP ==> [0000001000 - 0000002000]

Zone PFN ranges:

  DMA      0x00000000 -> 0x00001000

  Normal   0x00001000 -> 0x00004000

Movable zone start PFN for each node

early_node_map[2] active PFN ranges

    0: 0x00000000 -> 0x0000009f

    0: 0x00000100 -> 0x00004000

On node 0 totalpages: 16287

free_area_init_node: node 0, pgdat c04a1a40, node_mem_map c1000000

  DMA zone: 32 pages used for memmap

  DMA zone: 0 pages reserved

  DMA zone: 3967 pages, LIFO batch:0

  Normal zone: 96 pages used for memmap

  Normal zone: 12192 pages, LIFO batch:1

Allocating PCI resources starting at 10000000 (gap: 4000000:fac00000)

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16159

Kernel command line: root=/dev/hda3

Initializing CPU#0

Experimental hierarchical RCU implementation.

Experimental hierarchical RCU init done.

PID hash table entries: 256 (order: 8, 1024 bytes)

Fast TSC calibration using PIT

Detected 166.640 MHz processor.

Console: colour VGA+ 80x25

console [tty0] enabled

Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)

Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)

Memory: 60384k/65536k available (2635k kernel code, 4740k reserved, 1123k data, 228k init, 0k highmem)

virtual kernel memory layout:

    fixmap  : 0xfffed000 - 0xfffff000   (  72 kB)

    vmalloc : 0xc4800000 - 0xfffeb000   ( 951 MB)

    lowmem  : 0xc0000000 - 0xc4000000   (  64 MB)

      .init : 0xc04ae000 - 0xc04e7000   ( 228 kB)

      .data : 0xc0392c1b - 0xc04ab950   (1123 kB)

      .text : 0xc0100000 - 0xc0392c1b   (2635 kB)

Checking if this processor honours the WP bit even in supervisor mode...Ok.

Calibrating delay loop (skipped), value calculated using timer frequency.. 333.28 BogoMIPS (lpj=1666400)

Mount-cache hash table entries: 512

Intel Pentium with F0 0F bug - workaround enabled.

CPU: Intel Pentium MMX stepping 03

Checking 'hlt' instruction... OK.

Freeing SMP alternatives: 0k freed

net_namespace: 932 bytes

NET: Registered protocol family 16

EISA bus registered

dca service started, version 1.8

PCI: PCI BIOS revision 2.10 entry at 0xfdb11, last bus=0

PCI: Using configuration type 1 for base access

bio: create slab <bio-0> at 0

SCSI subsystem initialized

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

PCI: Probing PCI hardware

PCI: Probing PCI hardware (bus 00)

pci 0000:00:03.0: reg 10 32bit mmio: [0xefffc000-0xefffffff]

pci 0000:00:03.0: reg 14 32bit mmio: [0xee000000-0xee7fffff]

pci 0000:00:03.0: reg 18 32bit mmio: [0xef000000-0xef7fffff]

pci 0000:00:03.0: reg 30 32bit mmio: [0xeffe0000-0xeffeffff]

pci 0000:00:04.0: reg 10 32bit mmio: [0xefffbf00-0xefffbfff]

pci 0000:00:04.0: reg 14 io port: [0xec00-0xecff]

pci 0000:00:04.0: reg 30 32bit mmio: [0xefba0000-0xefbbffff]

pci 0000:00:04.0: supports D1 D2

pci 0000:00:04.0: PME# supported from D1 D2 D3hot

pci 0000:00:04.0: PME# disabled

pci 0000:00:0b.0: reg 20 io port: [0xffa0-0xffaf]

pci 0000:00:0f.0: reg 10 32bit mmio: [0xefbdf000-0xefbdffff]

pci_bus 0000:00: resource 0 io:  [0x00-0xffff]

pci_bus 0000:00: resource 1 mem: [0x000000-0xffffffff]

NET: Registered protocol family 2

IP route cache hash table entries: 1024 (order: 0, 4096 bytes)

TCP established hash table entries: 2048 (order: 2, 16384 bytes)

TCP bind hash table entries: 2048 (order: 1, 8192 bytes)

TCP: Hash tables configured (established 2048 bind 2048)

TCP reno registered

NET: Registered protocol family 1

platform rtc_cmos: registered platform RTC device (no PNP device found)

VFS: Disk quotas dquot_6.5.2

Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)

squashfs: version 4.0 (2009/01/31) Phillip Lougher

NTFS driver 2.1.29 [Flags: R/W].

SGI XFS with ACLs, security attributes, realtime, large block/inode numbers, no debug enabled

SGI XFS Quota Management subsystem

msgmni has been set to 117

alg: No test for stdrng (krng)

io scheduler noop registered

io scheduler deadline registered (default)

pci 0000:00:02.0: Activating ISA DMA hang workarounds

pci 0000:00:03.0: Boot video device

isapnp: Scanning for PnP cards...

pnp 00:01.00: increased option port range from 0x388-0x388 to 0x388-0x3f8

pnp 00:01.00: increased option port range from 0x388-0x388 to 0x388-0x3f8

pnp 00:01.00: increased option port range from 0x388-0x388 to 0x388-0x3f8

pnp 00:01.02: added ioport region 0xe20-0xe20 to set 0

pnp 00:01.02: added ioport region 0xa20-0xa20 to set 0

pnp 00:01.02: added ioport region 0xe20-0xe80 to set 1

pnp 00:01.02: added ioport region 0xa20-0xa80 to set 1

 00:01: card 'Creative SB AWE64 PnP'

isapnp: 1 Plug & Play card detected total

Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled

serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

Floppy drive(s): fd0 is 1.44M, fd1 is 1.44M

FDC 0 is a post-1991 82077

brd: module loaded

loop: module loaded

Silan SC92031 PCI Fast Ethernet Adapter driver 2.0c

Uniform Multi-Platform E-IDE driver

alim15x3 0000:00:0b.0: IDE controller (0x10b9:0x5229 rev 0x20)

alim15x3 0000:00:0b.0: not 100% native mode: will probe irqs later

    ide0: BM-DMA at 0xffa0-0xffa7

    ide1: BM-DMA at 0xffa8-0xffaf

Probing IDE interface ide0...

hda: QUANTUM BIGFOOT2550A, ATA DISK drive

hdb: Hewlett-Packard CD-Writer Plus 8100, ATAPI CD/DVD-ROM drive

hda: host max PIO5 wanted PIO255(auto-tune) selected PIO4

hda: MWDMA2 mode selected

hdb: host max PIO5 wanted PIO255(auto-tune) selected PIO3

hdb: host max PIO5 wanted PIO255(auto-tune) selected PIO3

Probing IDE interface ide1...

ide0 at 0x1f0-0x1f7,0x3f6 on irq 14

ide1 at 0x170-0x177,0x376 on irq 15

ide_generic: please use "probe_mask=0x3f" module parameter for probing all legacy ISA IDE ports

ide-gd driver 1.18

hda: max request size: 128KiB

hda: 5033952 sectors (2577 MB) w/87KiB Cache, CHS=4994/16/63

 hda: hda1 hda2 hda3

ide-cd driver 5.00

ide-cd: hdb: ATAPI 24X CD-ROM CD-R/RW drive, 1024kB Cache

Uniform CD-ROM driver Revision: 3.20

Loading iSCSI transport class v2.0-870.

iscsi: registered transport (tcp)

Driver 'sd' needs updating - please use bus_type methods

Driver 'sr' needs updating - please use bus_type methods

SCSI Media Changer driver v0.25

Driver 'ch' needs updating - please use bus_type methods

aoe: AoE v47 initialised.

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver

ohci_hcd 0000:00:0f.0: OHCI Host Controller

ohci_hcd 0000:00:0f.0: new USB bus registered, assigned bus number 1

ohci_hcd 0000:00:0f.0: irq 11, io mem 0xefbdf000

usb usb1: configuration #1 chosen from 1 choice

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 2 ports detected

uhci_hcd: USB Universal Host Controller Interface driver

Initializing USB Mass Storage driver...

usbcore: registered new interface driver usb-storage

USB Mass Storage support registered.

PNP: No PS/2 controller found. Probing ports directly.

serio: i8042 KBD port at 0x60,0x64 irq 1

serio: i8042 AUX port at 0x60,0x64 irq 12

EISA: Probing bus 0 at eisa.0

EISA: Detected 0 cards.

usbcore: registered new interface driver usbhid

usbhid: v2.6:USB HID core driver

Advanced Linux Sound Architecture Driver Version 1.0.18a.

sbawe 00:01.00: activated

sbawe 00:01.02: activated

ALSA device list:

  #0: Sound Blaster 16 at 0x220, irq 5, dma 1&5

nf_conntrack version 0.5.0 (1024 buckets, 4096 max)

ip_tables: (C) 2000-2006 Netfilter Core Team

TCP cubic registered

NET: Registered protocol family 17

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

Using IPI Shortcut mode

register_blkdev: cannot get major 3 for hd

EXT3-fs: INFO: recovery required on readonly filesystem.

EXT3-fs: write access will be enabled during recovery.

usb 1-1: new full speed USB device using ohci_hcd and address 2

usb 1-1: configuration #1 chosen from 1 choice

scsi0 : SCSI emulation for USB Mass Storage devices

usb-storage: device found at 2

usb-storage: waiting for device to settle before scanning

usb-storage: device scan complete

scsi 0:0:0:0: Direct-Access     WDC WD50 00AAKS-00A7B0    3B01 PQ: 0 ANSI: 2 CCS

sd 0:0:0:0: [sda] 976773168 512-byte hardware sectors: (500 GB/465 GiB)

sd 0:0:0:0: [sda] Write Protect is off

sd 0:0:0:0: [sda] Mode Sense: 00 38 00 00

sd 0:0:0:0: [sda] Assuming drive cache: write through

sd 0:0:0:0: [sda] 976773168 512-byte hardware sectors: (500 GB/465 GiB)

sd 0:0:0:0: [sda] Write Protect is off

sd 0:0:0:0: [sda] Mode Sense: 00 38 00 00

sd 0:0:0:0: [sda] Assuming drive cache: write through

 sda: sda1

sd 0:0:0:0: [sda] Attached SCSI disk

sd 0:0:0:0: Attached scsi generic sg0 type 0

kjournald starting.  Commit interval 5 seconds

EXT3-fs: recovery complete.

EXT3-fs: mounted filesystem with ordered data mode.

VFS: Mounted root (ext3 filesystem) readonly on device 3:3.

Freeing unused kernel memory: 228k freed

EXT3 FS on hda3, internal journal

Adding 254008k swap on /dev/hda2.  Priority:-1 extents:1 across:254008k

Real Time Clock Driver v1.12b

eth0: link down

eth0: link up, 100Mbps, full-duplex

NET: Registered protocol family 10

lo: Disabled Privacy Extensions

eth0: no IPv6 routers present
```

Ahora no dispongo de tiempo para investigar sobre el filefrag, hdparam, y fsck. Mañana miro que encuentro al respecto y que resultados obtengo.

Muchas gracias! Saludos!

----------

## pcmaster

1- Comprueba si el disco se calienta más de la cuenta. Algunas cajas externas no refrigeran bien los discos. Si fuera ésta la causa, los cuelgues serían siempre cuando lleve un tiempo el disco conectado, nunca inmediatamente.

2- ¿Has probado a instalar  una tarjeta USB 2.0 en un slot PCI?

----------

## the incredible hurd

Nota:

 *Quote:*   

> 
> 
> EXT3-fs: INFO: recovery required on readonly filesystem.
> 
> EXT3-fs: write access will be enabled during recovery. 
> ...

 

Es simple, verifica el sistema de archivos en la unidad.

FAT, NTFS, ext2 y pulsar la tecla RESET como comentas sólo significa una cosa: desastres en el sistema de ficheros.

No pasa nada porque la controladora sea USB-1, ni necesitas una USB-2, con Full speed, es decir, 14 mbit por segundo tienes más que de sobra para leer mp3.

A propósito, tienes embebidos los controladores para USB-2.0 (EHCI) y todos los de USB-1 (OHCI y UHCI). El comando dmesg indica que usa OHCI

 *Quote:*   

> usb 1-1: new full speed USB device using ohci_hcd and address 2

 

Con esto podrás saber los controladores que tienes y ahorrar aún más memoria añadiendo sólo el necesario:

```
lspci -v | grep HCI
```

Un pentium mmx con el F00F bug, ¡guau!   :Smile: 

----------

## gringo

sería interesante que postearas el dmesg cuando tienes el problema.

Mira si tienes activado en tu configuración del kernel CONFIG_USB_SUSPEND, he leído alguna vez que puede dar problemas con discos duro externos conectados via usb.

saluetes

----------

