My girlfriend’s laptop died recently, and as her birthday was coming up I thought I’d buy her a new netbook to get her up and running again (well, really, to get my mac back). For £300 from Amazon, we had a machine that was much like her old laptop; it’s amazing what you can get for so little money these days. However, there were two things I didn’t realise: one, the ideapad-S205 lacks an optical drive (whoops). The second was that it’d take me basically a whole day of dicking around to get Ubuntu to dual boot with Windows 7. I hope this guide will help people out with the second problem (and I solved the first one by buying a USB DVD drive for another £30).
1. download and install Ubuntu 11.04 on a USB key
- I used the Startup Disk Creator on another Ubuntu machine to create the bootable USB key.
2. Put in the bootable Ubuntu USB key and boot the ideapad. Press Fn-F11 to get the boot menu, and choose the USB boot device. The screen will be garbled, seems like an issue with the kernel framebuffer driver. Just hit enter, and the Ubuntu setup process will start fine.
3. Connect to an ethernet cable as wireless doesn’t work (says that it’s disabled by hardware switch despite not being, needs more investigation).
Update: Turns out that wireless works in 10.10… OK I have found a workaround for the wireless. It even works with suspend/resume. Update 2: there’s an even simpler method in the comments, though I’ve not tested it myself. Here’s how you can connect using wireless:
- connect via the wired ethernet port
- apt-get install wicd
- apt-get remove network-manager
- disconnect the wired ethernet port
- rfkill unblock all
- start wicd from the applications menu, then use it to connect to your wireless connection.
You can have the “rfkill unblock all” command run automatically on startup by adding it to /etc/rc.local above the “exit 0″ line. That’s all you should need to do to have the wireless connection come up automatically when you log in.
Seems like this might be the combination of a couple of bugs, one a configuration problem that necessitates the use of rfkill unblock all, and the other a bug in network-manager. I will file some bug reports when I get time and post an update here.
4. After the Ubuntu 11.04 environment starts up, double click on the desktop icon to start the install process. You’ll eventually read the message: “This computer currently has Windows 7 on it. What would you like to do?”
- I first did the “Install Ubuntu alongside Windows 7″ option and shrunk the windows partition. As I later learned, this doesn’t work because GRUB 2 fails, we need to set up the partitions in a GRUB legacy friendly setup (it requires a boot partition, formatted ext2, as it doesn’t understand ext4 yet; I’m not sure what the status of its ext3 support is). So I restarted the install process and:
- chose the “Something else” option. I deleted the ext4 and swap partitions from the previous install and then used the resulting empty space to set it up like this:
- /dev/sda6 ext2 /boot 255MB
- /dev/sda7 ext4 / 13684MB
- /dev/sda8 swap
- device boot loader installation: /dev/sda6
- proceed through the install, setting up your location and user details, etc.
5. Once the install completes, you will be prompted to restart, however we need to set up GRUB legacy first, so:
- start a terminal (click the button in the top left, type terminal and hit enter, or try ctrl-alt-t). Then use the following commands (these assume my partition setup from above, modify them if yours differs):
- sudo su
- mkdir /mnt/sda7
- mount /dev/sda7 /mnt/sda7
- cd /mnt/sda7
- mount /dev/sda6 ./boot
- mount –bind /sys ./sys
- mount –bind /proc ./proc
- mount –bind /dev ./dev
- chroot .
In plain English, what we just did was mount the new partitions that we created, in the same configuration that they will be in the new system. Then we bound all the special filesystems into this, and then we used “chroot” a magical command that moves our terminal into our newly setup system, almost as if we’d just booted into it. So all our following commands will affect the new system instead of our temporary live USB boot.
6. Follow these instructions to download to grub legacy: https://help.ubuntu.com/community/Grub2#Uninstalling%20GRUB%202
- apt-get update ; apt-get install grub
- yes to generate list
- grub-install /dev/sda6
We’ve now installed grub legacy in /dev/sda6, which is our ubuntu /boot partition. We now need to get the Windows 7 bootloader to chain-boot this. We do this using a little utility called EasyBCD, though it’s possible to modify the Windows config files manually if you prefer.
7. Reboot into windows 7.
- download, install and run Easy BCD
- Add new entry
- Linux/BSD tab
- Type: GRUB (Legacy)
- Name: Ubuntu 11.04
- Partition 5 (Linux -244 MiB)
- Click Add Entry
- Edit Boot Menu
- Boot default OS after: change to 4 seconds.
- Save Settings.
8. Reboot, and you should see a boot menu with Windows 7 and Ubuntu 11.04. Done!