Aquí hay dos soluciones: una es rápida de aplicar, aunque resuelve el problema solo parcialmente, la otra es la completa pero requiere que compiles tu propio núcleo.
La respuesta correcta es un parche de kernel.
Robin H. Johnson escribió un parche para el controlador del núcleo SATA ( encuéntrelo en el sitio de intercambio de pila Unix / Linux ) que oculta completamente la unidad.
Actualización El parche ahora está en sentido ascendente (al menos en el núcleo estable 3.12.7), consulte el repositorio de git . Pedí backport en la plataforma de lanzamiento de Ubuntu .
Una vez instalado el parche, agregue
libata.force=2.00:disable
a los parámetros de arranque del kernel ocultarán el disco del kernel de Linux. Verifique que el número sea correcto; buscar el nombre del dispositivo puede ayudar:
(0)samsung-romano:~% dmesg | grep iSSD
[ 1.493279] ata2.00: ATA-8: SanDisk iSSD P4 8GB, SSD 9.14, max UDMA/133
[ 1.494236] scsi 1:0:0:0: Direct-Access ATA SanDisk iSSD P4 SSD PQ: 0 ANSI: 5
Solución alterna
Respondido por el usuario de Unix StackExchange Emmanuel en https://unix.stackexchange.com/a/103742/52205
Al menos puede resolver el problema de suspensión emitiendo el comando
echo 1 > /sys/block/sdb/device/delete
antes de suspender
Para automatizarlo, agregué el siguiente archivo: (tenga en cuenta las banderas, debe ser ejecutable)
-rwxr-xr-x 1 root root 204 Dec 6 16:03 99_delete_sdb
en el directorio /etc/pm/sleep.d/
#!/bin/sh
# Tell grub that resume was successful
case "$1" in
suspend|hibernate)
if [ -d /sys/block/sdb ]; then
echo Deleting device sdb
echo 1 > /sys/block/sdb/device/delete
fi
;;
esac
... y ahora el sistema se suspende (y reanuda) correctamente. Agregué el fragmento
if [ -d /sys/block/sdb ]; then
echo Deleting device sdb
echo 1 > /sys/block/sdb/device/delete
fi
a /etc/rc.localtambién, por si acaso.
99_delete_sdbarchivo ejecutable? En/etc/rc0.d/tal vez?