Recently as of (11/05/2025) I have moved to Linux as the main operating system on my Macbook Pro 2019 and wanted to share the process!
You can follow along here or you can use the documentation at t2linux.org
Lets get into the steps that I took…
Step 1 Partition The Drive
The first step is to partition the drive there is many ways I did mine through the disk utility in macOS and since I am still going to dual boot macOS I kept the partitions to be about 50/50 between Linux and macOS.
Step 2 Disable Secure Boot
You need to have secure boot disabled in order to boot into a different operating system on the Macbook.
In order to disable it you on boot hold the command+r keys and it will put you into macOS recovery and in the task bar you will have the startup security settings under the utilities section. Then you can disable secure boot and allow to boot from non secure OS
Step 3 Download the ISO and boot into the live environment/live environment setup
Go to the following link to get the ISO of the distro that you want to use in this case it is arch Linux make sure to get the ISO from the t2linux.org website or go through the process of compiling your distro as it will have the software to use the built in keyboard, mouse, wifi, ethernet, touchbar, etc. Once you have a bootable USB I assume you can make one then just google tools like rufus or balena etcher just walk you through the process
To boot into the ISO you reboot the macbook and hold the option key and select the orange EFI boot option usually the farthest to the right.
Once booted into the live environment you are going to want to setup wifi/network. if you have a usb-c to Ethernet or you can use wifi but its kind of spotty.
To use wifi use the iwctl tool the commands are here
Step 4 Reformat the partions
We will be using cfdisk to do this as i think it is a superior utility >:)
In the live environment list the disks
lsblk
You will see an output like this:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 233.8G 0 disk
├─nvme0n1p1 259:1 0 300M 0
├─nvme0n1p2 259:2 0 93.1G 0
└─nvme0n1p3 259:4 0 140.3G 0
You will have three partitions the first is the EFI and the second one is the macOS partitions respectfully. We will be taking the third one that we created for Linux and reformatting/partitioning it.
Before that its good to explain what partition are needed for arch Linux to run as best as possible. they need a boot partition in this case we will reuse the macOS EFI, the second is a swap partition and lastly is the actual root Linux partition. So we will run the following command to repartitions the drive to make the Linux partition and the swap partition.
cfdisk /dev/DISKNAME
The disk name will be replaced with the following disk name from the lsblk command we have earlier
(EX: nvme0n1)
Once in cfdisk utility we will delete the third partition we created for root Linux partition and with the free space recreate the two partitions with the first being the swap which is usually ram/2 or whatever you feel like but greater than 2gb.
I made mine 4G as I have 8GB of ram.
we will use all the remaining space for the main root Linux partition. after you have finished save/write the changes and exit.
Now if you did the following the lsblk should look something like the following:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 233.8G 0 disk
├─nvme0n1p1 259:1 0 300M 0
├─nvme0n1p2 259:2 0 93.1G 0
├─nvme0n1p3 259:3 0 4G 0
└─nvme0n1p4 259:4 0 136.3G 0
You can see that I have have the 4G swap partition and the Linux partition
Now we will format the partitions so for the root Linux partition use the following command:
mkfs.ext4 /dev/root_partition
For the swap you will use the following command
mkswap /dev/swap_partition
Step 5 Mount the partitions
We will now mount the partitions
To mount the root partition use the following command
mount /dev/root_partition /mnt
For the swap partition use the following command
swapon /dev/swap_partition
For the EFI/Boot partition mount it using the following command to create the directory and mount it
(in my example it would be nvme0n1p1)
mount --mkdir /dev/efi_system_partition /mnt/boot
Step 6 Install Required Packages For System
Now we will install the required packages for the system. There is two methods both done very well on t2linux.org
If you want the more traditional arch Linux experience you can do the following:
pacstrap /mnt base linux-t2 linux-t2-headers apple-t2-audio-config apple-bcm-firmware linux-firmware iwd grub efibootmgr t2fanrd
I recommend also installing nano/vim for a text editor if you want
pacman -Sy TEXTEDITOR
If you do the pacstrap way you will need to add a repository to the following
first using a text editor open /mnt/etc/pacman.conf
Then add the following to the file; save and exit
[arch-mact2]
Server = https://mirror.funami.tech/arch-mact2/os/x86_64
SigLevel = Never
This is the other way to do it by running the following command
t2strap /mnt base linux-firmware iwd grub efibootmgr
This is how we install the files needed to go further.
Step 7 Configure The System
Now it is time to configure the system
The first command will be to generate the fstab and its best to use the UUID values instead of labels it just works better for a Macbook.
genfstab -U /mnt >> /mnt/etc/fstab
Okay now it is time to chroot into the system!
arch-chroot /mnt
Next we will run commands to set the clock and timezone these are needed to install packages
For the time zone do the following and change the region to the country and the city to the city you live in.
ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
The next step is to set the hardware clock
hwclock --systohc
Now its time to editing the following /etc/locale.gen and remove the # from the line that has en_US.UTF-8 UTF-8 ; Save and exit then run the following command
locale-gen
Then create the file /etc/locale.conf and add the following to the file; save and exit
LANG=en_US.UTF-8
The next thing we will be adding a hostname to the system so open the following /etc/hostname and add the hostname you want my example was archbookpro but you can name it whatever but make sure to follow the following advice from the arch wiki
For advice on choosing a hostname, see RFC 1178. As explained in hostname(7), it must contain from 1 to 63 characters, using only lowercase a to z, 0 to 9, and -, and must not start with -.
Next we will create a new Initramfs
mkinitcpio -P
Lastly set a password for a root account!
passwd
Step 8 Bootloader!
Before we install/configure the bootloader we need to enable a service that we installed before
systemctl enable t2fanrd
Its finally time to do the final config of the bootloader. The bootloader bootloader of choice is GRUB just for its easy setup process
- Edit /etc/defualt/grub
- On the line with GRUB_CMDLINE_LINUX=”quiet splash”, add the following kernel parameters
:intel_iommu=on iommu=pt pcie_ports=compat - Also this is for arch or endeavorOS only but you may need to add the following to the GRUB_CMDLINE_LINUX_DEFAULT = brcmfmac.feature_disable=0x82000 (This is to get IWD working properly as there are some network issues using arch Linux.
- Run grub-install –target=x86_64-efi –efi-directory=/boot –bootloader-id=GRUB –removable
- Run grub-mkconfig -o /boot/grub/grub.cfg to generate configuration file
Step 9 Final Packages Install
In chroot its a good time to install some packages that you might need
pacman -Sy networkmanager iwd nano
These are not essential but I recommend them because you will eventually need to install them to get wifi working with iwd if you have any network issues it is recommended to follow the steps provided in the t2linux.org wifi setup
Step 10 Reboot And Launch Into The Arch Install
Exit the chroot environment and reboot.
When rebooting the Macbook hold down the option key and instead of selecting the orange EFI boot option there will now be a new EFI option that looks the same as the macOS. Select that and you will boot into archlinux!
Continue to setup how you like your archlinux to be. I use windowmaker and xfce desktop environments.