วิธีแก้ไข“ sudo: ไม่สามารถเปิด…ระบบไฟล์แบบอ่านอย่างเดียว” ได้


137

ชื่ออาจไม่ได้อธิบายอย่างที่ฉันต้องการ แต่ไม่สามารถสร้างชื่อที่ดีกว่าได้

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

ฉันสามารถ SSH เข้าสู่เซิร์ฟเวอร์และเมื่อพยายามเริ่ม apache2 เช่นฉันได้รับต่อไปนี้:

username@srv1:~$ sudo service apache2 start
[sudo] password for username:
sudo: unable to open /var/lib/sudo/username/1: Read-only file system
 * Starting web server apache2                                                                                                                                                                                                               (30)Read-only file system: apache2: could not open error log file /var/log/apache2/error.log.
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.

เมื่อฉันลองรีสตาร์ทเซิร์ฟเวอร์ฉันจะได้รับ:

username@srv1:~$ sudo shutdown -r now
[sudo] password for username:
sudo: unable to open /var/lib/sudo/username/1: Read-only file system

เมื่อฉันรีสตาร์ทด้วยตนเองมันก็เริ่มขึ้นโดยไม่มีคำเตือนหรือข้อความบอกว่ามีบางอย่างผิดปกติ

ฉันหวังว่าจะมีใครบางคนชี้ให้ฉันไปในทิศทางที่ถูกต้องเพื่อแก้ไขปัญหานี้


ฉันแนะนำให้ @John เพื่อเปลี่ยนคำตอบเป็นคำตอบที่โพสต์ล่าสุดโดย Bibhas เพราะมันใช้งานได้จริงซึ่งคำตอบอื่น ๆ นั้นไม่มีประโยชน์เลย
Joshua Robison


ทุกคนคำถามนี้มีไว้สำหรับเซิร์ฟเวอร์ไม่ใช่พีซี The **quick start** option can be found in **power options** in the control panel of Windowsถ้าคุณมีปัญหานี้ในการบูตเครื่องคอมพิวเตอร์ของคู่ของคุณโปรดตรวจสอบ ฉันมีปัญหาเดียวกันกับ Ubuntu บน AWS
vanduc1102

คำตอบ:


66

ระบบไฟล์มักจะเข้าอ่านอย่างเดียวในขณะที่ระบบกำลังทำงานหากมีปัญหาความสอดคล้องของระบบไฟล์ สิ่งนี้ถูกระบุในfstabเป็นerrors=remount-roและจะเกิดขึ้นเมื่อการเข้าถึง FS ล้มเหลวหรือขอให้ทำซ้ำแบบอ่านอย่างเดียวฉุกเฉินผ่านAlt+ SysRq+ Uคุณสามารถเรียกใช้:

sudo fsck -Af -M

เพื่อบังคับให้ตรวจสอบระบบไฟล์ทั้งหมด ในฐานะที่เป็นหนึ่งในรัฐอื่น ๆ คำตอบการมองที่dmesgเป็นประโยชน์มาก

แก้ไข: อย่าลืม-Mบรรทัดคำสั่ง

หมายเหตุ:ดังกล่าวโดย Bibhas ในคำตอบของเขา : หากfsckติดหลังจากแบนเนอร์รุ่น:

$ sudo fsck -Af -M
fsck from util-linux 2.20.1

คุณอาจต้องการลองใช้ fsck เฉพาะของ EXT4

$ sudo fsck.ext4 -f /dev/sda1

หากมีคำถามว่าพาร์ติชัน/dev/sda1คือระบบไฟล์ ext4


2
ฉันคิดว่าคุณไม่ควรบังคับให้ระบบไฟล์ตรวจสอบระบบไฟล์ที่เมาท์ r / w อื่น ๆ ซึ่งอาจทำให้ข้อมูลของคุณเสียหาย เพิ่ม-Mตัวเลือกเพื่อข้ามระบบไฟล์ที่เมาท์ ( -M Do not check mounted filesystems and return an exit code of 0 for mounted filesystems.จาก FSCK (8))
gertvdijk

35
สิ่งนี้ไม่ช่วยฉันได้รับข้อผิดพลาดเดียวกันเมื่อพยายามเรียกใช้คำสั่งนั้น sudo: unable to open /var/lib/sudo/kuplack/1: Read-only file system fsck from util-linux 2.20.1
Mark Kramer

1
แต่ ... -M จะข้ามระบบไฟล์ที่เมาท์รวมถึง / dev / sda1 (หรือไดรฟ์ที่เมาท์รวมถึง / var / lib / sudo / ... ) @MarkKramer: sudo su; passwdผมขอแนะนำให้เสมอการตั้งค่ารหัสผ่านรากเมื่อติดตั้งลินุกซ์ด้วย su -c fsck -Af -Mแล้วคุณสามารถใช้
naught101

