Popular Posts
-
Sometimes you have to deal with the .Net framework in a way or another. I was forced to use a .Net C# closed-source library. And that librar...
-
Trying to install Ubuntu 12.04 on Dell Vostro 470 gave me all kinds of trouble! At first, the graphical installer did NOT work, so I had to...
-
Recently I needed to add a header/footer to an existing PDF file. With some help from this link, I figured it out: http://coding.derkeiler.c...
-
Indeed, this is one of the best articles I have read in a very long time! The author takes a deep look at the shutdown of the library.nu web...
-
Today I tried to compile and install the WFDB tools from the PhysioToolkit ( PhysioNet ) on my Debian Squeeze system. I am documen...
Friday, March 14, 2008
My Ubuntu Sytem borke :(
I spent a scary night yesterday trying to fix my Ubuntu installation. I was a victim for the bug related to libc6. The problem is that after updating the system, the new libc6 package was broken and it rendered the system in a total mess :((
Almost every single application is depending on the standard C library (glibc/libc6/GNU C Library). The fact that the libc6 is not functioning means the system is now totally unstable! Error message of the sort 'null pointer reference' began to show everywhere. I can't start any kind of terminal. Even logging into the Virtual Consoles failed and just thrown some 0x777FFD... addresses on me. I had no access to any package manager and I cannot undo the buggy installation. Even starting a browser to search for the problem failed! I had no other option but to restart and login using a liveCD.
After a lot of searching for the problem, I came across this bug description.
I have learnt a lot :)
To break the normal boot process you need to boot with the kernel option:
break=bottom
This puts you into the initial ram filesystem prompt (initramfs) just before starting the init-bottom scripts
To unpack a .deb archive:
ar -x *.deb
This leaves you with two tarball control.tar.gz and data.tar.gz. I used this to unpack the libc6 deb archive by hand and copy the necessary data.tar.gz files into their correct locations; thus replacing the buggy libc6 installation with a correct installation.
When you 'chroot' into your Ubuntu installation and get the message: 'Unable to execute /bin/bash: Permission Denied'. And even 'chroot /path/to/your/rfs /usr/sbin/apt-get' fails for the same reason. Then most probably the 'ld*' files in /lib/ and /sbin/ldconfig are not give the execute permission.
'chmod +x /lib/ld*' and 'chmod +x /sbin/ldconfig' corrected the problem.
Notice that ld* is the dynamic link loader and is needed by almost every executable file in your system. Also, 'ldconfig' is needed by dpkg, apt, aptitude and all package managers to be able to process your packaging system.
Almost every single application is depending on the standard C library (glibc/libc6/GNU C Library). The fact that the libc6 is not functioning means the system is now totally unstable! Error message of the sort 'null pointer reference' began to show everywhere. I can't start any kind of terminal. Even logging into the Virtual Consoles failed and just thrown some 0x777FFD... addresses on me. I had no access to any package manager and I cannot undo the buggy installation. Even starting a browser to search for the problem failed! I had no other option but to restart and login using a liveCD.
After a lot of searching for the problem, I came across this bug description.
I have learnt a lot :)
To break the normal boot process you need to boot with the kernel option:
break=bottom
This puts you into the initial ram filesystem prompt (initramfs) just before starting the init-bottom scripts
To unpack a .deb archive:
ar -x *.deb
This leaves you with two tarball control.tar.gz and data.tar.gz. I used this to unpack the libc6 deb archive by hand and copy the necessary data.tar.gz files into their correct locations; thus replacing the buggy libc6 installation with a correct installation.
When you 'chroot' into your Ubuntu installation and get the message: 'Unable to execute /bin/bash: Permission Denied'. And even 'chroot /path/to/your/rfs /usr/sbin/apt-get' fails for the same reason. Then most probably the 'ld*' files in /lib/ and /sbin/ldconfig are not give the execute permission.
'chmod +x /lib/ld*' and 'chmod +x /sbin/ldconfig' corrected the problem.
Notice that ld* is the dynamic link loader and is needed by almost every executable file in your system. Also, 'ldconfig' is needed by dpkg, apt, aptitude and all package managers to be able to process your packaging system.
Thursday, March 6, 2008
Subscribe to:
Posts (Atom)