I’ve got my Dell Latitude E6430 booting Windows 7, Ubuntu 14, and MacOS 10.11. I’ve done this before with this computer but it wasn’t ever really stable and I didn’t document it because I hadn’t gotten it the way I wanted. I’ve also done it before with earlier versions of these OSes on my previous computer, the Dell Latitude E6410. But it wasn’t until today that I got a set up with the E6430 working the way I wanted. And although it cheats a little by using two disks, I do get all three OS on a GPT disk booting using UEFI. Sort of.
My Dell E6430 is my main computer for work and although I wish it weren’t the case, Windows is the primary OS on that computer. Also since it is my main work computer and it is a laptop and it has important stuff on it, I use an SSD as the main drive in the computer. Since SSDs are expensive, the 128 Gb disk is as big as I wanted to go when I got the computer a few years ago. 128 Gb is plenty for a system disk but I’ve got a lot of files and I like to keep as much as I can on the active computer so the system disk has filled up with stuff. And therefore, it has been tough to work with recently; I feel like I am constantly running out of space and then cleaning up. And sometimes I create create disk images of partitions I want to save and I have nowhere that can fit those image files on disk. I may not want to keep them on disk but even just to stage them would be useful. And then there is the occasional need to do a video project which completely obliterates any space available making it so I need to wrap up the video project before I can continue with regular use of the computer. The point is, space beyond what is available in the relatively small system drive has become necessary.
Fortunately, the E6430 comes with a media bay where the CD drive usually lives but I also have a bay adapter to allow a second hard drive to be used. And years ago, when I first got the computer, I put a second hard drive (the 500 Gb that came with the laptop before I swapped it out for the SSD) in there and that’s when I first took a crack at the triple boot scenario. But as I said, I never got it working well so it was mostly just wasted space. And although I had three OSes on that one drive, I never needed the secondary Windows 7 system there and the disk partition I had set up for Windows was too small to be useful for large files.
I usually like to have a spare drive hanging around that I can swap stuff to when needed but at this time, I have used up all of my 2.5″ drives. So when considering that I runt of space easily and that I’d like to rebuild the disk drive and that it would be good to have an extra 2.5″ drive available for when a need arises, I figured this was the perfect time to buy a new drive and rebuild. I bought a 1 Tb laptop drive. It just seems crazy that it was so cheap – $47.99. I was only planning on getting the 500 Gb to match what I already had but it was $40.99 so for 7 freakin’ dollars more, I got 500 Gb more space. If I wanted to double the 1 Tb to go to 2 Tb, it’d be close to double the price. So as far as dollars per Gb go, the 1Tb is the bargain today. And I didn’t think I even needed 1 Tb so I definitely wouldn’t bother with the 2Tb. Besides, at some point, you have to figure the space constraints of a 2.5″ package would limit what would fit inside and therefore, I’d rather take what is likely to be more stable, anyway.
When the drive arrived, my original plan was to clone it exactly as it was. I hooked up the new drive in the Sabrent bare drive dock (I love that thing) and left the source drive in the media bay and kicked off a clone through EaseUS Todo Backup. It succeeded but in the end, I couldn’t boot anything from the drive. I kept getting “Invalid partition table!” from the BIOS. And for some reason, the tricks that I would have used when I built the drive originally didn’t work with the cloned drive. I don’t understand why – it should have been an exact copy. I tried it again and flipped the switch to do a “dd” copy instead but I got the same results. And still no hacking with gptsync or gparted or diskpart yielded any positive results.
It was at this point that I started asking myself what the point to doing this clone of the drive was. As I said above, the MacOS install wasn’t stable and was an old version, the Ubuntu install was also an old version, and the Windows install I never needed and I only used for storage even though it was a small partition. (For some reason, I had done the big partition as the MacOS partition.) So I was working really hard to preserve something that I could probably just ignore. Then I realized that maybe the best thing to do was to start over. I’d already killed a lot of time trying to preserve what I had so how much harder could it be to just do it over anyway!?
Right, famous last words. It did turn out to be harder than expected. The big picture stuff actually went pretty well. There were just a few minor things that killed a lot of time. But before I get to that, my plan was to keep the same structure as before with three partitions for the three OSes except I wouldn’t bother installing Windows 7 system on the Windows drive – I’d just leave that for storage access and I’d continue using the main system drive for the Windows 7 OS. And if I wasn’t going to include a Windows install on a drive, things should have been much easier.
Now with the plan in mind, I started the install. The first step was to remove the main Windows 7 system drive from the computer. There’s no point in risking something happening to that and some of the drive operations use drive nomenclature that makes it tough to identify which drive is which so removing the drive altogether is the safe bet. Besides, this would allow me to move the new 1 Tb drive to the main drive slot and use the media bay slot for the optical drive so I could do a CD install of Ubuntu.
Next, I started the partitioning of the new drive and searching around for a good guide to use for the install. I started with my own guide for triple booting the E6410 because I was going to do something similar. And I started checking out my files from when I had done this before and had used the Chameleon Bootloader. But since things weren’t stable, I wanted to explore new options. Clover has come a long way and I use it for my main Hacintosh so it was worth looking into for this setup too. I looked around the options at OSXLatitude and found a guide for many different Dell computers. The steps seemed to make sense and the guide was put together by one of the best experts on these things so it seemed like a winner.
I downloaded the prerequisites, built the installer USB, and did the Mac install. I chose El Capitan because according to the App Store, that was the most recent version that I could install on the source computer. (I think it is a problem with the SMBIOS I chose – to really upgrade that later, I may have to fake it out. I will deal with that another day.) But also, since El Cap isn’t new, I wouldn’t be doing any bleeding edge exploring – I just wanted to get some version of MacOS installed.
I was really disappointed to discover that the system wouldn’t boot with the same error message as after the clone: “Invalid partition table!”. It was at this point that I found a post saying that the user got the “Invalid partition table!” and then hit enter and it booted normally. What!? I’ve been killing myself on this and everything was fine all along but there’s a garbage error message that can be ignored? Or is it something that should be ignored? I switched the BIOS to UEFI and the problem went away! I didn’t bother doing that before because my prior multi-boot scenarios haven’t needed to switch to UEFI and I don’t know why this one did. But at least this would allow me to continue and I’d circle back to the UEFI issue later.
Now that it would boot, I only got a little futher. The Mac install would kernel panic and it would reboot every time. I eventually figured out I needed to change out the VoodooPS2Controller kext for a newer version. Then the keyboard and trackpad weren’t working well in that newer version – tracking with the trackpad was dodgy. I found another version that tracked well but the caps lock could only go on and would never go off. It took a lot of trial and error but I eventually got that kext working by finding a version that didn’t kernel panic and worked correctly.
The next thing to tackle was the display. Lots of artifacts. For some reason there’s an incompatibility between later BIOS versions and the AppleIntelFramebufferCapri. I banged around lots of different options trying to avoid going to an earlier BIOS version but ended up conceding to going back to A11. I hope I don’t discover some weirdness in the future as a consequence of going back to this earlier version.
The last issue to fix was the sound. The AppleHDA_IDT was causing problems with the kextcache. For some reason there was a problem with the cached content. I figured out that I could boot without caches but then it was pointed out that I could have just deleted the problem content. Either way, I finally got the AppleHDA included in the cache and then MacOS was working.
Next was to get Ubuntu installed. I went with 14.04 because that’s the CD I already had. I probably would have been better off with 16.04 but I use Ubuntu so infrequently and it is easy to upgrade later, that getting anything installed would be fine. Interestingly, the steps from my E6410 guide weren’t working for this disk. I got a warning about trying to install the boot data in the main partition which I haven’t gotten before and I chalked that up to it being a version of Ubuntu that I haven’t previously used in a triple boot scenario. But when I did try to boot later, Ubuntu just wouldn’t boot at all. I couldn’t directly find the partition with the BIOS and while Clover did see that there was a Ubuntu partition, it couldn’t boot it. That warning during install appears to have been legit.
After exhaustive research and various attempts at getting it to work including trying to manually install grub, I concluded that the issue was using a GPT disk that had no MBR. In other words, the difference was this time since I wasn’t installing Windows on this disk, it actually made installing Ubuntu not work the way it had before. Huh. I did not see that coming. From what I have read, since this install is going on a pure GPT disk, Ubuntu wants to have an EFI partition for itself to store Grub in the same way that MacOS has an EFI partition for Clover. Before when I did a Windows install, Windows ignored that and created an MBR. In fact, that was source of the hassle for then getting all of the systems to play nice since the disk then had both partition maps existing. And that’s the reason why cloning the prior disk wasn’t working. So now, without the MBR at all, Ubuntu wanted to install the bootloader to an EFI partition and I hadn’t created or identified one so Ubuntu didn’t couldn’t drop the GPT boot content properly and therefore, it wouldn’t boot.
The fix was to simply create another EFI partition. I considered trying to use the same EFI partition as the MacOS uses but a second EFI partition of 200 Mb was easy enough to do and I didn’t want to risk borking the Clover install that was already working. (Maybe I’ll figure that out next time.) So now instead of creating two partitions for Linux, I needed to create three. One for the EFI, one for the root system, and one for swap. I wiped the existing Ubuntu install and cleared out the Linux partitions and reinstalled with the new three partition set up. Ubuntu booted right away after the install without a problem. (Although Grub didn’t show as visible so I am going to have to figure out how to enable that at some point if I want boot options there.)
The last thing to do was to then get Clover set up again as the preferred bootloader. That’s easy to do in the BIOS settings for UEFI by changing priority. And then when Clover booted, it found the MacOS partition and the Ubuntu partition so I could boot from either. Perfect.
I put the original Windows 7 system drive back in the computer and the new multi-OS drive back in the media bay drive caddy. I turned on the computer and it booted to Clover right away. It’s good that it will still boot MacOS and Ubuntu, but I needed to get Windows back as the default system. And when I tried booting by selecting Internal HDD as the target boot device, it said that there was no OS found. No need to panic – that’s because the computer is still in UEFI mode. Switching it out of UEFI mode and back to Legacy brought the main system disk back up and it booted fine. If I want to boot from the MacOS/Ubuntu disk, I can F12 on bootup and select the media bay disk. When I do that, I get “Invalid partition table!” and hit return and then Clover boots fine. I’ll be able to live with this annoyance. I could probably figure out how to get an MBR on the multi-boot disk. Perhaps gptsync would do the trick. And then I could boot up without the “Invalid partition table!” error. But for now, with the limited number of times I will be booting the second disk, to simply need to hit the enter key to make the error message go away is worth it to not risk ruining the disk and needing to start over. I’ve used up enough time as it is.
So I’ve got my laptop successuflly booting all three OSes now. That’s a success. In the future, here are some things I could tackle to make it even better, but not stuff that is worth spending time on now:
- Latest version of Windows, latest version of MacOS, and latest version of Ubuntu
- One EFI partition per disk rather than per OS (and hopefully do a Windows EFI install)
- Fix Grub to show boot screen
- Find a way to get the HD4000 working on my 1600×900 display with the latest BIOS
- More stable kexts for AppleHDA and PS2Controllers
- Possibly skipping Grub entirely and getting Clover to be able to boot Ubuntu directly (like this | or this)
The steps I followed are below. All of the Mac stuff is from the OSXLatitude guide so all credit goes to Jake Lo and as he writes in that post, credit goes to other various authors and bloggers. For the Ubuntu work, it is mostly from my E6410 guide and as that guide states and details at the end, it aggregates work from others too.
Prerequisites
Download El Capitan installer from App Store
empty 16 Gb flash drive and a working Mac OS install
my install and boot pack (includes the kexts and EFI content needed as well as the Tools needed: Clover, Clover Configurator, Show Hidden Files, EFI Mounter, and ssdtPRGen)
Prepare Installer Media
On prep computer running MacOS:
- Insert the USB drive on a running OS X system
- Open /Applications/Utilities/Disk Utility
- Highlight the USB drive in left column
- Click on the Partition tab
- Click Current and choose 1 Partitions; name the partition “Install OS X El Capitan” (it will change later) and select “MacOS Extended (Journaled)”
- Click Options…, choose GUID Partition Table, and click OK
- Click Apply then Partition
- Go to Applications, right click on Install OS X El Capitan/Show Package Contents and then open the folder Contents and in that open SharedSupport
- Mount InstallESD.dmg by double-clicking on the file
- Launch ShowHiddenFiles and select Show Special Files
- Mount BaseSystem.dmg (hidden) from OS X Install ESD by dragging it into Disk Utility and double clicking on it
- Use Disk Utility to restore OS X Base System to USB – click on the image in Disk Utility, select the Restore tab and select the target to be USB (depending on MacOS version, you may need to drag the USB drive into the Destination box)
- After the restore is complete, USB is now renamed to “OS X Base System”; in Finder, rename it to “Install OS X El Capitan”
- Go to Install OS X El Capitan/System/Installation and delete the alias Packages
- Copy Packages from root of OS X Install ESD to Install OS X El Capitan/System/Installation
- Copy BaseSystem.dmg and BaseSystem.chunklist (hidden files) from OS X Install ESD to root of Install OS X El Capitan
- In ShowHiddenFiles app, select Hide Special Files, then quit ShowHiddenFiles app
- Launch Clover package installer from Utilities folder in boot pack
- Hit Continue, Continue, Change Install Location…
- Choose Install OS X El Capitan
- Hit Continue, then hit Customize. Select these items:
- Install Clover in the ESP
- Drivers64UEFI\OsxAptioFixDrv-64
- Bootloader/Install boot0af in MBR
- CloverEFI/CloverEFI 64-bits SATA
- Click Install
- After installation of Clover, the hidden EFI Partition will appear on the Desktop
- Remove the Boot and Clover folders from in the EFI partition and replace them with the Boot and Clover folders from the bootpack
- Copy the Utilities folder from the bootpack to the installer
Install MacOS
On target computer:
- Plug in power, plug in USB drive
- Power up laptop, select F2 to get into BIOS and confirm that SATA Operation is AHCI, Secure Boot disabled, Boot List Option and UEFI is selected; reboot (which will happen automatically when exiting BIOS)
- During boot, hit F12 and select the USB device under UEFI boot
- On the Clover boot screen, select the USB installer which will probably be the default selected in the brief time before Clover auto boots
- When the installer starts, select your language and click ->
- For now, ignore the installer in the center and instead on the menu bar, choose Utilities -> Disk Utility
- Choose the drive and click on Partition tab; the new Disk Utility tool is annoying to work with but muddle through to where you have 3 partitions in the following way:
- the first partition is “the rest of the disk” and will be used for general storage accessible to all OS; set the Format to FAT and name it “Storage”
- the second partition is the MacOS partition; set size to 80 Gb, set the format to Mac OS Extended (Journaled), and name it “MacOS”
- the third partition will be the Ubuntu partition; set the size to 80 Gb and set the format to exFAT for now (this partition will be broken up and reformatted later)
- Close Disk Utility to return to the Installer
- Click Continue, Continue, Agree
- Select the “MacOS” drive and click Continue
- When the installer finishes, the computer will reboot
- When rebooting, select the USB UEFI installer device again; but this time, be ready to hit an arrow key to switch over to the MacOS install you just installed
- The MacOS will then finish booting and installing
- Copy the items in the Utilities folder on the USB installer to the Utilities folder of the new install
- Run the Clover package installer (now in Utilities of the new install)
- Continue, Continue, Change Install Location
- Choose the MacOS drive you just installed to then Continue
- Customize:
- Install Clover in the ESP
- Drivers64UEFI\OsxAptioFixDrv-64
- Bootloader/Install boot0af in MBR
- CloverEFI/CloverEFI 64-bits SATA
- Install RC scripts on target volume
- Install Clover Preference Pane
- Install
- After installation of Clover, the hidden EFI Partition will appear on the Desktop
- Remove the Boot and Clover folders from in the EFI partition and replace them with the Boot and Clover folders from the bootpack
- Copy the kext from /Volumes/EFI/EFI/Clover/Kexts/Other/LE to /Library/Extensions for the MacOS disk (ignore any warnings you get)
- Open terminal and run the following commands:[pastacode lang=”bash” manual=”sudo%20chmod%20-Rf%20755%20%2FL*%2FE*%0Asudo%20chown%20-Rf%200%3A0%20%2FL*%2FE*%0Asudo%20touch%20-f%20%2FL*%2FE*%0Asudo%20chmod%20-Rf%20755%20%2FS*%2FL*%2FE*%0Asudo%20chown%20-Rf%200%3A0%20%2FS*%2FL*%2FE*%0Asudo%20touch%20-f%20%2FS*%2FL*%2FE*%0Asudo%20kextcache%20-Boot%20-U%20%2F” message=”” highlight=”” provider=”manual”/]
- Open System Preferences, go to Security & Privacy, and change to allow apps downloaded from anywhere to run
- Run Clover Configurator; “Import” the config.plist from /Volumes/EFI/EFI/Clover
- On the left, select SMBIOS. Then click on the magic wand on the right; select the MacBook Pro (second from left) and use the shake buttons to create a new serial number
- On the left, select Boot; select Default Boot Volume to be LastBootedVolume and set the timeout to 2
- Click the Export button and save; then quit Clover Configurator
- In Terminal, cd to the location of the Tools folder from the USB installer, then run the following commands:[pastacode lang=”bash” manual=”ssdtPRGen.sh%0Acp%20~%2FDesktop%2Fssdt.aml%20%2FVolumes%2FEFI%2FEFI%2FCLOVER%2FACPI%2Fpatched%2F” message=”” highlight=”” provider=”manual”/]
- Still in Terminal, run the following commands in the theory that it helps get sleep and wake to work:[pastacode lang=”bash” manual=”sudo%20pmset%20hibernatemode%200%0Asudo%20rm%20-f%20%2Fvar%2Fvm%2Fsleepimage%0Asudo%20pmset%20hibernatefile%20%2Fdev%2Fnull” message=”” highlight=”” provider=”manual”/]
Reboot and check for trackpad functionality and audio capabilities. If there was a problem above with the kextcache command, there’s a good chance that the audio won’t work. And if that’s the case, try the following. Reboot and while booting in Clover, use the right arrow key to get to the Options button on the second row. Hit Enter when the button is highlighted. Then on the Options page, hit Enter again. Type -f at the end of the line and hit Enter. Arrow down to Return and hit Enter. Then hit Enter back on the main page to boot. After this reboot, go back and try the commands above to chmod, chown, and touch both /L*/E* and /S*/L*/E* and then run the kextcache command again. Alternatively, or perhaps also, you can try the suggestions shown on this post.
At this point, you should be able to boot MacOS successfully without the USB installer in the laptop at all. And MacOS should be fully functional. (With the exception of sleep – I still didn’t get that working like I wanted.)
Install Ubuntu
- Plug in network and power
- Boot with UEFI on, F12 to select CD drive in UEFI list
- Select Install and select language when it finishes launching the installer
- Select “download updates” and “install 3rd party” checkboxes and click Continue
- Next is the page titled “Installation Type” – be sure to select “Something else”; Continue
- Find the blank space targeted for Linux and select that in the list, then click “+”; set the size to 200 Mb, set the Use As to “EFI boot partition”; click Okay to create the partition
- Go back to the blank space now and repeat the process with the “+”; this time, set the size to 8 Gb less than the remaining space, select “Primary”, select “Beginning of this space”, select “Ext4 journaling file system”, and select mount point to be “/”; click Okay to create the partition
- And again, go back to the blank space now and repeat the process with the “+”; this time, set the size to the default (space remaining), select “Primary”, select “Beginning of this space”, and select “swap area”.
- Be sure to select the “Device for boot loader installation” to change to the partition you have targeted for the EFI boot partition for this Ubuntu install; then click “Install Now”
- While installing, select location and keyboard layout; set up account and computer info
- Click “Restart Now” when installation is complete; it will open the CD tray and then you can hit enter; allow it to boot from the drive
Log in to Ubuntu and confirm that the installation has worked.
Post-Install
Now, to restore the Clover boot loader to be first, reboot and hit F2 to get into BIOS. Go to Boot Sequence and move the ubuntu entry down so Clover MacOS is first. Apply and Exit to reboot and test.
Now Clover will be seen first and boot but the Ubuntu disk will probably be the default volume. The LastBootedVolume selection (chosen above) is supposed to take care of that but doesn’t appear to work as it should now due possibly to nvram settings.