สถานการณ์แบบคลาสสิก: ฉันวิ่งได้ไม่ดีrm
และรับรู้ได้ทันทีหลังจากนั้นฉันก็ลบไฟล์ผิด (ไม่มีอะไรสำคัญและฉันมีการสำรองข้อมูลล่าสุดอย่างอดทน แต่ก็น่ารำคาญ)
รู้ว่ากิจกรรมของดิสก์ต่อไปเป็นศัตรูของฉันถ้าฉันต้องการกู้คืนไฟล์ด้วยextundelete
หรือเครื่องมือดังกล่าวฉันก็ขับเคลื่อนเครื่องลงทางกายภาพทันที (เช่นด้วยปุ่มเปิดปิดไม่ใช่ด้วยhalt
หรือคำสั่งใด ๆ ) นี่เป็นแล็ปท็อปที่ไม่มีงานสำคัญที่ทำงานอยู่หรือมีอะไรเปิดอยู่ดังนั้นจึงเป็นการทำงานที่ยอมรับได้ (โดยวิธีการที่ฉันได้เรียนรู้ตั้งแต่นั้นมาสิ่งแรกที่ต้องทำในสถานการณ์ดังกล่าวจะประเมินก่อนหากไฟล์ที่หายไปอาจจะยังคงเปิดโดยกระบวนการhttps://unix.stackexchange.com/a/101247 - หากเป็นเช่นนั้นคุณควรกู้คืนด้วยวิธีนี้แทนที่จะปิดเครื่อง)
ถึงกระนั้นเมื่อเครื่องถูกปิดฉันคิดว่าในขณะที่และตัดสินใจว่าไฟล์ไม่คุ้มค่ากับการลงทุนในการบูทระบบสดเพื่อการพิสูจน์หลักฐานที่เหมาะสม ดังนั้นฉันจึงขับเคลื่อนเครื่องสำรอง แล้วฉันก็ค้นพบว่าไฟล์ของฉันยังคงนั่งอยู่บนดิสก์: สิ่งที่rm
ไม่ได้แพร่กระจายไปยังดิสก์ก่อนที่ฉันจะปิดตัวลง ฉันเต้นเล็กน้อยและขอบคุณพระเจ้าแห่งดูแลระบบสำหรับการให้อภัยที่ไม่คาดคิดของเขา
คำถามของฉันคือตอนนี้เพื่อทำความเข้าใจว่ามันเป็นไปได้อย่างไรและอะไรคือความล่าช้าทั่วไปก่อนที่rm
จะแพร่กระจายสู่ดิสก์ ฉันรู้ว่าดิสก์ IO ไม่ได้ถูกลบทิ้งทันที แต่มันอยู่ในหน่วยความจำระยะหนึ่ง แต่ฉันคิดว่าดิสก์เจอร์นัลจะทำให้แน่ใจได้อย่างรวดเร็วว่าการดำเนินการที่ค้างอยู่จะไม่สูญหายทั้งหมด https://unix.stackexchange.com/a/78766ดูเหมือนจะบอกกล่าวกับกลไกแยกต่างหากเพื่อล้างหน้าสกปรกและเพื่อล้างการดำเนินการของวารสาร แต่ไม่ได้ให้รายละเอียดที่เพียงพอเกี่ยวกับวิธีที่วารสารจะเกี่ยวข้องกับrm
และความล่าช้าที่คาดไว้ก่อนหน้า การดำเนินการจะถูกล้างออก
รายละเอียดเพิ่มเติม: ข้อมูลอยู่ในพาร์ติชัน ext4 ภายในโวลุ่ม LUKS และเมื่อบูตเครื่องสำรองข้อมูลฉันเห็นสิ่งต่อไปนี้ในsyslog
:
Sep 24 10:24:58 gamma kernel: [ 11.457007] EXT4-fs (dm-0): 1 orphan inode deleted
Sep 24 10:24:58 gamma kernel: [ 11.458393] EXT4-fs (dm-0): recovery complete
Sep 24 10:24:58 gamma kernel: [ 11.482475] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
rm
แต่ผมไม่มั่นใจว่ามันจะเกี่ยวข้องกับ
คำถามอื่นก็คือว่ามีวิธีที่จะบอกเคอร์เนลว่าจะไม่ทำการดำเนินการใด ๆ ของดิสก์ที่ค้างอยู่หรือไม่ (แต่ให้บอกว่าทิ้งข้อมูลไว้ที่ใดที่หนึ่ง) แทนที่จะทำการปิดเครื่อง (แน่นอนว่ามันอันตรายที่จะไม่ทำการดำเนินการที่รอดำเนินการ แต่นี่คือสิ่งที่จะเกิดขึ้นเมื่อเปิดเครื่องลงและบางกรณีก็สามารถช่วยคุณได้) นี่เป็น "สะอาดกว่า" แน่นอนและน่าสนใจ สำหรับเช่นเซิร์ฟเวอร์ระยะไกลที่การปิดเครื่องทางกายภาพไม่ใช่ตัวเลือกที่ง่าย
rm
จะเขียน? กล่าวอีกนัยหนึ่งสิ่งต่าง ๆ ที่เกิดขึ้นกับวารสารเฉพาะเมื่อการเขียนกำลังจะทำ หรือเป็นภาพที่ซับซ้อนกว่านั้น? สำหรับ alt-sysrq-u นี่เป็นแนวคิดที่ค่อนข้างดี คุณมีการอ้างอิงเพื่อให้การอ้างสิทธิ์ "ปรากฏ" หรือไม่ (ดูเหมือนจะไม่ติดตามจากลิงก์ที่คุณให้) ขอบคุณ! :)