I just got a second hand Sony Vaio PCG-GRT896HP and decided to get rid of XP installed there and make a fresh Slackware 10.1 installation. The laptop is heavy-duty having a Pentium 4 processor at 2.8GHz, 512Mb RAM, 60Gb of hard disk space, 16″ screen, lots of ports and 802.11b/g support making it perfect to use for computational work at the university and at home. The problem: the laptop’s combo CD/DVD burner was heavily used and out of the game. I had available an external USB combo CD/DVD burner but the BIOS did not support booting from USB. So the decision was to make a network installation but while searching for the relative info we stumbled on this:
http://marc.herbert.free.fr/linux/win2linstall.html
It just looked too good for us not to try! The target was to set the XP machine to boot into GRUB and start the Slackware installer hoping that it would then mount the external USB drive to do the installation. Installing GRUB was like a walk in the park in our case. The package GRUB_for_DOS provides the two needed files grldr and menu.lst. The file grldr was copied to C:\ and then the following line was appended to boot.ini:
C:\grldr=”Start GRUB”
To make boot.ini editable, the command attrib c:\BOOT.INI -s -h -r was issued from the command line and after the addition the file was reinstated with attrib c:\BOOT.INI +s +h +r.Then the whole /boot directory from the GRUB_for_DOS package was copied to C:\ and within the C:\boot directory the bare.i kernel and the initrd.img installer image were copied. Since we were only interested about booting to the installer we did not copy any packages as these would (hopefully) be installed from the USB device. The C:\boot\grub\menu.lst was edited in order to contain these lines:
title My Linux installer of choice
kernel (hd0,0)/boot/bzImage
initrd (hd0,0)/boot/initrd.img
Edit: we copied menu.lst to C:\ to avoid any version-specific problems of GRUB_for_DOS
We did not pass any extra parameters to the kernel but at some other cases this would be very helpful. So that was the GRUB installation. Reboot, fingers crossed and it worked! At the XP boot screen we had a new menu item pointing to GRUB which in turn loaded the copied kernel. Doing this procedure was very important because there was no way that the machine would be rendered unbootable leading us to bigger adventures. If there was a mistake in the GRUB configuration we could boot in XP and make corrections. Once we reached the system shell we could start the installation scripts. First we partitioned the hard drive:
Filesystem Type Size Used Avail Use% Mounted on
/dev/hda1 ext2 9.7G 4.7G 4.6G 51% /
/dev/hda2 reiserfs 25G 34M 25G 1% /disk1
/dev/hda3 reiserfs 23G 34M 23G 1% /disk2
The external USB CD/DVD combo drive was mounted under /dev/sr0 so we made a link pointing to /dev/cdrom and mounted the first Slackware 10.1 installation disk. Since we had booted from the kernel copied to the hard disk we ran setup and just selected /dev/cdrom as the source for the installation.
We proceeded with the installation of the packages from the first CD but we encountered a problem soon. When we were prompted to insert the second installation disc there was no way to unmount the disc. Many remedies to this were attempted including force unmount and even unplugging the drive from the laptop and from the power, taking the CD out and then trying to remount. All resulted in some strange bug (?) where the system somehow saw a different partition table where hda1 was full at that moment thus not allowing the installation of any more packages. Each time the installation script was halted and after that all seemed normal again except that we had to run setup from the beginning without rebooting of course. Then we decided to stop the installation when the first CD finishes and put the rest later on. So fingers crossed again and voila! The Sony Vaio booted for its first time in Slackware 10.1. The rest of the packages were easily installed using pkgtool.
This is the point where the debugging starts. First of all, Slackware 10.1 comes with Gnome along with the other window managers. In order to boot without annoying system errors in Gnome you must log as user and not root. Then we tested all the other window manageers which were found to be functioning except from KDE which freezed the system when it came to Initializing Peripherals. After exhaustive googling it seemed that the problem occurred because of arts. This was uninstalled and KDE would since start smoothly.
The sound-related problems though continued. Everytime a sound was played the system froze requiring hard rebooting. On top of that, disabling the sound system from the KDE Control Center revealed that when a video was played, the application (Xine, Gxine or Noatun) would crash after a few seconds. We decided to recompile the 2.4.29 kernel throwing anything that is not needed out, installing some features like ACPI and Firewire and look at the sound issues later. Using the new kernel, the video freezing bug was remedied but the sound was still freezing the system. On top of that, the ethernet card was not functioning. After a few trial and error attempts we figured out that this was caused because the new kernel enabled Sony Vaio Programmable I/O Control Device support. So this went out of the window and we got eth0 back.
The sole problem (for now of course!) is configuring the alsa drivers from the beginning in order to make the sound work. It is our next goal and then maybe a 2.6.x kernel wouldn’t be a bad idea (that’s for the ones who thought about it!).
Conclusions: there is NO system where you cannot install Linux one way or the other. Try doing the above with XP…
Many thanks to Marc Herbert for his great how-to on installing GRUB in XP.