ข้ามไปยังเนื้อหาหลัก
ลด 50% ทุกแพลน เวลาจำกัด เริ่มต้นที่ $2.48/mo
8 min left
Server และ OS

แก้ปัญหา Linux Read Only File System บน Ubuntu

Ada Lovegood โดย Ada Lovegood 8 นาทีในการอ่าน อัปเดตเมื่อ Jun 9, 2024
Ubuntu Linux Read Only File System Error Fix

หากคุณเคยเจอปัญหา Read Only File System ใน Linux คุณคงรู้ดีว่ามันส่งผลกระทบต่อ workflow และความเสถียรของระบบได้มากเพียงใด ปัญหานี้อาจเกิดจากหลายสาเหตุ ตั้งแต่การตั้งค่าที่ผิดพลาดเล็กน้อยไปจนถึง file system เสียหายอย่างรุนแรง การแก้ปัญหาให้ได้ผลต้องเริ่มจากการเข้าใจต้นตอของมันก่อน คู่มือนี้จะพาคุณไปสำรวจสาเหตุของปัญหา อธิบายวิธีแก้ไขอย่างละเอียด และปิดท้ายด้วยเคล็ดลับการป้องกันไม่ให้เกิดขึ้นอีก

ทำความเข้าใจปัญหา Read Only File System

File system คือส่วนประกอบของระบบปฏิบัติการที่ทำหน้าที่จัดการการบันทึกและเรียกคืนข้อมูล เมื่อ file system ถูก mount ในโหมด Read Only แปลว่าคุณไม่สามารถเขียนหรือแก้ไขไฟล์ได้อีกต่อไป ข้อจำกัดนี้มักถูกเปิดใช้เพื่อปกป้องความสมบูรณ์ของข้อมูลในไฟล์ เมื่อระบบตรวจพบสถานการณ์ที่อาจทำให้ข้อมูลสูญหาย มันจะเปลี่ยนไปใช้ Read Only File System เป็นมาตรการป้องกัน

ดังนั้น แม้คุณจะยังดูเนื้อหาในไฟล์ได้ แต่จะไม่สามารถแก้ไข ลบ หรือสร้างไฟล์ใหม่ได้

สาเหตุที่พบบ่อยของ Read Only File System

ต่อไปนี้คือปัจจัยที่อาจทำให้ file system เปลี่ยนไปเป็นโหมด Read Only:

  • File System เสียหาย: หนึ่งในสาเหตุที่พบบ่อยที่สุดของข้อผิดพลาด Read Only File System ใน Linux คือ file system เสียหาย ซึ่งอาจเกิดจากการปิดเครื่องกะทันหัน ฮาร์ดแวร์ขัดข้อง หรือ bug ใน file system เอง
  • ข้อผิดพลาดของดิสก์: ดิสก์อาจเกิดปัญหาทางกายภาพ ซึ่งเป็นปัจจัยหนึ่งที่ทำให้เกิด Ubuntu Read Only File System ตัวอย่างเช่น bad sector อาจทำให้ระบบ remount file system เป็น Read Only เพื่อป้องกันความเสียหายที่อาจเกิดขึ้นเพิ่มเติม
  • ดิสก์เต็ม หากดิสก์หมดพื้นที่ file system อาจเปลี่ยนไปเป็นโหมด Read Only เพื่อป้องกันการเขียนทับและสูญเสียข้อมูล
  • Kernel Panic หรือระบบล่ม: รุนแรง เคอร์เนลหยุดทำงาน หรือการขัดข้องอาจทำให้ระบบไฟล์อยู่ในสถานะที่ไม่สอดคล้องกัน ผลจากการขัดข้องเหล่านี้คือระบบไฟล์จะถูก remount เป็นแบบอ่านอย่างเดียวเมื่อรีบูต
  • การปิดระบบอย่างไม่ถูกต้อง: หากระบบของคุณประสบกับไฟดับกะทันหันหรือการปิดเครื่องที่ไม่ถูกต้องบ่อยครั้ง ระบบไฟล์จะอยู่ในสถานะที่ไม่เสถียร การปิดเครื่องที่ไม่ถูกต้องเหล่านี้ทำให้ระบบไฟล์กลายเป็นแบบอ่านอย่างเดียว

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

การระบุปัญหา

มาดูวิธีระบุปัญหาก่อนที่จะแก้ไขกัน ขั้นตอนแรกคือตรวจสอบ system log และข้อความแสดงข้อผิดพลาด จากนั้นใช้คำสั่งเฉพาะเพื่อวินิจฉัยสถานะของระบบไฟล์

การตรวจสอบ System Log และข้อความแสดงข้อผิดพลาด

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

1. คำสั่ง "dmesg": ผู้ใช้ dmesg คำสั่งนี้แสดงข้อความจาก kernel ring buffer ซึ่งมักมีข้อผิดพลาดของระบบไฟล์รวมอยู่ด้วย รันคำสั่งต่อไปนี้เพื่อกรองและแสดงข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง:

sudo dmesg | grep -i "ext4"

แทนที่ "ext4" ด้วยประเภทระบบไฟล์ของคุณ