1
ใช่สำหรับฉันฉันต้องการลบ -M ตั้งแต่ / dev / sda1 ถูกเมานต์และเพื่อทำให้ชีวิตของคุณง่ายขึ้นเพิ่ม -Afy (The y หมายถึงตอบใช่ทุกคำแนะนำ) ... ฉันเล่นเร็วและหลวมด้วย VM ดังนั้นฉัน ' m มักจะโอเคกับการแก้ปัญหาประเภทนี้ แต่ถ้านี่คือฮาร์ดแวร์ที่ยังไม่ได้สำรองอาจใช้วิธีการอื่นและอ่าน dmesg
FreeSoftwareServers

2
@DarshanChaudhary แฟล็ก-Mทำให้ fsck ข้ามระบบไฟล์ที่เมาท์ ดูfsck (8)manpage
ζ--

45

นี่คือคำสั่งที่แก้ไขปัญหาของฉัน:

mount -o remount /

ดีกว่าการรีบูตหรือsudo fsck -Af


21
ไม่ดีกว่าถ้าระบบปฏิบัติการสร้างดิสก์ของคุณเป็นแบบอ่านอย่างเดียวเพื่อป้องกันความเสียหายที่อาจเกิดขึ้น
Drew Noakes

5
ไม่เพียงเท่านั้นรูทเท่านั้นจะสามารถติดตั้งระบบไฟล์ใหม่และsudoจะไม่ทำงานหากระบบไฟล์เป็นแบบอ่านอย่างเดียว
นาธานออสมัน

11
ไม่ช่วยฉันเพิ่งได้รับข้อความเดียวกัน:sudo: unable to open /var/lib/sudo/kuplack/1: Read-only file system mount: cannot remount block device /dev/sda2 read-write, is write-protected
Mark Kramer

3
o ใช่อันนี้ใช้งานได้
RT

2
mount: cannot remount /dev/sda8 read-write, is write-protected
Rishabh Agrahari

42

คำตอบโดย hexafraction ไม่ได้ผลสำหรับฉัน ทุกครั้งที่ฉันพยายามดำเนินการsudo fsck -Af -Mมันก็แค่แสดงให้เห็น

$ sudo fsck -Af -M
fsck from util-linux 2.20.1

และไม่มีอะไรอื่น ไม่มีข้อผิดพลาดหรืออะไร สำหรับฉันการบูตเป็นดิสก์สดและดำเนินการกับสิ่งนี้ -

sudo fsck.ext4 -f /dev/sda1

หากมีคำถามว่าพาร์ติชัน/dev/sda1คือระบบไฟล์ ext4


4
ขอบคุณสำหรับคำตอบนี้ นี่เป็นสิ่งเดียวที่ใช้งานได้จริง
Joshua Robison

5
-M หมายถึงไม่ทำการติดตั้งระบบไฟล์ ระบบไฟล์ / dev / sda1 ของคุณถูกเมาท์ (ฉันคาดเดาได้ที่ /) ดังนั้นมันถูกข้ามไป
dalore

3
sudo fsck.ext4 -f /dev/sda1โรงงาน ยังต้องการการรีสตาร์ท
efkan

1
มันใช้งานได้สำหรับฉันบน Ubuntu 16.04.3 ขอบคุณ
Rosário Pereira Fernandes

13

ลองใช้dmesg | grep "EXT4-fs error"เพื่อดูว่าคุณมีปัญหาใด ๆ ที่เกี่ยวข้องกับระบบไฟล์ / ระบบ journaling เอง ฉันอยากจะแนะนำให้คุณรีสตาร์ทระบบของคุณแล้ว นอกจากนี้sudo fsck -AfคำตอบโดยObsessiveSSOℲจะไม่เจ็บ


10

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

mount -o remount,rw /

นี่คือการแก้ไขปัญหาของฉันฉันใช้ hetzner cloud กับ 160gb ssd ไม่เคยมีข้อผิดพลาดดังกล่าวมาก่อน
Fathur Rohim

9

โปรดทราบว่าบางครั้งสิ่งนี้อาจเกิดจากคอมพิวเตอร์ลืมเวลาของระบบ - การตรวจสอบดิสก์ล้มเหลวเพราะวันที่ในวารสารอยู่ใน THE FUTURE!

การตั้งค่าเวลา BIOS (และการตรวจสอบแบตเตอรี่ BIOS) แก้ไขปัญหานี้ให้ฉันได้โดยไม่ต้องทำการกู้คืนดิสก์


ยินดีต้อนรับสู่ถาม Ubuntu! ฉันขอแนะนำให้แก้ไขคำตอบนี้เพื่อขยายด้วยรายละเอียดเฉพาะเกี่ยวกับวิธีการทำเช่นนี้ (ดูเพิ่มเติมฉันจะเขียนคำตอบที่ดีได้อย่างไรสำหรับคำแนะนำทั่วไปเกี่ยวกับคำตอบประเภทใดที่ถือว่ามีค่ามากที่สุดใน Ask Ubuntu)
David Foerster

