2

Tonight, I was adding a GPS module to my RPi3 by following a tutorial from Adafruit, and now my RPi3 is not booting up.

This is the last change I did before doing a reboot via sudo shutdown -r: Changes to /boot/cmdline.txt before rebooting I changed it to: dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

After this change and the reboot, I tried to SSH into the RPi3 after a couple of minutes but SSH didn't work. I unplugged the RPi3 and plugged it again because I thought I might have shut the RPi3 down instead, but it didn't boot up either.

The red light on the board lights up, but the green light doesn't light up anymore.

I tried connecting an ethernet cable to it, but the ethernet lights did not light up.

I connected an HDMI cable to it and this is the error message I see: Boot Error

Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown block(179, 2)

I unplugged the RPi3 again and plugged the microSD card into my laptop in hopes to save my code, but my laptop does not recognize the SD card.

Does anyone know a way to save my code and to fix the card? Any help would be great. Thank you.

3 Answers 3

2

Long Story Short:

Issue: editing cmdline.txt was the issue of RPi3 not booting

Solution: plugged SD card into an adapter (Polaroid Cube+ in my case) that could read the card and used Ubuntu to revert the cmdline.txt card

Original cmdline.txt contents: dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

Story:

I was following this tutorial to use a GPS with the RPi3. After I changed the cmdline.txt file and rebooted, RPi3 didn't reboot. I thought I shut the RPi3 down instead so I unplugged and replugged RPi3. It still didn't boot up after so I thought I messed up the SD card.

Initially, when I inserted the RPi3 micro SD card into my laptop, the card reader did not recognize the SD card. I then started to use different card readers and ended up inserting the RPi3 SD card into my Polaroid Cube+ and then connected my Polaroid Cube+ to my laptop. My laptop recognized the SD card that way; however, it only saw the "RECOVERY" partition. I didn't see "cmdline.txt" in there so I googled for different solutions.

Second attempt was to put the SD card back into the RPi3, press SHIFT on the attached USB keyboard while RPi3 boots to go into Recovery mode (NOOBS). Once I got into Recovery mode, I clicked the "Edit Config" icon. That allowed me to change some configurations on "Boot" and the "cmdline.txt". I copied the default cmdline.txt configurations from here: http://elinux.org/RPi_cmdline.txt and rebooted. This did not fix the issue; however, it got me one step further. In addition to the "VFS Unable to mount root fs on unknown block()", it gave me something like "entering kdb on processor 2 due to keyboard entry."

Third attempt worked like a charm. I was panicking because I didn't have any backup laptops or computers, but then I remembered that I have Ubuntu installed on my VirtualBox. I started Ubuntu and then attached the SD card (using the Polaroid Cube+) to Ubuntu virtual machine. HOORAY!!! Ubuntu read ALL the partitions on the RPi3 SD card!!!! The four partitions are root, boot, RECOVER, and SETTINGS. First thing I did was copy my code for backup. Second thing I did was look for the cmdline.txt file. Luckily, I made a backup of the cmdline.txt file in the same directory before I changed it. I replaced the cmdline.txt file with the backup file, inserted the SD card into my RPi3, and the RPi3 BOOTED AGAIN!

2
  • 1
    NO the real issue is that you are using NOOBS and changed root=/dev/mmcblk0p7 to root=/dev/mmcblk0p2 without understanding (possibly due to an inadequate tutorial) and followed instructions for a normal Rasbpian installation. Obviously if you pointed the boot to an incorrect partition boot will fail. If you wanted to disable serial console you should have done via raspi-config . You should complain to Adafruit about their instructions. Also if you had mentioned that you were using NOOBS people could have helped.
    – Milliways
    May 2, 2016 at 9:48
  • 1
    @Milliways would you like to post that as an answer? May 3, 2016 at 17:41
0

VFS Unable to mount root fs on unknown-block (179,2) is the problem you need to fix. It means that you have a broken file system at hand, which could be just the file system or even a broken SD card.

Try:

  • replacing all files in the boot partition (FAT) if able to mount the card on another system
  • start from scratch, format and partition card, re-image the full system (that however means all files are lost - learn the value of independent backups)
  • use a new SD card (to the same ends as bullet two)

See also: https://www.raspberrypi.org/forums/viewtopic.php?t=12245

2
  • Do you think this had anything to do with the OP altering /boot/cmdline.txt ? May 2, 2016 at 7:04
  • Given that the card cannot be mounted on another system I'd almost rule that out.
    – Ghanima
    May 2, 2016 at 7:20
0

This worked for me:

1 - Insert your SD Card in any PC (override any format message if using windows).

2 - Add "gpiotriggerenable" (without quotes) at the end of "recovery.cmdline" file (located at "root" folder).

3 - Wire jumper pin 3 to pin 6 (GND) and reboot to get NOOBS Recovery screen.

4 - Edit cmdline.txt: you have a problem with root partition, so try changing root path back to "root=/dev/mmcblk0p7", close and reboot without jumper.

5 - Remeber to remove "gpiotriggerenable" from recovery.cmdline file.

Hope it helps!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.