This week, I’m talking about the process of installing and dual booting Windows 10 and Ubuntu 22.04 on a 2008 MacBook - Core 2 Duo and all. It’s not fast, but it does work, and it’s a great life extender for this sort of old machine! There’s a lot written on it, but not a lot that covers the quirks of doing this in 2023 - as everything gets bigger and more bloated. But, it does work in the end.
Admin Laptops
One of the classes of computer I try to keep around and more or less updated over time is the “admin laptop.” This is, at least for me, a “network beater.” It needs a physical Ethernet port (USB to Ethernet adapters are a pain in comparison), WiFi (preferably 2.4 and 5, I’ll tolerate 2.4 only), some USB ports (more is better), a tolerable battery life (2 hours is fine, more is useful), and to dual boot Windows and Linux. I’m not a huge Windows fan (I’m less and less a Windows fan as time goes on), but there are some things, networking related, that are just most easily done from Windows - or, after configuration, tested from Windows. Netboot utilities to reinstall the firmware on a bricked router don’t work well under Wine, and some of the various firmware update utilities run best on Windows. It’s not that I couldn’t get them working in Wine with enough time, it’s that my goal isn’t to fiddle with stuff, it’s to get things done. And sometimes, Windows is, unfortunately enough, the right option.
I’ve been using Clank - an ancient little netbook. It’s a nice enough machine, in-order Atom D525 processor, SSD, 8GB RAM, but it’s getting a bit slow to use lately. I can work around it, but it also has started eating batteries, I had to replace the CMOS battery, and it’s triangular. Great little laptop, but showing age, and I no longer fly such that the form factor is useful for getting work done on a tray table.
The Hardware
At various points in my life, computer hardware tends to “black hole” to me. Have enough computers, more computers will quite literally appear out of thin air if you don’t actively reject them. My dorm room accomplished this, and apparently, despite an attempt to keep the crap count down, I’m at this point again, because my brother offered a bunch of his old ewaste to me. Among this pile of Core 2 era hardware was a pair of 2008 unibody MacBooks. I used to have a MacBook Pro of this era (dual GPU, woohoo!), and eventually got rid of it because it was too much trouble to keep hacking MacOS updates to install on it beyond the end of official support. I don’t like running OSes out of security update support, and that was looking like a thing I was going to have to face.
But, what if I don’t run MacOS? It’s not like I have to use the OS the machines came with! At least for the Intel series Macs.
I merged the machines together, scrounged eBay, and ended up with one decent enough machine - a 2.0GHz Core 2 Duo with 6GB RAM, and a 256GB SSD. This is enough for a dual boot setup. If you’re getting SSDs for an old Mac, just go with an OWC SSD - I’ve fought all sorts of bizarre, nonsensical issues with older Apple hardware when I put cheap SSDs in, and just getting one of the OWC units solves the issues.
Most of the machines of this era only support 4GB of RAM on paper - but there’s a secret firmware update that lets you use 8GB of RAM. If you haven’t installed this one on a 2008 era MacBook, you should - and then stuff some useful amount of RAM in it. You’ll need an actual install of OS X if you want to this, of course. Once you’ve done that, zero the drive. I’ve no idea how to triple boot…
Initial Experiments: Just Burn a DVD
Initial experiments with booting various installers were simple enough: The Ubuntu 22.04 USB stick boots in EFI mode (without wifi support), the Windows 10 installer USB sticks I had floating around don’t. As soon as you try to boot them, the system hangs.
There are a range of things you can try involving Boot Camp from MacOS to build a USB installer, and let me just summarize a bunch of experiments here: None of them work with a recent (2022+) version of Windows 10. The problem is that BootCamp will only ever make a FAT32 volume - because the firmware can only read a FAT32 volume. With a modern Windows installer size being well north of 4GB (it’s almost 6GB right now as an ISO), you simply can’t make something that works out of Boot Camp. I’ve heard there are some tools that can split the bundle file so you can use FAT32, but I simply went back to the proper technology for this era of machine and burned an installer DVD. Yes, I still have some dual layer DVDs around, and a good optical drive.
Download the ISO (which is easy as long as you access Microsoft’s website with anything other than Windows), set it to burn, and kick back for a while. If you’ve got a SuperDrive in the laptop, you might even be able to download the ISO and burn it with the internal drive, but I didn’t try this. Yes, I do burn a lot of optical disks these days - my daughter has a CD player and a love of audiobooks and radio dramas.
Once you’re done, go ahead and boot it - you can either stick the disk in the machine if the drive works and will eject drives, or you can boot from a USB CD drive (I just booted from the burner). You do have to press “C” to boot from the CD, though - and that seems to apply to USB CD drives as well.
By the way, do you keep ISOs of various OSes burned (finalized…) to physical disks around? It’s not a half bad idea to keep some around - they’re a good root of trust if you aren’t certain about the state of your network. Burn them, validate them, if you’re really paranoid have someone else validate the checksum, and then if you boot from a DVD reader (not burner), there’s not much that can be done to them by a malicious OS. Though there’s always the firmware trust to worry about.
Installing Windows 10
The DVD will boot, and take roughly forever and a half at a black screen with a blinking cursor in the top left corner before it does anything. I don’t know if this is a Win10 22H2 issue or just an old, slow machine, but if things are sitting at a blank screen with a cursor, go do something else for a while. If you have an external CD drive, you’ll notice that things are furiously being accessed during this time. You should eventually come back to a Windows installer. Install as desired.
I typically give Windows about half the disk, because I want the other half for Linux. In theory, you could install in either order, but I always find it easier to install Windows first, and then install Linux into the empty space - Linux does a far better job figuring out that it’s sharing with other OSes, though it doesn’t matter as much with Apple’s bootloader.
You still have to suffer through Cortana’s attempts to be “cute.” Which is certainly not what I want out of an OS installer. Windows 10 will still let you use an offline account if there’s no network access, which, I’ll add, is the only reasonable sort of account for a personal computer, and one of a range of reasons I won’t be using Windows 11. Answer utter nonsense for the non-bypassable security questions (seriously, I know how to use a boot CD, I don’t need help with password resets). Turn off all the “enhanced feature” crap (I assure you, I’m fine not “enjoying other services that require my location to work”), and you should find yourself at a mostly useless Windows desktop because it doesn’t have the proper drivers installed. But, at least you’re about to learn how to right click in Windows with a one button mouse!
Windows Drivers
You can either install the Windows drivers from the Boot Camp USB driver stick you made if you were bored - or you can directly download something newer with the Brigadier tool. Grab the exe from releases, and spend the next minute telling Edge that, yes, in fact, I do want to download a binary. In either case, you’ll have to trick the drivers to running on Windows 10.
You want to run Brigadier as an Administrator so it can install 7Zip - but you don’t have right click. What to do? A little known secret on Windows is that shift-F10 is the same as right click - so fire up your Administrator command prompt, get to your Downloads directory, and try this:
brigadier.exe --model=MacBook5,1 --output-dir=C:\AppleDrivers
You don’t need to include the model if you just want the package for this model, but you can specify it if you want to try drivers for something newer - sometimes they can fix issues, but I’ve not found issue with the default MacBook5,1 drivers here. It’ll take a while to download the package and depdencies, but you should end up with a bunch of drivers in C:\AppleDrivers when you’re done!
Of course, setup.exe won’t run, because you’re not on a supported Windows for this model. There’s a BootCamp64.msi installer in the Drivers/Apple subdirectory - but it also won’t run, because it’s designed for Windows 7.
Navigate to the folder, get to the properties of BootCamp64.msi with your handy right click keyboard shortcut, and set the Compatibility Mode.
Now, from your command prompt, go to C:\AppleDrivers\BootCamp-[numbers]\Drivers\Apple, and…
msiexec /i BootCamp64.msi
If you have a new enough machine to not have BootCamp64.msi, just run BootCamp.msi - some are 64-bit only. This, finally, should work and let you install the drivers.
One good reboot later, and you should have graphics drivers at native resolution! There’s just one thing you need to do if you want right click: Go into the Boot Camp application down in your taskbar by the clock, and set how you want right click to be handled. By default, a two finger click will be right click - but you can also set a click in the lower right to be right click.
Install your updates, and you’ve got a fully working Windows 10 install that should do what you need! If you’re curious, fn-control-option-delete is your new three finger salute. Install updates, and go on your way with a Core 2 Duo running Windows 10!
Installing Ubuntu
Installing Ubuntu is pretty straightforward, with the exception of wireless support. Stick the USB installer stick in, hold option, boot from it, install.
Your life will be easier if you boot to the desktop environment and install from there, as opposed to going straight into the installer.
You’ll probably want to let it download updates and third party drivers while installing - which is a bit of a trick, because it won’t have wireless access. Use a physical network cable for the install and it’ll suck down the correct drivers. I’ve split the disk between Windows and Linux as I normally do, so just install to the free space and call it good. You will need an EFI partition as well - just create something that can fit some EFI files and set it as the EFI partition. Go ahead and tell it to install the bootloader to /dev/sda5 as well. It won’t actually install it, so it doesn’t really matter.
If the proper drivers aren’t downloaded during install, after reboot, install firmware-b43-installer
and you should have wireless after reboot.
On the topic of reboot… you’re actually unlikely to get the install to finish. Grub fails to install, which means bootloader config files aren’t installed, and nothing will work unless you have a thing for manually booting your system from the grub prompt. For which this might be useful.
set root=(hd0,6)
linux /boot/vmlinux root=/dev/sda6
initrd /boot/initrd.img
boot
But you’ve likely got this fatal error.
Click through, and the installer should helpfully inform you that an unrecoverable error happened, and it will now drop you to a desktop environment. Great! Now, you just need to install grub with the “–no-nvram” flag - this prevents it from trying to update the EFI boot variables that don’t work quite the same on Apple’s EFI implementation. You may or may not have the install media mounted on /target - I’ll assume not here. But if you did boot to a desktop environment, at least some of this stuff should be mounted and you can skip the mount steps and just chroot in and install the boot loader. You can skip /dev, but you might still need to mount proc and sys in /target.
sudo -s
mount /dev/sda6 /target
mount /dev/sda5 /target/boot/efi
mount -obind /dev /target/dev
mount -obind /sys /target/sys
mount -t proc /proc /target/proc
chroot /target /bin/bash
grub-install --target=x86_64-efi --no-nvram /dev/sda5
update-grub
This should set things up properyl!
Now unmount that stuff, reboot, and hold down “option” as you boot. You should see an EFI boot option that boots into Ubuntu! Select it, boot into Ubuntu, and update things, install your wireless firmware if needed, etc. Of course, the Windows boot option is gone - so we’ll fix that next.
Fixing the Windows Boot
Unfortunately, in the process of installing Ubuntu, the Windows install went missing. That’s a bummer, because it’s not realy a dual boot system right now, is it? I think Linux removes the bootable flag from the Windows partition as grub will usually install it, but that’s not actually needed (nor is it helpful) on a Mac’s boot system. You’ll need gparted to fix it, and if you get a silly error about it’s already installed but you can’t run it, just use the “–reinstall” flag to fix it.
sudo apt install --reinstall gparted
sudo gparted
The problem is that the Windows EFI partition, /dev/sda1, isn’t marked bootable. Select it, go to Partition->Manage Flags, and check the “boot” flag. I’m not entirely sure if this ends up with a weird mix of legacy boot and EFI boot, but it should look like this when you’re done - sda1 is flagged boot, sda3 is flagged msftres (the restore partition stuff), and sda5 is marked esp.
Do this properly, reboot, hold option, and you should see this!
Congratulations! You’ve got a dual boot utility admin laptop.
So, How Is It?
I’m trying to add a bit more “butt dyno” sort of feel impressions on computers, and… well, I mostly don’t use this one, because I have Clank, which is just a cooler little bit of hardware. With longer battery life. Battery life on this one, under any sort of use, is about 2 hours - which is useful, but tight enough that I’m always kind of looking for the charger or a place to plug in. Clank, under light load, will do 5-6 hours, and that’s enough that I simply don’t worry about it when I’m dragging it around a summer camp updating radios or something.
It’s nice, just not nice enough to really justify replacing Clank with. I think the main takeaway here is that I really like that little netbook!
But, hopefully, the process helps at least someone out with keeping older hardware running longer!
If you enjoyed this post and want to be notified about new posts, follow by email! I post this sort of content roughly every two weeks.
This is a companion discussion topic for the original entry at https://www.sevarg.net/2023/04/22/dual-boot-win10-ubuntu-2008-macbook/