Kernel panic-not syncing: VFS: ไม่สามารถเมานต์รูท fs บนบล็อกที่ไม่รู้จัก (179,6) ที่รัน Raspbian ที่ด้านบนของ NOOBS


26

เมื่อบูทลำดับจะหยุดที่:

Kernel panic-not syncing: VFS: ไม่สามารถเมานท์รูท fs บนบล็อกที่ไม่รู้จัก (179,6)

ฉันจะทำอย่างไรเพื่อให้ Raspberry Pi 2 ของฉันสามารถบู๊ตได้อีกครั้งโดยใช้การติดตั้ง Raspbian ที่มีอยู่แล้วเนื่องจากมันมีไฟล์และการกำหนดค่าหลายอย่างที่สร้างความเจ็บปวดเกินกว่าจะสร้างใหม่ได้?

หมายเหตุ: นี้ , นี้และนี้จะเกี่ยวข้อง แต่จะแตกต่างกัน

คำตอบ:


28

โปรดทราบว่ามีข้อแตกต่างที่ชัดเจนระหว่างข้อผิดพลาดโดยขึ้นอยู่กับจำนวนท้ายและฉันจะไม่ลงรายละเอียดมากนักเนื่องจากพวกเขาสามารถค้นพบทางออนไลน์ได้ง่ายหากจำเป็น การแก้ไขเหล่านี้สันนิษฐานว่าคุณมีการเชื่อมต่อที่จำเป็นทั้งหมด (พลังงาน, การ์ด SD, HDMI, แป้นพิมพ์แบบมีสาย , เมาส์) และกำลังใช้ Raspbian พร้อมกับ NOOBS

รายละเอียดของข้อผิดพลาดที่ลงท้ายด้วย2อยู่ที่ท้ายคำตอบ หากข้อความแสดงข้อผิดพลาดของคุณลงท้ายด้วย6ดังนี้:

Kernel panic-not syncing: VFS: ไม่สามารถเมานท์รูท fs บนบล็อกที่ไม่รู้จัก (179, 6 )

คุณจะต้องทำการตรวจสอบและซ่อมแซมระบบไฟล์:

  1. เริ่ม Raspberry กดShiftแป้นค้างไว้
  2. เมื่อโหลด NOOBS แล้วให้กดAlt-F2เพื่อเข้าถึงบรรทัดคำสั่งการกู้คืน
  3. เข้าสู่ระบบด้วยชื่อผู้ใช้และรหัสผ่านrootraspberry
  4. ประเภทsudo fsck.ext4 -y /dev/mmcblk0p6. วิธีนี้จะสแกนและพยายามซ่อมแซมระบบไฟล์ที่เสียหาย (แทนที่ ext4 ด้วยประเภทพาร์ติชันของคุณหากจำเป็น) โปรดทราบว่าไม่รองรับautoโหมดของfsck(เช่นพิมพ์fsckแทนเท่านั้นfsck.ext4)
  5. พิมพ์sudo shutdown -h nowเพื่อปิด Raspberry อย่างหมดจด
  6. ถอดสายไฟออกแล้วเสียบกลับเข้าไปใหม่ Raspberry ควรเริ่มต้นได้ดี

หากข้อความแสดงข้อผิดพลาดของคุณลงท้ายด้วย2ดังนี้:

Kernel panic-not syncing: VFS: ไม่สามารถเมานท์รูท fs บนบล็อกที่ไม่รู้จัก (179, 2 )

เป็นไปได้ว่าปัญหาเกิดจากข้อผิดพลาดในการอัปเดต การแก้ไขเกี่ยวข้องกับการสลับ2เป็น6 :

  1. เริ่ม Raspberry กดShiftแป้นค้างไว้
  2. คลิกที่ปุ่มหรือกดEdit config (e)e
  3. คลิกที่cmdline.txtแท็บหรือกดright arrowบนแป้นพิมพ์
  4. แทนที่:

root = / dev / mmcblk0p 2

กับ

root = / dev / mmcblk0p 6

  1. คลิกOKจากนั้นกดescapeบนแป้นพิมพ์เพื่อดำเนินการตามลำดับการบู๊ต

Pi ของคุณควรบูตได้ดี หากข้อผิดพลาดเดียวกันแสดงให้เห็น แต่มี6ดำเนินการตามขั้นตอนข้างต้น


