ฉันมี HDDs เก็บถาวรสองอันซึ่งฉันใช้ไม่บ่อยนัก (ฉันติดตั้งพาร์ติชันด้วยตนเองโดยเฉลี่ยน้อยกว่าหนึ่งครั้งต่อสัปดาห์) ตั้งแต่ผมเปิดคอมพิวเตอร์ของฉันออกในเวลากลางคืนผมพยายามที่จะป้องกันไม่ให้พวกเขาจากการปั่นขึ้นในการบูตของชีวิตประจำวัน แต่ที่ดูเหมือนว่าวิธีที่ยากเกินไป: ต้อง patching เคอร์เนลลินุกซ์ เป็นทางเลือกที่แย่กว่า แต่ง่ายกว่าฉันสร้าง systemd unit อย่างง่ายที่ทำให้ HDD เข้าสู่โหมดสลีปทันทีหลังจากบู๊ต ( ExecStart=/usr/bin/hdparm -Y /dev/disk/by-id/...
และWantedBy=multi-user.target
) สิ่งนี้เกือบจะได้ผล: ดิสก์ทั้งคู่หมุนลงเมื่อบู๊ต ฉันรับการตรวจสอบนี้โดยการเข้าสู่ระบบขั้วใน tty2: รายงานsudo hdparm -C /dev/sd[bc]
drive state is: standby
อย่างไรก็ตามเมื่อฉันเข้าสู่ระบบในเปลือกกราฟิกหนึ่งในดิสก์หมุนขึ้นอย่างชัดเจนและhdparmรายงานdrive state is: active/idle
มัน สิ่งนี้เกิดขึ้นกับทั้ง XFCE และ KDE Plasma 5 (Manjaro GNU / Linux พร้อมการอัพเดทล่าสุด) และกับผู้ใช้อื่นในระบบเดียวกัน หลังจากที่ดิสก์ตื่นขึ้นฉันจะให้เข้าสู่โหมดสลีปด้วยตนเอง ( hdparm -Y ...
) และจะไม่กลับมาทำงานอีกจนกว่าฉันจะรีบูตคอมพิวเตอร์ การออกจากระบบแม้ในฐานะผู้ใช้รายอื่นจะไม่ปลุกดิสก์ใด ๆ อีก
ดิสก์ที่กระตุ้นการทำงานนี้จะเหมือนกันเสมอ ฉันพยายามที่จะสลับสาย SATA ของ HDD สองตัวนี้ซึ่งแลกเปลี่ยน ID ของพวกเขา (sdb <-> sdc) แต่ยังคงมีอยู่จริง HDD เดียวกันถูกปลุกให้ตื่นขึ้นเมื่อเข้าสู่ระบบกราฟิกครั้งแรก ดิสก์ที่ถูกกระตุ้นนี้ไม่ได้พูดถึงทุกที่ในแฟ้มการกำหนดค่าของฉันโดยใช้ ID ถาวรเพราะฉันเพิ่งซื้อมาเมื่อเร็ว ๆ นี้ (มือสอง) โดยเฉพาะอย่างยิ่งดิสก์ที่ช่วยให้การนอนหลับเป็นซัมซุง HD103UJและดิสก์ที่ตื่นขึ้นมาเมื่อเข้าสู่ระบบกราฟิกแรกคือซัมซุง HD154UI
ฉันกำลังตรวจสอบ/ dev / SD [BC]เข้าถึงกับauditd บันทึกจะเหมือนกันจริงสำหรับดิสก์ทั้งสอง ครั้งแรกที่ฉันเข้าสู่คอนโซล tty2 และเรียกใช้sudo hdparm -C /dev/sd[bc]
: ดิสก์ทั้งสองกำลังนอนหลับ; จากนั้นฉันเปลี่ยนเป็น tty7 และเข้าสู่ XFCE จากหน้าจอ lightdm; ฉันเปลี่ยนเป็น tty2 อย่างรวดเร็วและตอนนี้หนึ่งในดิสก์ไม่ได้นอนหลับอีกต่อไป สาระสำคัญของsudo ausearch -f /dev/sdb
เอาต์พุตคำสั่งที่สอดคล้องกับเหตุการณ์เหล่านี้:
comm="hdparm" exe="/usr/bin/hdparm"
comm="udisksd" exe="/usr/lib/udisks2/udisksd"
comm="hdparm" exe="/usr/bin/hdparm"
comm="udisksd" exe="/usr/lib/udisks2/udisksd"
comm="pool" exe="/usr/lib/udisks2/udisksd"
comm="pool" exe="/usr/lib/udisks2/udisksd"
...
และอื่น ๆ comm="pool"
เส้นปรากฏขึ้นทุก 10 นาทีในบันทึกหรือบ่อยขึ้นในขณะที่gnome-ดิสก์ทำงานอยู่ แต่comm="udisksd"
สายไม่ปรากฏจนกว่าจะรีบูต สมมติว่าauditdรายงานการเข้าถึงดิสก์ทั้งหมดนี้comm="udisksd"
จะต้องรับผิดชอบในการตื่นขึ้น แต่ทำไมจึงมี HDD เพียงหนึ่งในสองตัว บางที HDD ที่ละเมิดอาจถูกกำหนดค่าโดยhdparm
ไม่ให้ตื่น
ฉันเปรียบเทียบhdparm -I /dev/sdb
และhdparm -I /dev/sdc
ส่งออกด้วย meld นอกจากนี้ยังพยายาม-Iv
, -i
และตัวเลือกแทน-iv
-I
ความแตกต่างนั้นค่อนข้าง จำกัด กับตัวระบุเฉพาะขนาดดิสก์รูปทรงเรขาคณิต ข้อแตกต่างที่อาจก่อให้เกิดความไม่สอดคล้องกันนี้ปลุกเป็นเฟิร์มแว Revision: 1A 01118บนดิสก์ที่ไม่ตื่นและ1A G 01118ในตื่นหนึ่ง
udisks
อาจเป็นความผิดที่นี่ ฉันเขียนหน่วย systemd อื่นที่ทำให้ดิสก์ที่ละเมิดนั้นเข้าสู่โหมดสลีหลังจากเซอร์วิส udisks2 เริ่มทำงาน ( After=udisks2.service
, WantedBy=udisks2.service
) วิธีแก้ปัญหานี้ป้องกันการตื่น
udisksctl
หรือ HDD ตัวอื่นยังคงหลับอยู่ ในทำนองเดียวกันกับunix.stackexchange.com/questions/457729/...ปกติmount
, unmount
คำสั่งและยังsystemd-mount
, systemd-umount
ไม่ตื่น HDDs ใด ๆ
udisks
จากคำอธิบายเริ่มต้นของคุณเพราะนั่นคือสิ่งที่ทำให้ HD หมุนลงของฉันหมุน เนื่องจากฉันไม่ได้ใช้เดสก์ท็อป Gnome / KDE โซลูชันของฉันคือปิดใช้งาน udisks ฉันไม่รู้ว่าทำไมมันถึงพยายามหมุนดิสก์หนึ่งแผ่นในระบบของคุณ - สิ่งที่ udisks ทำคือการพยายามรับข้อมูลเกี่ยวกับดิสก์