Deux solutions ici: l'une est rapide à appliquer, même si elle ne résout le problème que partiellement, l'autre est la solution complète mais vous oblige à compiler votre propre noyau.
La bonne réponse est un correctif du noyau.
Robin H. Johnson a écrit un correctif pour le pilote du noyau SATA (le trouver dans le site d'échange de pile Unix / Linux ) qui cache complètement le lecteur.
Mise à jour Le patch est maintenant en amont (au moins dans le noyau stable 3.12.7), voir le dépôt git . J'ai demandé un backport dans le tableau de bord Ubuntu .
Une fois le patch installé, ajouter
libata.force=2.00:disable
aux paramètres de démarrage du noyau masquera le disque du noyau Linux. Vérifiez que le numéro est correct; la recherche du nom de l'appareil peut aider:
(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
solution de contournement
Répondu par Emmanuel, utilisateur d'Unix StackExchange, dans https://unix.stackexchange.com/a/103742/52205
Vous pouvez au moins résoudre le problème de suspension en exécutant la commande
echo 1 > /sys/block/sdb/device/delete
avant de suspendre.
Pour l'automatiser, j'ai ajouté le fichier suivant: (notez les drapeaux, il doit être exécutable)
-rwxr-xr-x 1 root root 204 Dec 6 16:03 99_delete_sdb
dans l'annuaire /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
... et maintenant le système se suspend (et reprend) correctement. J'ai ajouté l'extrait
if [ -d /sys/block/sdb ]; then
echo Deleting device sdb
echo 1 > /sys/block/sdb/device/delete
fi
à /etc/rc.local
trop, pour faire bonne mesure.
99_delete_sdb
le fichier exécutable? Dans/etc/rc0.d/
peut-être?