Duas soluções aqui: uma é rápida de aplicar, embora resolva o problema apenas parcialmente, a outra é a completa, mas exige que você compile seu próprio kernel.
A resposta correta é um patch do kernel.
Robin H. Johnson escreveu um patch para o driver do kernel SATA ( encontre-o no site de troca de pilhas Unix / Linux ) que oculta completamente a unidade.
Atualização O patch está agora upstream (pelo menos no 3.12.7 kernel estável), consulte o repositório git . Pedi backport na barra de lançamento do Ubuntu .
Após a instalação do patch, adicionar
libata.force=2.00:disable
para os parâmetros de inicialização do kernel ocultará o disco do kernel do Linux. Verifique novamente se o número está correto; procurar o nome do dispositivo pode ajudar:
(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
Gambiarra
Respondida por Emmanuel, usuário do StackExchange, Emmanuel em https://unix.stackexchange.com/a/103742/52205
Você pode pelo menos resolver o problema de suspensão emitindo o comando
echo 1 > /sys/block/sdb/device/delete
antes de suspender.
Para automatizá-lo, adicionei o seguinte arquivo: (observe os sinalizadores, ele deve ser executável)
-rwxr-xr-x 1 root root 204 Dec 6 16:03 99_delete_sdb
no diretório /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 agora o sistema suspende (e continua) corretamente. Eu adicionei o trecho
if [ -d /sys/block/sdb ]; then
echo Deleting device sdb
echo 1 > /sys/block/sdb/device/delete
fi
a /etc/rc.local
também, para uma boa medida.
99_delete_sdb
o arquivo executável? Em/etc/rc0.d/
talvez?Eu escrevi um patch do kernel para você que implementa a capacidade de desativar um único disco no momento da inicialização, para que você não precise se preocupar em desabilitá-lo no udev ou na espera durante a inicialização inicial.
http://dev.gentoo.org/~robbat2/patches/3.13-libata-disable-disks-by-param.patch
Deve aplicar-se a muitos kernels com muita facilidade (a linha acima foi adicionada 2013-05-21 / v3.10-rc1 *, mas pode ser aplicada com segurança manualmente sem essa linha).
fonte
sdb=disable
como parâmetro do kernel).grep iSSD /var/log/syslog
deve dar uma dica).Eu pesquisei isso e encontrei uma solução que pode ser implementada facilmente no Ubuntu. A distribuição usa kmod, portanto, o seguinte deve funcionar bem nessa e em qualquer distribuição que use kmod.
Dependendo do driver que você estiver usando, você precisará colocá-lo na lista negra se desejar desativar todos os dispositivos SATA. Tente
lsmod | grep sata
descobrir qual driver (s) você está usando. Em seguida,/etc/modprobe.d/
crie um novo arquivo comecho blacklist (module) > blacklist.conf
para adicioná-lo à lista negra. Reconstrua o initramfsmkinitramfs
para que ele entre em vigor. Reinicie.Como alternativa, basta adicionar
modprobe.blacklist=(module)
aos seus parâmetros do kernel.fonte