ในบางกรณี Pi อาจเพิกเฉยต่อการเปลี่ยนแปลงที่เกิดขึ้นใน NOOBS GUI และคุณจะยังคงเห็นข้อผิดพลาดที่แน่นอนเหมือนกัน2เมื่อสิ้นสุดการบู๊ต ในกรณีนี้คำตอบของ tktbjpอาจช่วยได้:

จริง ๆ แล้วมันง่ายในการใช้โหมดการกู้คืน ฉันเข้าสู่โหมดการกู้คืนและกด alt-F2 เพื่อบันทึกเป็นรูท การเปลี่ยน cmdline.txt จาก GUI ไม่ทำงาน

หลังจากเข้าสู่ระบบด้วยรูทด้วยรหัสผ่าน raspberry ให้ตรวจสอบว่ามีไดเร็กทอรี / boot ใด ๆ หรือไม่ ส่วนใหญ่อาจจะไม่ปรากฏ หากไม่สร้างขึ้นโดยใช้ mkdir / boot จากนั้นใช้โปรแกรมแก้ไข vi เพื่อสร้าง cmdline.txt

#cd /boot

#vi cmdline.txt

in vi editor เปลี่ยนรูทเป็น mmcblk0p6 เนื้อหา cmdline.txt ของฉันดูเหมือนว่าdwc_otg.lpm_enable=0 console=ttyAM0,115200 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait

บันทึกไฟล์ จากนั้นเป็นสิ่งสำคัญที่จะทำการซิงค์

#sync

จากนั้นบูตบอร์ด ตรวจสอบข้ามการใช้ GUI หาก cmdline มีการเปลี่ยนแปลงจริงๆ PI B + ของฉันกำลังทำงาน


1
แทนการกด 'y' หรือ Enter ด้วยตนเองคุณสามารถใช้ตัวเลือก '-y' ของ fsck ...
Andrey Sapegin

1
คำแนะนำที่ดีขอบคุณสำหรับความช่วยเหลือ สำหรับฉันมันไม่ทำงานกับคำสั่ง sudo ระบบไม่สามารถค้นหาได้ แต่มันก็ไม่เป็นไร!
Roker Pivic

3
เริ่มราสเบอร์รี่ด้วยการกดปุ่ม Shiftหรือไม่? ฉันคิดว่าคุณหมายถึงแป้นพิมพ์จริงเพราะแป้นพิมพ์ไร้สายไม่สามารถใช้งานได้ในขณะบูต
IgorGanapolsky

1
@IgorGanapolsky ฉันไม่เคยใช้คีย์บอร์ดไร้สายกับ Pi ของฉันดังนั้นฉันจึงไม่ทราบปัญหานี้ ฉันได้อัพเดตคำตอบแล้วขอบคุณ
Vlad Schnakovszki

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

5

ฉันมีปัญหาเดียวกัน แต่ด้วยบล็อกที่ไม่รู้จัก (179.7) และวิธีแก้ปัญหาแรกทำงานได้ดีเพียงแค่แทนที่สิ่งนี้:

sudo fsck.ext4 -y /dev/mmcblk0p6

ด้วยสิ่งนี้:

sudo fsck.ext4 -y /dev/mmcblk0p7

ฉันไม่ใช่ผู้เชี่ยวชาญ แต่หวังว่าสิ่งนี้จะช่วยผู้อื่นได้


1
คือfsck.ext4คำสั่งที่มีอยู่บน Mac?
IgorGanapolsky

ไม่น่าเสียดายที่ไม่ใช่
David Artmann

4

หากต้องการจัดการกับปัญหาหลัก (ไม่ใช่วิธีแก้ปัญหา) หากคุณไม่สามารถบูตได้ (หรือคุณไม่มี "NOOBS") คุณต้อง:

  • ลบการ์ด SD ออกจาก Pi ของคุณและวางไว้ในเครื่องอ่านการ์ดในคอมพิวเตอร์ของคุณลินุกซ์
  • หากเมาท์โดยอัตโนมัติให้ติดตั้งพาร์ติชันทั้งสอง ตรวจสอบชื่ออุปกรณ์ที่ถูกต้องด้วยและfdisk -l mount -lในตัวอย่างของฉันก็คือการติดตั้งเป็นและ/dev/sdb1 /dev/sdb2ดังนั้นเพื่อยกเลิกการต่อเชื่อมการใช้งานและumount /dev/sdb1 umount /dev/sdb2( ระวังที่จะตรวจสอบหมายเลขพาร์ทิชันของคุณ "2" นี่เป็นเพียงตัวอย่างของฉัน)
  • ตอนนี้คุณพร้อมที่จะดำเนินการตรวจสอบการแก้ไขต่อไป
    • ด้วยการfdisk -lระบุDOSพาร์ทิชันและตรวจสอบ / แก้ไขได้ด้วยfsck.fat -y /dev/sdb1( ตรวจสอบหมายเลขที่ถูกต้อง )
    • นอกจากนี้ยังfdisk -lแสดงext4หมายเลขพาร์ติชัน แก้ไขด้วยfsck.ext4 -y /dev/sdb2( ตรวจสอบหมายเลขที่ถูกต้องของคุณ )
  • หากเป็นอัตโนมัติอีกครั้งumountทั้งสองอีกครั้ง หากไม่พร้อมคุณก็พร้อมที่จะลบจากคอมพิวเตอร์ของคุณไปยัง Raspberry Pi แล้วเปิดใช้งาน

