Dua solusi di sini: satu cepat untuk diterapkan, walaupun hanya memecahkan sebagian saja, yang lain adalah yang lengkap tetapi mengharuskan Anda untuk mengkompilasi kernel Anda sendiri.
Jawaban yang benar adalah tambalan kernel.
Robin H. Johnson menulis tambalan untuk driver kernel SATA ( temukan di situs pertukaran tumpukan Unix / Linux ) yang menyembunyikan sepenuhnya drive.
Perbarui Patch sekarang merupakan hulu (setidaknya di kernel stabil 3.12.7), lihat repositori git . Saya meminta backport di launchpad Ubuntu .
Setelah tambalan diinstal, tambahkan
libata.force=2.00:disable
ke parameter boot kernel akan menyembunyikan disk dari kernel Linux. Periksa kembali apakah nomornya benar; mencari nama perangkat dapat membantu:
(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
Penanganan masalah
Dijawab oleh pengguna Unix StackExchange Emmanuel di https://unix.stackexchange.com/a/103742/52205
Anda setidaknya bisa menyelesaikan masalah yang ditangguhkan dengan mengeluarkan perintah
echo 1 > /sys/block/sdb/device/delete
sebelum ditunda.
Untuk mengotomatiskannya, saya menambahkan file berikut: (perhatikan benderanya, itu harus dapat dieksekusi)
-rwxr-xr-x 1 root root 204 Dec 6 16:03 99_delete_sdb
dalam direktori /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
... dan sekarang sistem menangguhkan (dan melanjutkan) dengan benar. Saya menambahkan cuplikan
if [ -d /sys/block/sdb ]; then
echo Deleting device sdb
echo 1 > /sys/block/sdb/device/delete
fi
untuk /etc/rc.local
juga, untuk mengukur baik.
99_delete_sdb
file yang dapat dieksekusi? Di/etc/rc0.d/
mungkin?Saya pergi dan menulis patch kernel untuk Anda yang mengimplementasikan kemampuan untuk menonaktifkan satu disk saat boot, sehingga Anda tidak perlu repot-repot menonaktifkannya di udev, atau menunggu selama boot awal.
http://dev.gentoo.org/~robbat2/patches/3.13-libata-disable-disks-by-param.patch
Seharusnya berlaku untuk banyak kernel dengan sangat mudah (baris di atasnya ditambahkan 2013-05-21 / v3.10-rc1 *, tetapi dapat dengan aman diterapkan secara manual tanpa garis itu).
sumber
sdb=disable
sebagai parameter kernel).grep iSSD /var/log/syslog
harus memberi Anda petunjuk).Saya telah meneliti ini dan menemukan solusi yang dapat diimplementasikan dengan cukup mudah di Ubuntu. Distro menggunakan kmod, jadi berikut ini akan berfungsi dengan baik pada itu dan setiap distro yang menggunakan kmod.
Tergantung pada driver apa yang Anda gunakan, Anda harus memasukkannya ke daftar hitam jika Anda ingin menonaktifkan semua perangkat SATA. Coba
lsmod | grep sata
dan cari tahu driver mana yang Anda gunakan. Kemudian di Anda/etc/modprobe.d/
membuat file baru denganecho blacklist (module) > blacklist.conf
menambahkannya ke daftar hitam. Bangun kembali initramf Andamkinitramfs
agar bisa diterapkan. Mulai ulang.Sebagai alternatif, tambahkan saja
modprobe.blacklist=(module)
ke parameter kernel Anda.sumber