Zwei Lösungen hier: Eine ist schnell anzuwenden, obwohl das Problem nur teilweise gelöst wird, die andere ist die vollständige, erfordert jedoch, dass Sie Ihren eigenen Kernel kompilieren.
Die richtige Antwort ist ein Kernel-Patch.
Robin H. Johnson hat einen Patch für den SATA-Kerneltreiber geschrieben ( finden Sie ihn auf der Unix / Linux-Stack-Exchange-Site ), der das Laufwerk vollständig verbirgt.
Update Der Patch ist jetzt Upstream (zumindest im stabilen 3.12.7-Kernel), siehe Git-Repository . Ich habe im Ubuntu-Launchpad nach einem Backport gefragt .
Sobald der Patch installiert ist, fügen Sie hinzu
libata.force=2.00:disable
Durch die Boot-Parameter des Kernels wird die Festplatte vor dem Linux-Kernel ausgeblendet. Überprüfen Sie noch einmal, ob die Nummer korrekt ist. Die Suche nach dem Gerätenamen kann helfen:
(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
Problemumgehung
Beantwortet von Unix StackExchange-Benutzer Emmanuel unter /unix//a/103742/52205
Sie können das Suspend-Problem zumindest lösen, indem Sie den Befehl ausgeben
echo 1 > /sys/block/sdb/device/delete
vor dem Suspendieren.
Um es zu automatisieren, habe ich die folgende Datei hinzugefügt: (Beachten Sie die Flags, es muss ausführbar sein)
-rwxr-xr-x 1 root root 204 Dec 6 16:03 99_delete_sdb
im Verzeichnis /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
... und jetzt wird das System korrekt angehalten (und fortgesetzt). Ich habe das Snippet hinzugefügt
if [ -d /sys/block/sdb ]; then
echo Deleting device sdb
echo 1 > /sys/block/sdb/device/delete
fi
zu /etc/rc.local
auch für eine gute Maßnahme.
99_delete_sdb
ausführbare Datei ablegen soll. In/etc/rc0.d/
vielleicht?Ich habe einen Kernel-Patch für Sie geschrieben, der die Möglichkeit implementiert, eine einzelne Festplatte beim Booten zu deaktivieren, sodass Sie sich nicht darum kümmern müssen, sie in udev zu deaktivieren oder beim ersten Start zu warten.
http://dev.gentoo.org/~robbat2/patches/3.13-libata-disable-disks-by-param.patch
Sollte sehr einfach auf viele Kernel angewendet werden können (die Zeile darüber wurde hinzugefügt 2013-05-21 / v3.10-rc1 *, kann aber ohne diese Zeile sicher manuell angewendet werden).
quelle
sdb=disable
als Kernel-Parameter).grep iSSD /var/log/syslog
sollte Ihnen einen Hinweis geben).Ich habe dies untersucht und eine Lösung gefunden, die unter Ubuntu recht einfach implementiert werden kann. Die Distribution verwendet kmod, daher sollte das Folgende für diese und jede Distribution, die kmod verwendet, gut funktionieren.
Je nachdem, welchen Treiber Sie verwenden, müssen Sie ihn auf die schwarze Liste setzen , wenn Sie alle SATA-Geräte deaktivieren möchten. Versuchen Sie
lsmod | grep sata
herauszufinden, welche Treiber Sie verwenden. Dann/etc/modprobe.d/
erstellen Sie in Ihrem eine neue Datei mitecho blacklist (module) > blacklist.conf
, um sie der Blacklist hinzuzufügen. Erstellen Sie Ihre initramfs mit neu,mkinitramfs
damit sie wirksam werden. Starten Sie neu.Alternativ können Sie einfach
modprobe.blacklist=(module)
Ihre Kernel-Parameter hinzufügen .quelle