หากเป็นเพียงปัญหา "บล็อก" มันอาจจะเปิดใช้งานได้ หากKernel Panicดำเนินการต่อให้ตรวจสอบว่ามีการเปลี่ยนแปลงข้อความแสดงข้อผิดพลาดเป็นอย่างอื่นหรือไม่ ในกรณีนี้คุณควรมองหาคำตอบอื่น ๆ อีกครั้งหรืออาจลองเขียน SD Card ใหม่อีกครั้งตั้งแต่ต้น


3

ฉันลงเอยด้วยข้อผิดพลาดนี้หลังจากพยายามติดตั้ง Raspbian (Lite) บนการ์ด SD ที่เล็กเกินไป แน่นอนถ้าฉันดูผลลัพธ์จากกระบวนการ dd ฉันจะเห็นว่าก่อนที่จะวางการ์ดลงใน Pi ของฉัน:

$ dd bs=1m if=Downloads/2016-05-27-raspbian-jessie-lite.img of=/dev/rdisk3
Password:
dd: /dev/rdisk3: short write on character device
dd: /dev/rdisk3: Input/output error
969+0 records in
968+1 records out
1015808000 bytes transferred in 45.492548 secs (22329108 bytes/sec)

ฉันสิ้นสุดการติดตั้งMinibian


2

มีข้อผิดพลาดนี้สิ้นสุดใน2เมื่อทำซ้ำบัตรที่รู้จักกันดี โดยทั่วไปสิ่งที่ฉันไม่ได้รับการคัดลอกไบต์จากการ์ดเดิมไปยังสด / SD ddการ์ดใหม่ที่มี ฉันไม่ได้คาดหวังข้อผิดพลาดใด ๆ จากขั้นตอนง่าย ๆ นี้ดังนั้นลองจินตนาการถึงความประหลาดใจเมื่อพบข้อความนี้:

Kernel panic-not syncing: VFS: ไม่สามารถเมานท์รูท fs บนบล็อกที่ไม่รู้จัก (179, 2 )

หลังจากการค้นหามันกลับกลายเป็นว่า SD การ์ดสดเล็กน้อยมีขนาดเล็กลงกว่าเดิม

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

เนื่องจากฉันต้องการเก็บไฟล์และการตั้งค่าของฉันจริงๆฉันจึงย่อขนาดระบบไฟล์รูท สิ่งนี้เกี่ยวข้องกับการเรียกใช้resize2fsก่อนจากนั้นจึงfdiskปรับพาร์ติชัน โปรดทราบว่าเครื่องมือหนึ่งรายงานขนาดบล็อก 4k ส่วนอีกเครื่องมือทำงานกับการเริ่ม / หยุดการเซกเตอร์ 512 ไบต์ มันง่ายที่จะเลอะ ดังนั้นควรสำรองข้อมูลรูปภาพที่เป็นที่รู้จัก

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

มันไปโดยไม่บอกว่าคุณควรมีพื้นที่เพียงพอในระบบไฟล์ที่จะสามารถหดมัน ...


1

ในกรณีของฉันฉันเนื่องจากการโคลน sd ใน sd อื่นเพราะต้นฉบับเสียหายเซกเตอร์นั้น

การโคลนใน Windows คุณสามารถใช้เครื่องมือนี้: Win32 ดิสก์ Imager

การหดภาพ SD ถ้า SD ใหม่มีขนาดเล็กแล้วเดิมคุณสามารถใช้สคริปต์นี้ใน VM ลินุกซ์ที่คุณได้แชร์ภาพแบบ SD: PiShrink

สุดท้ายหากคุณต้องการดูขั้นตอนทั้งหมดในวิดีโอนี้

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