ฉันค่อนข้างแน่ใจว่าสิ่งนี้กำลังเกิดขึ้นกับฉันในตอนนี้เนื่องจากคอมพิวเตอร์ของฉันบอกฉันว่ามันลืมเวลาของเช้านี้
nomen

2

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

คุณควรตรวจสอบdmesgข้อผิดพลาดเกี่ยวกับดิสก์ของคุณ

Google เต็มไปด้วยการอภิปรายเกี่ยวกับเรื่องนี้และคุณสามารถเลือกสิ่งที่ใกล้เคียงกับการกำหนดค่าของคุณได้ แต่dmesgโดยทั่วไปแล้วดูได้เพียงพอ


สิ่งที่หนึ่งควรดู / grepเพื่อการdmesgส่งออก?
isomorphismes

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

2

สำหรับฉันรีบูตระบบเพื่อแก้ไขปัญหานี้

sudo reboot

ตามที่เขาพูดถึง


2

(ลบคำตอบก่อนหน้านี้)

แก้ไข: ปัญหาหลักอยู่ที่ด้านข้างหน้าต่าง หลังจากอัปเดต Windows 10 ของฉันตัวเลือก 'เริ่มต้นอย่างรวดเร็ว' จะเปิดใช้งานโดยอัตโนมัติ เมื่อปิดใช้งานตัวเลือกนั้นอีกครั้งจากนั้นเริ่มต้นเครื่องอีกครั้งปัญหาก็หายไป Windows 10 ทำให้ฉันปวดหัวอย่างหนักเป็นเวลาหลายวัน :(

ตัวเลือก 'เริ่มต้นอย่างรวดเร็ว' สามารถพบได้ใน 'ตัวเลือกพลังงาน' ในแผงควบคุม ปิดการใช้งาน !!! :)


เพียงคนเดียวที่ทำงาน ที่ค่าใช้จ่ายของความเร็วเริ่มต้น
NelsonGon

2

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

แผงควบคุม> ฮาร์ดแวร์และเสียง> ตัวเลือกการใช้พลังงาน> (ทางซ้าย) เลือกสิ่งที่ปิดฝา> การเปลี่ยนแปลงการตั้งค่าที่ไม่พร้อมใช้งานในปัจจุบัน> ยกเลิกการเลือก 'เปิดใช้การเริ่มต้นอย่างรวดเร็ว'

ตอนนี้การบู๊ตเข้า Ubuntu จะแก้ไขปัญหาได้ หวังว่านี่จะช่วยได้!

https://youtu.be/KJ-0KPZhAFo


1

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

sudo fsck.ext4 -f /current/filesystem/mount/point

มันจะแจ้งให้แก้ไขข้อผิดพลาดของระบบไฟล์ของคุณ คุณต้องรีบูตระบบของคุณจากระยะไกล


0

ในกรณีของฉันมันเป็น RAID 1 ที่เสถียรหลังจากการติดตั้งครั้งแรก ฉันมี / boot และ / บน s / w RAID1 ต้องออกจากระบบข้ามคืนและรีบูตทุกอย่างทำงานได้ดี ริชาร์ด


0

ตรวจสอบว่าคุณมีฮาร์ดแวร์ที่ผิดพลาดหรือไม่ฉันได้รับข้อผิดพลาดนี้เนื่องจากฮาร์ดดิสคลาย Ran mount -o remount rw / และใช้งานได้ดี


-1

เป็นการตั้งค่าการบู๊ตที่ผิดพลาด (ลองติดตั้ง/ด้วยext2) ไม่ใช่ข้อผิดพลาดทางกายภาพของไดรฟ์หรือพาร์ติชัน

dmesg | grep "error" ให้ฉัน:

ext3-fs (sda2): error: couldn't mount because of unsupported optional features (240) 
ext2-fs (sda1): error: couldn't mount because of unsupported optional features (240) 
ext4-fs (sda2): mounted file system with ordered data mode: opts: (null)

มันติดตั้ง/เป็นแบบอ่านอย่างเดียวเนื่องจากerror=mount-roคำสั่งfstab


-1

ฉันกำลังใช้รีลีส 18.04 LTS และสิ่งที่ฉันทำคือก่อนอื่นฉันก็ยกเลิกการต่อเชื่อมไดรฟ์ที่เสียหายจากนั้นฉันก็ไปที่แอพ“ Disks” โดยเข้าไปที่เส้นประ จากนั้นฉันเลือกไดรฟ์ที่เสียหาย ตรวจสอบให้แน่ใจว่าไม่ได้ต่อเชื่อมกับที่อื่นมันจะไม่ทำงาน ในเมนูตัวเลือก (รูปร่างเฟืองเล็ก ๆ ) และคลิกที่ "ระบบไฟล์ซ่อมแซม" บูม! ทำงานเหมือนจับใจ

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