In this question I summarize a complete recipe for installing single-boot (this should be simple!) Ubuntu 18.04 LTS on a (possibly older) Mac Mini, iMac, or MacBook.
But it has an error. If you are doing an identical or similar set up, what is/are the flaw(s)?
Note 1: I'm selecting Ubuntu because I would like to have a local Linux machine that mirrors an AWS instance—for experiments that iron out differences (Docker, etc) between developing on macOS and deploying on Linux. If you can provide a complete, self-contained recipe for any distro (preferably: CentOS, Debian, Fedora, Suse, Arch, in this order), that will be just as good. For Docker etc use cases, they will all be identical.
Note 2: I'm selecting to single-boot because I have no need for running another macOS instance on this hardware. If you maintained a complete recipe for installing dual-boot Linux/macOS, that's also good, provided it doesn't add far too many steps.
RECIPE
Install Ubuntu
- Download the Ubuntu ISO. Download Etcher. Use Etcher to prepare a USB flash.
- Insert flash. Press 'option' before chime. Choose EFI. [Puzzle: Why do two instances of EFI appear, both from the installation flash disk?]
- Press 'e'. Replace
quiet splash
withquiet splash nomodeset
. - Install Ubuntu on Mac's disk.
[Edit 1: After less than 10 minutes we're now essentially done. If you're using this recipe, skip the rest of the question and continue from the answer. Still to-do: summarize the recipe in one place, ideally while also outlining a solution to the most obvious first roadblock after this recipe: setting up a wireless (Broadcom) driver.]
*[Edit 2: This recipe for setting up the wifi router didn't work. The 'additional driver' tab is empty.]
[Edit 3: This recipe works, but I needed to restart after each, and the first restart took a while—it appears to initiate an update that lingers after the command-line prompt returns. Short version: Control-Option-T (terminal). sudo apt-get update
. Do something else. Reboot. Perhaps wait again. sudo apt-get install firmware-b43-installer
. Reboot.]
[Edit 4: Find the machine's IP address on the local network by running sudo apt-get net-tools
followed by /sbin/ifconfig -a
.]
*[Edit 5: Install/launch ssh server daemon by running sudo apt install openssh-server
.]
Booting from the Mac's disk will hang at the splash screen. The nomodeset
addition needs to be saved. [There may well be a quick exit at this point for a headless Linux instance (that's what one gets from AWS anyway). But let's keep that for a sequel. In this case we're after a working (KDE, etc) set up.
The following is from these three recipes.
Introduce nomodeset
to the boot script
- Boot once again from flash (press 'option'; press 'e'; adjust 'nomodeset').
- This time abort installation ('quit'). Launch the terminal (pressing the nine-dot icon brings up a search bar).
- Use
gparted
(How to reveal this on the command line?mount
?parted -l
?fdisk /dev/sda
?) to determine theext4
partition. Say it's/dev/sda2
. sudo mount --bind /dev /mnt/dev &&
,sudo mount --bind /dev/pts /mnt/dev/pts &&
,sudo mount --bind /proc /mnt/proc &&
,sudo mount --bind /sys /mnt/sys
. [Something is wrong here. Still working on a complete, self-contained recipe.]sudo chroot /mnt
(see here). [Something is wrong here. Still working on a complete, self-contained recipe.]sudo nano /etc/default/grub
- Add
nomodeset
toGRUB_CMDLINE_LINUX_DEFAULT
. sudo update-grub
.
The output at this last step is:
Sourcing file `/etc/default/grub`
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.0.0.23-generic
Found initrd image: /boot/initrd.img-5.0.0-23-generic
grub-probe: error: cannot find a GRUB drive for /dev/sdb1. Check your device.map.
done
How do I tell sudo update-grub
to use /dev/sda2
?
Would using rEFInd simplify the recipe above? (update)
What is briefer, to use rEFInd or not to use it? I understand that the reason for the existence of rEFInd is to enable a dual-boot linux set up on a Mac. But if just single-boot linux is sought, does introducing rEFInd make the recipe simpler or more complicated?