ฉันถามคำถามนี้ในนามของผู้ใช้รายอื่นที่แจ้งปัญหานี้ในห้องแชทของ Ubuntu
การทำเจอร์นัลระบบไฟล์รับประกันว่าจะไม่มีความเสียหายเกิดขึ้นหากไฟฟ้าขัดข้องเกิดขึ้น?
หากคำตอบนี้ขึ้นอยู่กับระบบไฟล์โปรดระบุว่าคำตอบใดที่ป้องกันความเสียหายและคำตอบใดไม่ได้
ฉันถามคำถามนี้ในนามของผู้ใช้รายอื่นที่แจ้งปัญหานี้ในห้องแชทของ Ubuntu
การทำเจอร์นัลระบบไฟล์รับประกันว่าจะไม่มีความเสียหายเกิดขึ้นหากไฟฟ้าขัดข้องเกิดขึ้น?
หากคำตอบนี้ขึ้นอยู่กับระบบไฟล์โปรดระบุว่าคำตอบใดที่ป้องกันความเสียหายและคำตอบใดไม่ได้
คำตอบ:
ไม่มีการรับประกัน ระบบไฟล์ Journaling มีความยืดหยุ่นมากกว่าและมีแนวโน้มที่จะเกิดความเสียหายน้อยลง แต่ไม่ได้รับการยกเว้น
วารสารทั้งหมดคือรายการของการดำเนินการที่เพิ่งทำไปยังระบบไฟล์ ส่วนที่สำคัญคือการทำรายการบันทึกประจำวันก่อนที่จะมีการดำเนินการ การดำเนินการส่วนใหญ่มีหลายขั้นตอน ตัวอย่างเช่นการลบไฟล์อาจเกี่ยวข้องกับการลบรายการไฟล์ในสารบัญของระบบไฟล์จากนั้นทำเครื่องหมายเซกเตอร์ในไดรฟ์ว่าว่าง หากมีสิ่งใดเกิดขึ้นระหว่างสองขั้นตอนระบบไฟล์ที่เจอร์นัลสามารถบอกได้ทันทีและทำการล้างข้อมูลที่จำเป็นเพื่อให้ทุกอย่างสอดคล้องกัน นี่ไม่ใช่กรณีที่มีระบบไฟล์ที่ไม่ถูกเจอร์นัลซึ่งต้องดูเนื้อหาทั้งหมดของวอลุ่มเพื่อค้นหาข้อผิดพลาด
ในขณะที่การทำเจอร์นัลนี้มีแนวโน้มที่จะเกิดความเสียหายน้อยกว่าการบันทึกไม่ใช่ความเสียหายยังสามารถเกิดขึ้นได้ ตัวอย่างเช่นหากฮาร์ดไดรฟ์ทำงานผิดปกติทางกลไกหรือหากการเขียนลงในเจอร์นัลเองล้มเหลวหรือถูกขัดจังหวะ
หลักฐานขั้นพื้นฐานของการทำเจอร์นัลคือการเขียนรายการบันทึกประจำวันนั้นเร็วกว่าปกติมากกว่าธุรกรรมจริงที่อธิบายไว้ ดังนั้นช่วงเวลาระหว่าง OS ที่สั่งให้เขียน (เจอร์นัล) และฮาร์ดไดรฟ์ที่ตอบสนองมันสั้นกว่าการเขียนปกติมาก: หน้าต่างแคบลงสำหรับสิ่งที่ผิดปกติ แต่ยังมีหน้าต่างอยู่
เลขที่
การเจอร์นัลชนิดทั่วไปที่เรียกว่าการทำเจอร์นัลเมทาดาทาปกป้องความสมบูรณ์ของระบบไฟล์ไม่ใช่ข้อมูล ซึ่งรวมถึงxfs
และext3
/ ext4
ในdata=ordered
โหมดเริ่มต้น
หากระบบไฟล์ที่ไม่ทำเจอร์นัลนั้นเกิดการขัดข้องระบบจะตรวจสอบโดยใช้fsck
ในการบู๊ตครั้งถัดไป fsck
สแกนทุกinodeบนระบบไฟล์ค้นหาบล็อกที่ทำเครื่องหมายว่าใช้แล้ว แต่ไม่สามารถเข้าถึงได้ (เช่นไม่มีชื่อไฟล์) และทำเครื่องหมายบล็อกเหล่านั้นว่าไม่ได้ใช้ การทำเช่นนี้ใช้เวลานาน
ด้วยระบบไฟล์การทำเจอร์นัลข้อมูลเมตาแทนการทำfsck
มันจะรู้ว่าบล็อกใดที่อยู่ในช่วงกลางของการเปลี่ยนแปลงดังนั้นจึงสามารถทำเครื่องหมายว่าว่างโดยไม่ต้องค้นหาพาร์ติชันทั้งหมดสำหรับพวกเขา
มีการทำเจอร์นัลชนิดทั่วไปน้อยกว่าเรียกว่าการทำเจอร์นัลข้อมูลซึ่งจะext3
ทำอย่างไรถ้าคุณเมาท์ด้วยdata=journal
ตัวเลือก
มันพยายามที่จะปกป้องข้อมูลทั้งหมดของคุณโดยการเขียนไม่เพียง แต่รายการของการดำเนินการทางตรรกะ แต่ยังเนื้อหาทั้งหมดของแต่ละการเขียนไปยังวารสาร แต่เนื่องจากมันเขียนข้อมูลของคุณสองครั้งจึงอาจช้ากว่านี้มาก
อย่างที่คนอื่น ๆ ชี้แม้ว่านี่จะไม่ใช่การรับประกันเพราะฮาร์ดไดรฟ์อาจบอกระบบปฏิบัติการว่ามีการจัดเก็บข้อมูลเมื่อข้อเท็จจริงแล้วมันยังอยู่ในแคชของฮาร์ดไดรฟ์
สำหรับข้อมูลเพิ่มเติมโปรดดูที่ที่วิกิพีเดียบทความ Journaling ระบบไฟล์และส่วนที่โหมดข้อมูลของเอกสาร ext4
data=journal
คุณสมบัตินั้นไม่สมเหตุสมผลเลยใช่ไหม?
ระบบไฟล์ไม่สามารถรับประกันความสอดคล้องของระบบไฟล์ได้หากเกิดไฟฟ้าดับเนื่องจากไม่ทราบว่าฮาร์ดแวร์จะทำอะไร
หากฮาร์ดไดรฟ์บัฟเฟอร์ข้อมูลสำหรับการเขียน แต่บอกระบบปฏิบัติการว่ามีการเขียนข้อมูลและไม่สนับสนุนอุปสรรคการเขียนที่เหมาะสมการเขียนที่ไม่เป็นไปตามปกติอาจเกิดขึ้นได้เมื่อการเขียนก่อนหน้านี้ไม่ได้กระทบกับแผ่นเสียง มี ดูคำตอบที่ผิดพลาดสำหรับเซิร์ฟเวอร์นี้สำหรับรายละเอียดเพิ่มเติม
นอกจากนี้ตำแหน่งของหัวบน HDD แม่เหล็กจะถูกควบคุมด้วยแม่เหล็กไฟฟ้า หากกำลังไฟล้มเหลวในระหว่างการเขียนอาจเป็นไปได้ที่ข้อมูลบางส่วนจะถูกเขียนต่อไปในขณะที่หัวหน้าส่วนหัวย้ายข้อมูลที่เสียหายในบล็อกที่ระบบไฟล์ไม่เคยตั้งใจจะเขียน
ZFS ซึ่งอยู่ใกล้ แต่ไม่ใช่ระบบไฟล์ journaling รับประกันโดยการออกแบบต่อต้านการทุจริตหลังจากไฟฟ้าขัดข้อง
ไม่สำคัญว่าการเขียนต่อเนื่องจะถูกขัดจังหวะตรงกลางในกรณีเช่นนี้การตรวจสอบจะไม่ถูกต้องอย่างแน่นอนดังนั้นบล็อกจะถูกละเว้น เนื่องจากระบบไฟล์คัดลอกเมื่อเขียนข้อมูลที่ถูกต้องก่อนหน้านี้ (หรือ meta-data) จะยังคงอยู่บนดิสก์และจะใช้แทน
คำตอบคือในกรณีส่วนใหญ่ไม่มี: