ฉันจะไม่เขียนเกี่ยวกับการตรวจสอบ HW และรายการการ์ด SD ที่ใช้งานร่วมกันได้เพราะคุณอาจตรวจสอบสิ่งเหล่านี้ทั้งหมดแล้ว สิ่งที่ฉันกำลังจะเขียนคือทางออกถาวรที่ช่วยให้หยิกปัญหาในตาและแก้ไขปัญหาอย่างถาวร
หากคุณไม่ต้องการให้การ์ด SD ของคุณเสียหายเมื่อคุณเปิดสวิตช์ไฟคุณจะต้องใช้มันในโหมดอ่านอย่างเดียว หากไม่มีการเขียนลงในการ์ด SD ของคุณจะไม่ได้รับความเสียหายไม่ว่าคุณจะทำอะไร
วิธีแก้ปัญหาที่ชัดเจน (แต่ไม่ใช่การทำงาน) จะพยายามพลิกสวิตช์ "อ่านอย่างเดียว" ที่ด้านข้างของการ์ด SD โชคไม่ดีที่นี่ไม่ทำงานเพราะแผนผังแสดงว่าสวิตช์นี้ถูกกำหนดเส้นทางแล้วและตำแหน่งนั้นถูกเพิกเฉย
วิธีอื่นที่ละเอียดกว่า (แต่ใช้งานได้) จะเป็นการดัดแปลง/etc/fstab
เพื่อเมาต์พาร์ติชันทั้งหมดของคุณเป็นแบบอ่านอย่างเดียว ข้อเสียของวิธีนี้คือบันทึกของคุณจะต้องถูกเขียนไว้ที่อื่น (USB stick, RAM drive) และในกรณีของ RAM ไดรฟ์บันทึกจะไม่คงอยู่ในระหว่างการรีบูต เพื่อทำสิ่งนี้:
- คัดลอกภาพ RPi ไปยังการ์ด SD ของคุณโดยใช้วิธีใดก็ได้ที่คุณต้องการ
- บูตจาก SD และ
raspi-config
จะเริ่มต้นโดยอัตโนมัติ อย่า "ขยายระบบไฟล์" เพียงแค่ตั้งค่าเขตเวลาและการตั้งค่าสากลของคุณ
เรียกใช้sudo fdisk /dev/mmcblk0
กด 'p' เพื่อพิมพ์ตารางพาร์ทิชันปัจจุบัน จากนั้นป้อนคำสั่งต่อไปนี้:
n Create a new partition
[enter] Make a primary partition
[enter] Use the default number
[#] 1 greater than the end of mmcblk0p2
[enter] Expand to the end of the SD card
w Write the partition table and exit
/etc/fstab
แก้ไข ควรมีลักษณะดังนี้:
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat ro 0 0
/dev/mmcblk0p2 / ext4 ro 0 0
/dev/mmcblk0p3 /home ext4 defaults,errors=remount-ro 0 1
none /var/run ramfs size=1M 0 0
none /var/log ramfs size=1M 0 0
รันsudo partprobe
เพื่อรู้จักพาร์ติชันใหม่
sudo mkfs --type ext4 /dev/mmcblk0p3
รูปแบบพาร์ทิชันใหม่ของคุณด้วย
- Reboot
หากด้วยเหตุผลบางอย่างที่คุณต้องทำการเปลี่ยนแปลงกับระบบของคุณคุณสามารถติดตั้งพาร์ติชันแบบอ่านอย่างเดียวใหม่ด้วยการเข้าถึงการเขียน:
sudo mount -o remount,rw /dev/mmcblk0p2