ฉันจะ fsck พาร์ติชันได้อย่างไรเมื่ออุปกรณ์อ่านว่าไม่ว่าง (แต่ได้รับการยืนยันเป็นอย่างอื่น)?


11

ฉันพยายามเรียกใช้fsck -p /dev/sda5เพื่อซ่อมแซมข้อผิดพลาดบนพาร์ติชัน ext4 อย่างไรก็ตามคำสั่งส่งออก

fsck from util-linux-ng 2.17.2
fsck.ext4: Device or resource busy while trying to open /dev/sda5
Filesystem mounted or opened exclusively by another program?

ฉันยืนยันการใช้/etc/mtabและlsofไม่มีอะไรใช้พาร์ติชั่นและไม่ได้ติดตั้ง ฉันยังเคยfuser -k /dev/sda5บังคับให้ปิดสิ่งใดก็ตามโดยใช้ไฟล์และumountพยายามที่จะยกเลิกการต่อเชื่อมให้เป็นประโยชน์

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

คำสั่งทั้งหมดถูกดำเนินการในฐานะรูทจาก Ubuntu 10.04 32- บิต liveCD พาร์ติชันเป็นส่วนระบบ (ไม่ใช่ที่บ้าน) ของการติดตั้ง Ubuntu 10.04 32- บิต


ฉันพบวิธีการแก้ไขปัญหาที่ใหญ่กว่าซึ่งเกี่ยวข้องกับคำถามนี้ แต่ฉันยังคงมองหาคำตอบว่าจะบังคับได้fsckอย่างไรถ้ามันคิดว่าอุปกรณ์ไม่ว่าง (หรือสาเหตุที่ทำไม่ได้)
Keeblebrox

ฉันพบปัญหาเดียวกันในระบบ RHEL5.8 / tmp ถูกถอดออกแล้ว / etc / mtab และ / proc / mounts ไม่แสดงร่องรอยของระบบไฟล์ ฉันได้รีบูตเครื่องทำให้แน่ใจว่าฉันเป็นคนเดียวที่เข้าสู่ระบบ lsof ไม่แสดงไฟล์ที่ใช้งานบน / tmp โพรซีเดอร์เดียวกันทำงานได้ดีบนเซิร์ฟเวอร์ที่คล้ายกัน 4 ตัวที่ติดตั้งโดยใช้โปรไฟล์เริ่มต้นเดียวกัน ความแตกต่างระหว่างเซิร์ฟเวอร์เหล่านั้นกับอันนี้ก็คืออันนี้มีที่เก็บข้อมูล SAN ติดอยู่ multipath daemon ทำให้เกิดสิ่งนี้หรือไม่
Bram

มันไม่ได้ช่วยในกรณีของฉัน แต่ Red Hat KB ( access.redhat.com/knowledge/solutions/54184 ) แนะนำให้เพิ่มตัวเลือกเคอร์เนล nodmraid เป็นวิธีแก้ปัญหาสำหรับปัญหานี้
Bram

คำตอบ:


4

มีสิ่ง (โดยปกติใน kernel เช่นหัวข้อ NFS ไฟล์แลกเปลี่ยนผูกม้า ฯลฯ ) fuserที่สามารถให้ระบบแฟ้มไม่ว่างที่จะไม่แสดงในเป็น

หากคุณลองfsckใช้ระบบไฟล์ที่ติดตั้งอยู่ระบบจะเสียหาย คุณควรพบซีดีสดที่ไม่ได้เมานต์ระบบไฟล์ของคุณโดยอัตโนมัติเช่น Knoppix หรือ Fedora


ทุกอย่างถูกเรียกใช้จากดิสก์สดแล้ว ฉันพยายามfsckระบบไฟล์ในเครื่องดังนั้นฉันหวังว่า NFS จะไม่ทำให้มันยุ่ง - แต่ฉันได้รับสิ่งที่คุณกำลังพูดเกี่ยวกับเคอร์เนลที่ทำให้มันยุ่งในวิธีที่ไม่จำเป็นต้องปรากฏขึ้น เนื่องจากมันยังคงเกิดขึ้นในสภาพแวดล้อมดิสก์สดคุณรู้วิธีหยุดเคอร์เนลไม่ให้เข้าถึงได้นานพอสำหรับฉันfsckหรือไม่
Keeblebrox

Yikes มีการใช้งานจากดิสก์สดหรือไม่? ฉันนึกถึงสองสิ่งเท่านั้น: 1) ลองใช้ดิสก์สด (Fedora แทนที่จะเป็น Ubuntu เป็นต้น) 2) ตรวจสอบ / etc / fstab บนระบบจริง อาจจะมีไฟล์ swap หรือ bind mount ที่เปิดขึ้นมาโดยอัตโนมัติ? ไม่จำเป็นต้องอยู่ในลำดับที่ฉันอาจเพิ่ม ...
สตีเว่น Pritchard

ตกลงอย่างใดฉันทั้งหมดพลาดบรรทัดสุดท้ายของคำถาม ฉันได้อัปเดตคำตอบของฉันอย่างเหมาะสมแล้ว
Steven Pritchard

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

บางที mdadm ตรวจพบลายเซ็นการจู่โจมบนพาร์ติชั่นแล้วผูกไว้กับมัน? ตรวจสอบ / proc / mdstat
psusi


2

ลองบูท liveCD ตัวอื่น - ฉันแนะนำSystemRescueCDที่ออกแบบมาโดยเฉพาะสำหรับการแก้ปัญหาการติดตั้ง linux มันยังเล็กกว่า OS liveCD ทั่วไป และเมื่อต้องการปลอดภัยให้เรียกใช้fsckจากคอนโซล (ไม่มี X)

ถ้ามาตรฐานไม่ทำงานคุณยังสามารถลองfsck -pe2fsck -y -f


ตามที่หน้าคน , e2fsck -y -fกองกำลังตรวจสอบในพาร์ทิชันที่สะอาด ไม่ได้พูดถึงอะไรเกี่ยวกับพาร์ติชั่นที่ติดตั้ง คุณรู้หรือไม่ว่าจะบังคับให้มีการตรวจสอบด้วยเช่นกัน?
Keeblebrox

อาจไม่ได้ แต่คุณควรหลีกเลี่ยงระบบไฟล์ที่เมาท์ด้วย fsck-ing (ดูย่อหน้าที่ด้านบนของe2fsckmanpage) ความคิดอื่น: หาก/etc/mtabดูเหมือนว่าจะไม่ได้ติดตั้งพาร์ติชัน แต่คุณยังได้รับข้อผิดพลาดคุณควรตรวจสอบ/proc/mountsเนื่องจากmtabไฟล์อาจล้าสมัยด้วยเหตุผลแปลก ๆ
rozcietrzewiacz

0

คำถาม / คำตอบที่เกี่ยวข้องที่/server/556014/centos-thinks-disk-is-busy-cant-mount-or-fsck

โดยเฉพาะอย่างยิ่งระบบไฟล์อาจมีการใช้งานโดยสิ่งอื่นนอกเหนือจากเมานต์ของ fsck ฟิวเซอร์และ lsof อาจช่วยในการค้นหาว่าไดรเวอร์ / แอปพลิเคชันนั้นคืออะไร

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