2. ไดเรกทอรี "/var/log": Log ในไดเรกทอรี "/var/log" อาจให้ข้อมูลเพิ่มเติมได้ ตรวจสอบไฟล์อย่าง "syslog" หรือ messages เพื่อดูรายการที่เกี่ยวข้องกับปัญหาระบบไฟล์

คำสั่งสำหรับตรวจสอบว่าระบบไฟล์ของคุณเป็นแบบอ่านอย่างเดียวหรือไม่

ต่อไปมาดูวิธียืนยันว่าระบบไฟล์ของคุณถูก mount เป็นแบบอ่านอย่างเดียวหรือไม่ และรวบรวมข้อมูลเพิ่มเติมเกี่ยวกับสถานะของมัน

  • คำสั่ง "mount": ผู้ใช้ ติดตั้ง คำสั่งนี้แสดงรายการระบบไฟล์ที่ถูก mount ทั้งหมดพร้อมตัวเลือกการ mount ในผลลัพธ์ให้มองหาแฟล็ก "ro" (อ่านอย่างเดียว)
  • คำสั่ง "findmnt": ผู้ใช้ findmnt คำสั่งนี้แสดงมุมมองที่ละเอียดกว่าของระบบไฟล์ที่ถูก mount ทั้งหมด รวมถึงตัวเลือกต่าง ๆ ของแต่ละระบบ
  • คำสั่ง "df": ผู้ใช้ df คำสั่งนี้รายงานการใช้พื้นที่ดิสก์ของระบบไฟล์ แม้ว่าจะแสดงการใช้งานดิสก์เป็นหลัก แต่ก็สามารถบอกได้ว่าระบบไฟล์ถูก mount เป็นแบบอ่านอย่างเดียวหรือไม่

การแก้ไขระบบไฟล์อ่านอย่างเดียว

ปัญหาระบบไฟล์อ่านอย่างเดียว Linux อาจสร้างความหงุดหงิดได้มาก โดยเฉพาะเมื่อคุณต้องการแก้ไขข้อมูลหรือเขียนข้อมูลใหม่ โชคดีที่มีหลายขั้นตอนที่คุณทำได้เพื่อแก้ปัญหานี้ ส่วนนี้จะแนะนำคุณตลอดกระบวนการแก้ไขระบบไฟล์อ่านอย่างเดียว เมื่อทำตามคู่มือนี้แล้ว คุณสามารถมั่นใจได้ว่าระบบของคุณจะกลับมาทำงานได้ตามปกติ

ขั้นตอนที่ 1: ตรวจสอบปัญหาด้านฮาร์ดแวร์

ก่อนจะเข้าสู่วิธีแก้ไขทางซอฟต์แวร์ มาตรวจสอบก่อนว่าไม่มีปัญหาด้านฮาร์ดแวร์ที่ซ่อนอยู่ซึ่งเป็นต้นเหตุของปัญหาระบบไฟล์อ่านอย่างเดียว เริ่มด้วยการตรวจสอบการเชื่อมต่อทางกายภาพ โดยเฉพาะอย่างยิ่งหากคุณใช้ external drive สายที่หลวมหรือชำรุดอาจทำให้เกิดข้อผิดพลาดในการเขียน และทำให้ระบบ mount ไดรฟ์เป็นแบบอ่านอย่างเดียว

ขั้นตอนที่ 2: Remount ระบบไฟล์

บางครั้งระบบไฟล์อาจถูก remount เป็นแบบอ่านอย่างเดียวเนื่องจากปัญหาชั่วคราว คุณสามารถลอง remount เป็นแบบอ่าน/เขียนได้ด้วยคำสั่งต่อไปนี้:

sudo mount -o remount,rw /mount/point

แทนที่ /mount/point ด้วย mount point จริงของระบบไฟล์ของคุณ คำสั่งนี้บังคับให้ระบบ remount ระบบไฟล์ด้วยสิทธิ์อ่าน/เขียน หากวิธีนี้แก้ปัญหาได้ แสดงว่าน่าจะเป็นแค่ข้อผิดพลาดชั่วคราว

ขั้นตอนที่ 3: รันการตรวจสอบระบบไฟล์

สาเหตุที่พบบ่อยมากของปัญหานี้คือระบบไฟล์เสียหาย ในการตรวจสอบและซ่อมแซมระบบไฟล์ คุณสามารถใช้ fsck (ยูทิลิตี้ตรวจสอบระบบไฟล์) ก่อนรัน fsck, ให้แน่ใจว่า file system ถูก unmount แล้ว:

sudo umount /mount/point

จากนั้นรัน fsck คำสั่ง

sudo fsck -y /dev/sdX1

แทนที่ /dev/sdX1 พร้อมระบุ device identifier ที่ถูกต้องสำหรับ file system ของคุณ

เมื่อตรวจสอบเสร็จแล้ว ให้ mount file system กลับคืน:

sudo mount /dev/sdX1 /mount/point

ขั้นตอนที่ 4: ตรวจสอบ System Logs

หากปัญหายังคงอยู่ การดู system logs อาจช่วยระบุสาเหตุที่แท้จริงได้ ใช้คำสั่ง dmesg เพื่อดู kernel messages ที่เกี่ยวข้องกับ file system:

