Тут є два рішення: одне швидко застосовується, хоча вирішує проблему лише частково, інше - повне, але вимагає складання власного ядра.
Правильна відповідь - це патч ядра.
Робін Х. Джонсон написав патч для драйвера ядра SATA ( знайдіть його на сайті обміну стеками Unix / Linux ), який повністю приховує диск.
Оновіть виправлення зараз за течією (принаймні у стабільному ядрі 3.12.7), див . Сховище git . Я попросив підтримку в запуску Ubuntu .
Після встановлення патча додавання
libata.force=2.00:disable
до параметрів завантаження ядра буде приховано диск від ядра Linux. Перевірити, чи правильно вказано число; пошук назви пристрою може допомогти:
(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
Обхід
Відповів користувач Unix StackExchange Emmanuel у https://unix.stackexchange.com/a/103742/52205
Ви можете принаймні вирішити проблему призупинення, видавши команду
echo 1 > /sys/block/sdb/device/delete
перед тим як призупинити.
Щоб автоматизувати його, я додав такий файл: (зверніть увагу на прапори, він повинен бути виконаним)
-rwxr-xr-x 1 root root 204 Dec 6 16:03 99_delete_sdb
у довіднику /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
... і тепер система призупинить (і відновить) правильно. Я додав фрагмент
if [ -d /sys/block/sdb ]; then
echo Deleting device sdb
echo 1 > /sys/block/sdb/device/delete
fi
щоб /etc/rc.localтеж для гарної заходи.
99_delete_sdbвиконуваний файл? У/etc/rc0.d/може бути?