Buradaki iki çözüm: Biri uygulamak hızlıdır, ancak sorunu sadece kısmen çözse de, diğeri tamdır, ancak kendi çekirdeğinizi derlemenizi gerektirir.
Doğru cevap bir çekirdek yamasıdır.
Robin H. Johnson , sürücüyü tamamen gizleyen SATA çekirdek sürücüsü ( Unix / Linux yığın değişim sitesinde bulabilirsiniz) için bir yama yazdı .
Güncelleme Düzeltme eki şimdi akış yukarı (en azından 3.12.7 kararlı çekirdeğinde), git deposuna bakın . Ubuntu fırlatma rampasında backport istedim .
Yama yüklendikten sonra,
libata.force=2.00:disable
çekirdeğe önyükleme parametreleri diski Linux çekirdeğinden gizler. Numaranın doğru olup olmadığını iki kez kontrol edin; cihaz adını aramak yardımcı olabilir:
(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
Geçici çözüm
Unix StackExchange kullanıcısı Emmanuel tarafından https://unix.stackexchange.com/a/103742/52205
Askıya alma sorununu en azından komutu vererek çözebilirsiniz.
echo 1 > /sys/block/sdb/device/delete
askıya almadan önce.
Otomatikleştirmek için aşağıdaki dosyayı ekledim: (bayraklara dikkat edin, yürütülebilir olmalıdır)
-rwxr-xr-x 1 root root 204 Dec 6 16:03 99_delete_sdb
dizinde /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
... ve şimdi sistem doğru şekilde askıya alınıyor (ve devam ediyor). Snippet'i ekledim
if [ -d /sys/block/sdb ]; then
echo Deleting device sdb
echo 1 > /sys/block/sdb/device/delete
fi
için /etc/rc.localde iyi ölçmek için.
99_delete_sdbyürütülebilir dosyayı nereye yerleştirmeliyim ? In/etc/rc0.d/belki?