ฉันสามารถทำการเปลี่ยนแปลงระดับต่ำบน RO ที่เมาท์กับ fs ได้หรือไม่?


3

ที่เกี่ยวข้องกับคำถามนี้ : มีระบบไฟล์รากที่จะต้องติดตั้งแบบอ่านอย่างเดียว (บอกว่ามันเสียอย่างสมบูรณ์) ฉันสามารถฟอร์แมตพาร์ทิชันหรือddภาพสำรองเก่ากว่าด้านบนของมัน (แล้วรีบูต)?

ฉันเดาว่าระบบไฟล์จะไม่ชอบการเปลี่ยนแปลงที่รุนแรงในขณะที่เมานท์ (แม้ว่าจะอ่านได้อย่างเดียว)

หรือเป็นคำถามที่คล้ายกัน: มีความเป็นไปได้อื่น ๆ ในการแก้ไข fs รากที่ไม่ดีนอกเหนือจากการใช้ fsck แบบโต้ตอบ (เช่นทำการเปลี่ยนแปลงถาวรบนพาร์ติชั่นข้อมูลด้วยเครื่องมืออื่น ๆ ) หรือไม่?

คำตอบ:


3

คุณสามารถลองใช้fsck -yคำตอบของฉันในคำถามอื่น :-P

หากคุณต้องการddภาพที่อยู่ด้านบนของรูทส์ทางออกที่ดีที่สุดของคุณคือการทำเช่นนั้นจาก initramfs ของคุณก่อนที่จะติดตั้งรูต

คุณสามารถทำได้ด้วยระบบที่บูทไปรูทนั้น แต่นี่เป็นหนึ่งในสิ่งที่ยูนิกซ์ให้เชือก (กับลูปแล้วผูกให้คุณ) ระบบไฟล์จะไม่ชอบเลย ("เฮ้ฉันคาดว่าจะมีไอโหนดที่นั่นขยะนี้คืออะไร!") ตรวจสอบให้แน่ใจว่าเป็นแบบอ่านอย่างเดียวอย่างแท้จริงเช่นไม่มีการบันทึกซ้ำ

หากคุณหลีกเลี่ยงการเข้าถึงระบบไฟล์คุณอาจหนีไปกับมัน นี่ก็หมายความว่าอิมเมจต้นฉบับของคุณไม่สามารถอยู่บนรูท นั่นเป็นความคิดที่แย่จริงๆ

หลังจากใช้งาน dd แล้วshutdown -r nowจะไม่ทำงาน (หรืออะไรมากมายรวมถึงlsและcat) แต่ฉันขอแนะนำให้คุณใช้ watchdog (แม้แต่ softdog) เพื่อบังคับให้มีการรีเซ็ตหรือใช้แทน/proc/sysrq-trigger- echoโดยปกติแล้วจะเป็น shell builtin ดังนั้นคุณควรจะสามารถรันechoได้

ฉันไม่แน่ใจว่าคุณกำลังทำอะไร แต่ดูเหมือนว่าคุณกำลังสร้างเครื่องใช้ไฟฟ้าบางประเภท คุณควรพิจารณาเก็บ rootfs แบบอ่านอย่างเดียวและใช้การซ้อนทับ (การติดตั้งแบบรวม, aufs, ฯลฯ ) เพื่อทำการเปลี่ยนแปลงของคุณคล้ายกับ livecd ทำงาน หรืออีกทางหนึ่งมีรูทสำรองหรือกู้คืนเท่านั้น (คล้ายกับจำนวนโทรศัพท์ Android ที่ใช้งาน)


ตกลงสิ่งที่ทำให้ฉันสับสนคือ fsck สำหรับ root fs เริ่มต้นจากinit.dสคริปต์มาตรฐาน( checkroot.sh) เช่นขณะที่/เมาท์ ro อยู่แล้ว ฉันแก้ไข initramfs เพื่อให้ fsck เสร็จก่อนที่จะติดตั้งรูทและในกรณีที่เกิดข้อผิดพลาดร้ายแรงสามารถฟอร์แมตรูทและกู้คืนข้อมูลสำรองที่ปลอดภัยจากพาร์ติชั่นอื่น
Udo G

1

คุณสามารถลอง. อย่างไรก็ตามฉันขอแนะนำไม่ให้ทำ นี่น่าจะเป็นความผิดพลาดของโปรแกรมที่คุณใช้เนื่องจากเคอร์เนลอาจปลดส่วนของมันออกจากหน่วยความจำและโหลดในภายหลังจากไฟล์ต้นฉบับ ตรวจสอบให้แน่ใจว่าได้คัดลอกโปรแกรมและไฟล์ใด ๆ ที่ใช้ (โดยเฉพาะรวมถึงไลบรารีที่แชร์ทั้งหมด) ไปยังระบบไฟล์อื่น (อาจเป็นระบบไฟล์ tmpfs)

ในทางทฤษฎีสิ่งที่แย่ที่สุดที่อาจเกิดขึ้นได้คือคุณต้องอ่านข้อมูลที่ผิด ระบบไฟล์น่าจะถูกประกอบใหม่เป็นแบบอ่านอย่างเดียวเนื่องจากข้อผิดพลาดในบางจุด ในทางปฏิบัติคุณอาจสิ้นสุดการทำงานของเคอร์เนลที่กึ่งกลาง ไม่ว่าในกรณีใดมีความเสี่ยงสูงที่คุณจะต้องจบด้วยระบบไฟล์ที่ใช้ไม่ได้

หากคุณต้องการทำ fsck บนพาร์ติชันรูทให้ทำจาก initramfs และฉันขอแนะนำให้ Derobertที่สองเกี่ยวกับระบบไฟล์รูทแบบอ่านอย่างเดียวซึ่งเพิ่มเข้ามาผ่านระบบไฟล์แบบร่วม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.