Yesterday, I bought an Acer Aspire 5737Z for my mother. I ran into two issues while trying to install openSuSE 11.1 on it:
- System error -1012 during partitioning
- Installation of the bootloder failed with error 12: Invalid device requested.
In both cases, the openSuSE failed to enumerate the hard disk partitions correctly. The partition layout was as follows:
- /dev/sda1 – Unknown partition (probably the recovery program)
- /dev/sda2 – Windows C (20GB)
- /dev/sda3 – Extended partition for linux
- /dev/sda5 – swap partition (2GB)
- /dev/sda6 – root partition (/ 20GB)
- /dev/sda7 – home partition (/home rest)
The first error happens when the installer tries to set the type of /dev/sda6 to 82 (swap). That should have been /dev/sda5. The solution is to boot using the rescue system and to partition the disk manually. I suggest to use “cfdisk /dev/sda” for this. Make sure you mark the root partition as bootable.
After that has been done, tell the installer to accept the existing partitioning. You’ll still have to assign the mount points, though, and tell the installer to format the partitions.
Later, grub gets confused in a similar matter. It tries to add the Windows boot manager from (hd0,2) (which maps to sda3; grub starts counting with 0!). That should be (hd0,1). Since everything is installed, we just need to boot the rescue system and chroot to the installed system:
mount /dev/sda6 /mnt– Mount the root filesystem
mount -bind /dev /mnt/dev– Map (bind) the devices into the root filesystem (so that you can access the hard disk, etc)
chroot /mnt bin/bash– Start a shell that behaves as if you had booted from the installed system
You can tell that you’re in a new shell by pressing “Up”. That should recall your last command (chroot). Your first task is to fix the broken grub config. Edit
/etc/grub.conf. The first line should read
setup --force-lba (hd0). Run
grub-install. If it still fails, try to run it manually:
setup --force-lba (hd0)
Note that this will overwrite the Windows boot code. I’m not sure how to boot Windows, now, but really, I don’t care.
Next step on the path to hell is the NVidia driver. I didn’t have much luck with the precompiled one from the NVIDIA repository. Instead, I installed
gcc. After that, you can do
cd /usr/src/linux ; make oldconfig ; make and abort the build when it starts to build stuff in
arch/x86/. Now, you can compile the driver from the source. Just
sh ./NVIDIA-Linux-x86_64-185.18.14-pkg2.run, answer all the questions and then run sax2.
In sax2, make sure to select an “LCD monitor” with “1360×768″ pixel resolution. After a moment, you should have a clean display.