dmesg | grep -i "read-only"

มองหาข้อความ error ที่อาจบอกได้ว่าทำไม file system ถึงถูก mount เป็น read only

ขั้นตอนที่ 5: แก้ไข File System Table (fstab)

หาก file system ถูก mount เป็น read only ทุกครั้งที่รีบูต คุณอาจต้องแก้ไขการตั้งค่า /etc/fstab ให้เปิดไฟล์ /etc/fstab ด้วย text editor:

sudo nano /etc/fstab

ตรวจสอบให้แน่ใจว่า entry ของ file system ถูกตั้งค่าถูกต้อง โดยใช้ option defaults หรือกำหนดเป็น "rw" (read/write) อย่างชัดเจน:

/dev/sdX1 /mount/point ext4 defaults 0 2

เป็นขั้นตอนสุดท้าย บันทึกการเปลี่ยนแปลงแล้วรีบูตระบบ:

sudo reboot

เมื่อทำตามขั้นตอนเหล่านี้แล้ว คุณควรสามารถแก้ปัญหา read only file system บนระบบ Linux ได้ ไม่ว่าจะเป็นความผิดพลาดชั่วคราว file system เสียหาย หรือการตั้งค่าที่ผิดพลาดใน /etc/fstab, วิธีแก้ไขเหล่านี้ครอบคลุมสาเหตุและการแก้ปัญหาที่พบบ่อยที่สุด หากปัญหายังคงอยู่หลังจากลองวิธีเหล่านี้แล้ว ลองขอความช่วยเหลือจากชุมชนผู้ใช้ Linux หรือพิจารณาติดต่อผู้เชี่ยวชาญ

การป้องกันและแนวทางปฏิบัติที่ดี

มีวิธีป้องกันที่ได้ผลหลายอย่างที่คุณสามารถทำได้เพื่อหลีกเลี่ยงปัญหา read only file system บน Linux ในอนาคต ส่วนนี้จะพาไปดูกลยุทธ์ต่าง ๆ สำหรับรักษา file system ใน Linux ให้อยู่ในสภาพดี

อัปเดตระบบและสำรองข้อมูลเป็นประจำ

อัปเดตระบบให้เป็นเวอร์ชันล่าสุดอยู่เสมอ ทั้ง patches และ updates ต่าง ๆ ซึ่งช่วยป้องกันบั๊กและช่องโหว่ที่อาจทำให้เกิดข้อผิดพลาดกับ file system

ปิดระบบอย่างถูกวิธี

ปิดระบบให้ถูกขั้นตอนเสมอ เพื่อป้องกันการดับเครื่องกะทันหันที่อาจทำให้ file system เสียหาย นอกจากนี้ควรหลีกเลี่ยงการกดปุ่มเปิด/ปิดค้างไว้เพื่อบังคับปิดเครื่อง ยกเว้นในกรณีที่ไม่มีทางเลือกอื่น

ตรวจสอบสุขภาพดิสก์

การตรวจสอบสุขภาพดิสก์อย่างสม่ำเสมอช่วยป้องกันปัญหา read only file system บน Linux ได้ คุณสามารถรันการตรวจสอบ file system เป็นประจำโดยใช้ fsck เพื่อระบุและแก้ไขปัญหาที่อาจเกิดขึ้นก่อนที่จะลุกลามกลายเป็นปัญหาใหญ่

ขั้นตอนเหล่านี้จะช่วยให้คุณลดโอกาสการเกิดข้อผิดพลาด read-only file system บน Linux ได้

บทสรุป

การพบข้อผิดพลาด read-only file system บน Linux อาจน่าหงุดหงิด แต่ถ้าคุณเข้าใจปัญหาและมีเครื่องมือที่เหมาะสม คุณก็แก้ไขได้ไม่ยาก บทความนี้อธิบายวิธีระบุสาเหตุ เลือกวิธีแก้ไขที่ถูกต้อง และนำระบบกลับมาทำงานได้ตามปกติ รวมถึงแนวทางป้องกันและแนวปฏิบัติที่ดีเพื่อไม่ให้ปัญหาเดิมเกิดขึ้นอีก

คำถามที่พบบ่อย

อะไรทำให้ไฟล์ระบบของ Linux กลายเป็น read-only?

มีหลายสาเหตุที่ทำให้เกิดปัญหา read-only file system บน Linux ไม่ว่าจะเป็นข้อผิดพลาดของดิสก์ การปิดเครื่องที่ไม่ถูกต้อง ฮาร์ดแวร์ขัดข้อง หรือไฟล์ระบบเสียหาย

เป็นไปได้หรือไม่ที่จะกู้คืนข้อมูลจากระบบไฟล์แบบอ่านอย่างเดียว

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

แชร์

บทความเพิ่มเติมจากบล็อก

อ่านต่อ

พร้อมติดตั้งหรือยัง? เริ่มต้น $2.48/เดือน

คลาวด์อิสระ ตั้งแต่ปี 2008 AMD EPYC, NVMe, 40 Gbps คืนเงินภายใน 14 วัน