Due soluzioni qui: una è rapida da applicare, sebbene risolva il problema solo parzialmente, l'altra è quella completa ma richiede di compilare il proprio kernel.
La risposta corretta è una patch del kernel.
Robin H. Johnson ha scritto una patch per il driver del kernel SATA ( trovalo nel sito di scambio di stack Unix / Linux ) che nasconde completamente l'unità.
Aggiornamento La patch ora è a monte (almeno nel kernel stabile 3.12.7), consultare il repository git . Ho chiesto il backport nel launchpad di Ubuntu .
Una volta installata la patch, aggiungendo
libata.force=2.00:disable
i parametri di avvio del kernel nasconderanno il disco dal kernel di Linux. Ricontrolla che il numero sia corretto; la ricerca del nome del dispositivo può aiutare:
(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
Soluzione
Risposta dell'utente Emmanuel di Unix StackExchange in https://unix.stackexchange.com/a/103742/52205
Puoi almeno risolvere il problema di sospensione inviando il comando
echo 1 > /sys/block/sdb/device/delete
prima di sospendere.
Per automatizzarlo, ho aggiunto il seguente file: (notare i flag, deve essere eseguibile)
-rwxr-xr-x 1 root root 204 Dec 6 16:03 99_delete_sdb
nella directory /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
... e ora il sistema sospende (e riprende) correttamente. Ho aggiunto lo snippet
if [ -d /sys/block/sdb ]; then
echo Deleting device sdb
echo 1 > /sys/block/sdb/device/delete
fi
a /etc/rc.local
anche, per buona misura.
99_delete_sdb
il file eseguibile? In/etc/rc0.d/
forse?