Mirabox dist-upgrade causes system to deadlock/hang on bootup

May 22, 2013 by
Filed under: Development, General, Linux 

I think there’s something bad going on between GlobalScales patches in the rootfs images they have for download for the mirabox when doing an apt-get dist-upgrade to the latest version of debian. This causes a complete lockup during boot of the device (network seems to work, but ssh and services are not started in time, and the console is completely locked up). There is pretty much nothing that works in this state, and I’ve found no way to skip ahead and get a login prompt.

I tried booting to Single user mode, but this is not possible because GlobalScale make pretty much everything start in rcS.d. I’m stuck in the same position as in a normal boot as described above, nothing possible to do.

Finally I resorted to using init=/bin/bash and managed to locate the issue down to the S07mountall.sh and/or the S08mountall-bootclean.sh. It seems S07mountall.sh will mount everything from fstab, which also seems to mount “something” on /dev, causing all dev entries to go missing, and hence several different things will just not boot. rm -rf’ing the S07mountall.sh and S08mountall-bootclean.sh script seems to have fixed the issue for me. However,  I’ve severely remade the whole rc.d structure since I think it’s a really bad idea to start so much services in rcS.d as it will block single user mode and kind of against the design philosophy of the init system. This rework may have made the situation better or worse, I’m not completely sure.

If anyone is willing to go more in depth I’d be happy to go into the details with them on what I found.

As for the Mirabox, I think it’s a good device so far, but this is my second GlobalScale device (had a Guruplug Server Plus for almost 2 years as my home server). There are a few things that nags at me so far though:

The file system is having the same issues as the Guruplug Server Plus, strange scripts running at strange times in the bootup procedure (for example, all the stuff that’s gone into the rcS.d directory), the rc.local script calling the /root/init_setup.sh script which in turn is loading a bunch of binary blob drivers and so on and so forth. The device as it is looks really well engineered, but the software is really butchered because of these strange setups. Putting in some good time to create a good integration with Debian (since that’s what they are using anyways) would help insanely much. Also, documenting the reflashing processes and so forth could also be very much helpful.

Comments

2 Comments on Mirabox dist-upgrade causes system to deadlock/hang on bootup

  1. sjaak on Fri, 7th Jun 2013 15:56
  2. I was curious as to what changes you made to the /etc/rc*.d/ files to make it work, because I was also having problems after dist-upgrade. It first hanged at configuring bluetooth, then I removed all bluetooth packages (since I don’t really care for that anyway), then it hanged on “Setting up console font and keymap…”.

    In the end, did you manage to make it bootable again and thus able to run Debian 7?

  3. Oskar Andreasson on Sun, 9th Jun 2013 22:40
  4. Hi,

    I think the main issue is with the S07mountall.sh and S08mountall-bootclean.sh script. As stated a bit badly, I rm’d those rcS.d entries and it started booting properly afterwards again. Basically, it seems they are mounting dev filesystem which isn’t working properly, which causes startup scripts afterwards to fail miserably (bluetooth, console, ssh, etc).

Tell me what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!