ฉันจะตรวจสอบ / dev / xvda1 ได้อย่างไร


60

ในการเข้าสู่ระบบอินสแตนซ์ EC2 (Ubuntu) ฉันเห็น

*** /dev/xvda1 should be checked for errors ***

ฉันทำไม่ได้fsck /dev/xvda1เพราะติดตั้งอยู่และsudo umount /dev/xvda1ล้มเหลวเนื่องจากใช้งานอยู่ lsofแสดงให้เห็นว่า

jbd2/xvda  172               root  cwd       DIR              202,1     4096          2 /
jbd2/xvda  172               root  rtd       DIR              202,1     4096          2 /
jbd2/xvda  172               root  txt   unknown                                        /proc/172/exe

และkill -SIGKILL 172ไม่มีประสิทธิภาพ

จะทำอย่างไร?


คุณสามารถตั้งค่า / dev / xvda1 เป็น "noauto" ใน fstab และ reboot ได้หรือไม่?
Nils Toedtmann

สำหรับ Ubuntu ดูคำตอบได้ที่askubuntu.com/a/548772/184435
danorton

คำตอบ:


51

ลินุกซ์ส่วนใหญ่ในปัจจุบันควรทำการ fsck ที่ถูกบังคับในเวลาบูตเมื่อไฟล์ / forcefsck มีอยู่บนระบบ หากคุณมีอิสระในการรีบูต VM ให้เรียกใช้

touch /forcefsck

จากนั้นรีบูตตามความสะดวกของคุณ


95

สำหรับอินสแตนซ์อูบุนตู EC2 ของเราคำตอบข้างต้นไม่ได้ผลอย่างสมบูรณ์

บน Ubuntu ตามค่าเริ่มต้นการตรวจสอบจะไม่เปิดใช้งานในไฟล์rcS ดังนั้น

  1. แก้ไขไฟล์ rcS sudo vi / etc / default / rcS

ด้านล่างบรรทัด

#FSCKFIX=no

เพิ่ม

FSCKFIX=yes
  1. แก้ไขไฟล์ fstab sudo vi / etc / fstab

ค้นหาระเบียนสำหรับ / และหากตัวเลขสุดท้ายคือ '0' เปลี่ยนเป็น '1' ฟิลด์สุดท้ายคือ fsckorder และถูกใช้โดย fsck เพื่อตัดสินใจลำดับของการตรวจสอบดิสก์ หากมีค่าเป็น '0' ดิสก์ที่จะข้าม

สำหรับเช่น

LABEL=cloudimg-rootfs   /        ext4   defaults,discard        0 0

ไปยัง

LABEL=cloudimg-rootfs   /        ext4   defaults,discard        0 1 
  1. สร้างไฟล์ / forcefsck

    sudo touch / forcefsck

รีบูตจากคอนโซล ec2

เปลี่ยนค่า fsckorder จาก '1' เป็น '0' ใน / etc / fstab ลบบรรทัดFSCKFIX=yesเพื่อให้ไฟล์ rcS กลับสู่สถานะเดิม

หวังว่ามันจะช่วย


5
สิ่งนี้ใช้ได้สำหรับฉัน เพียงแค่ทำ "touch / forcefsck" ไม่สามารถแก้ปัญหาได้ฉันต้องเปิดใช้งาน FSCKFIX ด้วย
Florin Andrei

1
กันที่นี่; เพียงแค่การทำsudo touch /forcefsckก่อนที่จะรีบูตเครื่องไม่ได้ทำงานบน Ubuntu 14.04 ของระบบ แต่คำตอบนี้ได้
Teemu Leisti

ฉันต้องทำอีกหนึ่งขั้นตอน - การปรับเปลี่ยนเป็น / etc / fstab ตามที่อธิบายไว้ที่นี่: nathanpfry.com/ ... นั่นแปลกเพราะครั้งสุดท้ายที่ฉันเกิดเหตุการณ์นี้ขึ้นฉันใช้คำตอบของคุณและทำงานตามที่เป็นอยู่
childofsoong

2
ขอบคุณนี้แก้ไขให้ฉันในอินสแตนซ์ ec2 จาก AWS ฉันไม่ต้องรีบู๊ตจากคอนโซลsudo rebootการเปลี่ยนแปลงของคุณก็ง่ายขึ้น
Ralph

นอกจากนี้ยังแก้ไขปัญหาในเครื่องคอมพิวเตอร์ของฉัน ฉันเชื่อว่าควรทำเครื่องหมายว่าดีที่สุด
Arda

7

เนื่องจากคุณไม่สามารถบูตเป็นดิสก์สดได้นี่อาจฟังดูแปลก ๆ แต่ฉันคิดว่ามันจะทำงานได้)

ระดับสูง:

  • บูตเข้าสู่อินสแตนซ์ใหม่ (อีกครั้ง)
  • แนบที่เก็บข้อมูลจากอินสแตนซ์เก่าไปยังใหม่ (ปัจจุบัน)
  • fsckวิ่ง
  • แยกการจัดเก็บข้อมูลจากใหม่ (ปัจจุบัน) และติดตั้งใหม่เพื่ออินสแตนซ์เก่า

0

ฉันเพิ่งทำ 3 ขั้นตอนด้านล่างและแก้ไขปัญหา

  1. เพิ่ม "FSCKFIX = ใช่" ไปยัง / etc / default / rcS
  2. sudo touch / forcefsck
  3. sudo รีบูต

ขอบคุณทุกคน

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