Tengo un ordenador portátil de Samsung (Cronos s7) con un disco duro SATA en el autobús ata:1
, que se detecta como /dev/sda
, un SSD 8G en ata:2
, /dev/sdb
y varios otros dispositivos en el resto de la interfaz SATA.
El problema es que el disco SSD es
- soldado a la placa principal (inamovible)
- reventado (solo da errores de E / S para cualquier operación)
- no aparece en la BIOS (probablemente porque está roto)
Ahora este disco:
- retrasa el arranque de tres a cinco minutos tratando de sondear el disco que falla, lo cual es molesto;
- pero lo más molesto es que el sistema no se suspende por
/dev/sdb
fallar.
Tenga en cuenta que puedo vivir con el retraso en el arranque --- lo que me preocupa es la reanudación / suspensión.
Entonces la pregunta es: ¿puedo decirle al kernel que evite incluso probar el dispositivo en ata: 2?
En el kernel anterior (<3.0), cuando aún podía profundizar un poco en la fuente, había un parámetro de línea de comandos del estilo hdb=ignore
que habría funcionado.
He intentado todos los trucos propuestos a continuación con udev
y los libata:force
parámetros del kernel, sin éxito. Específicamente, lo siguiente no funciona:
Agregar a uno de los siguientes
/etc/udev/rules.d/
un archivo (en ejecución temprana como00-ignoredisk.rules
o tarde como99-ignoredisk.rules
o en ambos lugares)SUBSYSTEMS=="scsi", DRIVERS=="sd", ATTRS{rev}=="SSD ", ATTRS{model}=="SanDisk iSSD P4 ", ENV{UDISKS_IGNORE}="1"
ni
KERNEL=="sdb", ENV{UDISKS_IGNORE}="1"
ni muchas soluciones intermedias, esto hace que el disco no sea accesible después del arranque, pero se prueba en el arranque y aún se verifica al suspenderlo, lo que hace que la suspensión falle.
La edición de los archivos del sistema
/lib/udev/rules.d/60-persistent-storage.rules
(yudisks
,udisks2
) cambiandoKERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-|md", GOTO="persistent_storage_end"
a
KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-|md|sdb*", GOTO="persistent_storage_end"
De nuevo, esto tiene algún efecto, enmascarando el disco desde el espacio de usuario, pero el disco aún es visible para el núcleo.
Arrancar con todas las combinaciones posibles (bueno, muchas de ellas) de los
libata:force
parámetros (que se encuentran, por ejemplo, aquí ) para desactivar DMA, velocidad más baja o lo que sea sobre el disco que falla --- no funciona. Se utiliza el parámetro, pero el disco todavía está sondeado y falla.Completamente
udevadm info -a -n /dev/sdb
pegado a http://paste.ubuntu.com/6186145/smartctl -i /dev/sdb -T permissive
da:root@samsung-romano:/home/romano# smartctl -i /dev/sdb -T permissive smartctl 5.43 2012-06-30 r3573 [x86_64-linux-3.8.0-31-generic] (local build) Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net Vendor: /1:0:0:0 Product: User Capacity: 600,332,565,813,390,450 bytes [600 PB] Logical block size: 774843950 bytes >> Terminate command early due to bad response to IEC mode page
lo cual es claramente incorrecto Sin embargo:
root@samsung-romano:/home/romano# fdisk -b 512 -C 970 -H 256 -S 63 /dev/sdb fdisk: unable to read /dev/sdb: Input/output error
(Datos del SSD de http://ubuntuforums.org/showthread.php?t=1935699&p=11739579#post11739579 ).
/etc/fstab
? Porque el retraso en el arranque podría ser causado antes por el kernel o udev, que parece ser el caso, pero también más tarde por fsck, al leerfstab
.