Hi all,

I am having a strange new issue with the one of the raspberry pi 4b I have running at home. One of them failed/restarted for some reasons and it is now stuck at boot with the line:

Waiting for root device LABEL=writable…

I am booting this PI from USB. From what I can see the disk is ok. I can mount it on my laptop and access it correctly. The partition is labelled correctly. I tried to move it to another PI I have and I have the same error (I did this to remove the possibility it was the PI/USB port). I am pretty sure it is not the power that is the issue (since I am giving it more than enough).

All of this was working correctly until now (for months). Ubuntu may have updated something (my fault, I may not have disabled the auto-update) or something else could have broken.

I can try to point to the partition via UUID instead of the label, but something tells me that is not the issue. Did anybody encounter such an issue in the past or has any advice on how to debug it?

Thank you for your help and time.

===

Solution: https://sh.itjust.works/comment/1646333

  • @justpassingbyOP
    link
    English
    211 months ago

    Hi, just writing it here in case you were curious of the cause of the problem.

    I finally had some time today to work on it. What I tried was to copy the content of the system boot partition of another PI, one that I configured at the same time/day, and compared file by file with the content of the partition in the broken one. Now there were some diff in the some binary files as expected, but what surprised me was that one file was ONLY present in the working one… initrd.img XD Now, don’t ask me why the hell the file was not there. Maybe it got corrupted somehow, since nothing touches this partition as far as I am aware aside at boot time. Luckily, there was .bak file present in the partition which I renamed and… it worked.

    Lesson learned: I now have a copy of the boot partition of every PI I managed (it is only 167MB pre tar-zip, so it is not a cost) and I have it backed up safely on another system. Should another file get corrupted in the future (maybe this time without a .bak) I have an older working copy if it, and I can restore the service without the need to format everything.

    Thank you so much for your help and advice!

    • @Anafroj
      link
      English
      2
      edit-2
      11 months ago

      Ahah, so that’s what initrd are called on Pi. :P Good catch!

      Funny enough, I don’t have such file on mine, the only *.img I have is the kernel, kernel8.img. I guess it’s OS specific.

      The .bak things sound like an interrupted update, or something. Like if the updater moved the current initrd as a backup file, then started building the new initrd and crashed or was rebooted before completion. That’s what I really dislike about automatic updates, I prefer to be sure to know it’s running, and see the output. :)

      Congrats on sorting it out!