วิธีแก้ปัญหาสองข้อที่นี่: วิธีหนึ่งใช้ได้อย่างรวดเร็วแม้ว่าจะแก้ปัญหาเพียงบางส่วนเท่านั้นส่วนวิธีอื่นนั้นสมบูรณ์ แต่คุณต้องการคอมไพล์เคอร์เนลของคุณเอง
คำตอบที่ถูกต้องคือแพทช์เคอร์เนล
Robin H. Johnson เขียนแพตช์สำหรับไดรเวอร์เคอร์เนล SATA ( ค้นหาได้จากไซต์แลกเปลี่ยนสแต็กของ Unix / Linux ) ซึ่งซ่อนไดรฟ์ไว้อย่างสมบูรณ์
อัพเดทแพทช์อยู่ในขณะนี้ต้นน้ำ (อย่างน้อยใน 3.12.7 มั่นคงเคอร์เนล) ดู ที่เก็บคอมไพล์ ผมขอย้ายกลับใน Launchpad
เมื่อติดตั้งแพตช์แล้วให้เพิ่ม
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/
อาจจะ?