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.local
también, por si acaso.
99_delete_sdb
archivo ejecutable? En/etc/rc0.d/
tal vez?Fui y escribí un parche del kernel para usted que implementa la capacidad de deshabilitar un solo disco en el momento del arranque, para que no tenga que molestarse en deshabilitarlo en udev o esperar durante el arranque inicial.
http://dev.gentoo.org/~robbat2/patches/3.13-libata-disable-disks-by-param.patch
Debería aplicarse a muchos núcleos muy fácilmente (la línea anterior se agregó 2013-05-21 / v3.10-rc1 *, pero se puede aplicar de forma segura manualmente sin esa línea).
fuente
sdb=disable
como parámetro del núcleo).grep iSSD /var/log/syslog
debería darle una pista).Investigué esto y encontré una solución que se puede implementar con bastante facilidad en Ubuntu. La distribución usa kmod, por lo que lo siguiente debería funcionar bien en eso y en cualquier distribución que use kmod.
Dependiendo del controlador que esté utilizando, deberá incluirlo en la lista negra si desea deshabilitar todos los dispositivos SATA. Intente
lsmod | grep sata
averiguar qué controlador (es) está utilizando. Luego, en su/etc/modprobe.d/
crear un nuevo archivoecho blacklist (module) > blacklist.conf
para agregarlo a la lista negra. Reconstruye tus initramfsmkinitramfs
para que surta efecto. Reiniciar.Alternativamente, solo agregue
modprobe.blacklist=(module)
a los parámetros de su núcleo.fuente