ใช้สิ่งนี้แทน:
sudo dd if=install57.fs of=/dev/sdc conv=fsync
สิ่งนี้เรียกfsync()
หลังทุกการwrite()
เรียกของระบบ สิ่งนี้บังคับdd
ไม่ให้แคชอะไรเลย ดูส่วนนี้ของ manpage ของ fsync ( man 2 fsync
):
fsync() transfers ("flushes") all modified in-core data of (i.e., modified buffer cache
pages for) the file referred to by the file descriptor fd to the disk device (or other
permanent storage device) where that file resides. The call blocks until the device reports
that the transfer has completed. It also flushes metadata information associated with the
file (see stat(2)).
นี่คือพฤติกรรมเริ่มต้นของเมล็ด เคอร์เนล Linux จัดการการเขียนและอ่านแคชดังนี้: เมื่อwrite()
ออก syscall ข้อมูลจะถูกเขียนไปยังแคชอย่างรวดเร็วและสถานะการเขียนเสร็จสมบูรณ์จะถูกส่งไปยังกระบวนการ เมื่อต้องการบัฟเฟอร์หรือเมื่อมีเวลาว่างบนบัสข้อมูลจะถูกเขียนจากแคชไปยังฮาร์ดดิสก์
/dev/sdc
เป็นอุปกรณ์ที่เกิดขึ้นจริงในระบบของคุณและคุณจะไม่ได้เขียนไปยังแฟ้ม/dev/sdc
? ทำls --color /dev
-/dev/sdc
ควรเป็นสีเหลืองหากเป็นอุปกรณ์