คุณสามารถลองใช้fsck -y
คำตอบของฉันในคำถามอื่น :-P
หากคุณต้องการdd
ภาพที่อยู่ด้านบนของรูทส์ทางออกที่ดีที่สุดของคุณคือการทำเช่นนั้นจาก initramfs ของคุณก่อนที่จะติดตั้งรูต
คุณสามารถทำได้ด้วยระบบที่บูทไปรูทนั้น แต่นี่เป็นหนึ่งในสิ่งที่ยูนิกซ์ให้เชือก (กับลูปแล้วผูกให้คุณ) ระบบไฟล์จะไม่ชอบเลย ("เฮ้ฉันคาดว่าจะมีไอโหนดที่นั่นขยะนี้คืออะไร!") ตรวจสอบให้แน่ใจว่าเป็นแบบอ่านอย่างเดียวอย่างแท้จริงเช่นไม่มีการบันทึกซ้ำ
หากคุณหลีกเลี่ยงการเข้าถึงระบบไฟล์คุณอาจหนีไปกับมัน นี่ก็หมายความว่าอิมเมจต้นฉบับของคุณไม่สามารถอยู่บนรูท นั่นเป็นความคิดที่แย่จริงๆ
หลังจากใช้งาน dd แล้วshutdown -r now
จะไม่ทำงาน (หรืออะไรมากมายรวมถึงls
และcat
) แต่ฉันขอแนะนำให้คุณใช้ watchdog (แม้แต่ softdog) เพื่อบังคับให้มีการรีเซ็ตหรือใช้แทน/proc/sysrq-trigger
- echo
โดยปกติแล้วจะเป็น shell builtin ดังนั้นคุณควรจะสามารถรันecho
ได้
ฉันไม่แน่ใจว่าคุณกำลังทำอะไร แต่ดูเหมือนว่าคุณกำลังสร้างเครื่องใช้ไฟฟ้าบางประเภท คุณควรพิจารณาเก็บ rootfs แบบอ่านอย่างเดียวและใช้การซ้อนทับ (การติดตั้งแบบรวม, aufs, ฯลฯ ) เพื่อทำการเปลี่ยนแปลงของคุณคล้ายกับ livecd ทำงาน หรืออีกทางหนึ่งมีรูทสำรองหรือกู้คืนเท่านั้น (คล้ายกับจำนวนโทรศัพท์ Android ที่ใช้งาน)
init.d
สคริปต์มาตรฐาน(checkroot.sh
) เช่นขณะที่/
เมาท์ ro อยู่แล้ว ฉันแก้ไข initramfs เพื่อให้ fsck เสร็จก่อนที่จะติดตั้งรูทและในกรณีที่เกิดข้อผิดพลาดร้ายแรงสามารถฟอร์แมตรูทและกู้คืนข้อมูลสำรองที่ปลอดภัยจากพาร์ติชั่นอื่น