यहां दो समाधान: एक को लागू करने के लिए तेजी से है, हालांकि समस्या को आंशिक रूप से हल करता है, दूसरा एक पूर्ण है, लेकिन आपको अपना कर्नेल संकलित करने की आवश्यकता है।
सही उत्तर एक कर्नेल पैच है।
रॉबिन एच। जॉनसन ने एसएटीए कर्नेल ड्राइवर के लिए एक पैच लिखा ( इसे यूनिक्स / लिनक्स स्टैक एक्सचेंज साइट में खोजें ) जो ड्राइव को पूरी तरह से छुपाता है।
अद्यतन पैच अब अपस्ट्रीम है (कम से कम 3.12.7 स्थिर कर्नेल में), गिट रिपॉजिटरी देखें । मैंने उबंटू लॉन्चपैड में बैकपोर्ट के लिए कहा ।
एक बार पैच स्थापित करने, जोड़ने
libata.force=2.00:disable
कर्नेल बूट पैरामीटर लिनक्स कर्नेल से डिस्क को छिपाएगा। डबल जांचें कि संख्या सही है; डिवाइस का नाम खोजने में मदद मिल सकती है:
(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
वैकल्पिक हल
यूनिक्स StackExchange उपयोगकर्ता इमैनुएल द्वारा https://unix.stackexchange.com/a/103742/52205205 में उत्तर दिया गया
आप कम से कम कमांड जारी करके सस्पेंड समस्या का समाधान कर सकते हैं
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/
हो सकता है?