Installation of Debian on a MacMini
I've tried several howtos to install Linux on my mini. None of them worked perfectly. So I decided to document my installation procedure here.
I decided to install Debian to an external USB disk. You need the following for this howto:
- an USB harddisk that is supported by Linux
- a machine with a running Debian
Install EFI boot loader
First boot MacOS. You need to download the precompiled binary tarball from the [http://refit.sourceforge.net/#download rEFIt] project. Untar it as root somewhere. Then install rEFIt with the supplied enable.sh script.
cd wget http://switch.dl.sourceforge.net/sourceforge/refit/refit-bin-0.2.tar.gz cd / tar zxvf ~/refit-bin-0.2.tar.gz mv refit-bin-0.2 refit cd refit/efi/refit ./enable.sh
Compile Kernel
Now you need your working Debian machine. I am using the latest git tree and some [http://cvs.sourceforge.net/viewcvs.py/mactel-linux/misc/misc/ patches] from [http://www.mactel-linux.org/ Mactel-Linux].
mkdir MacMini && cd MacMini git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6 cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/mactel-linux co -P misc mv misc mactel cd linux-2.6 patch -p1 < ../mactel/misc/imac-2.6.16-rc6.patch make mrproper cp ../mactel/misc/config-2.6.16-rc5 .config make menuconfig make
Set up hard disk
Connect the hard disk and create some partitions. The first primary partition should be a vfat partition. It is needed to boot elilo from the EFI bootloader. Because my mini has a lot of RAM I left out the swap partition. But it might be a good idea to create one. Here my partition table:
Device Boot Start End Blocks Id System /dev/sdb1 1 30 30704 c W95 FAT32 (LBA) /dev/sdb4 31 38204 39090176 5 Extended /dev/sdb5 31 14336 14649328 83 Linux /dev/sdb6 14337 38204 24440816 83 Linux
The next step is to format the partitions:
mkfs.vfat -n Debian /dev/sdb1 mkfs.ext3 /dev/sdb5 mkfs.ext3 /dev/sdb6
The volume label of the vfat partition is diplayed late in the EFI bootloader.
Set up kernel and elilo
For booting the Linux kernel you need the EFI aware version of lilo called [http://elilo.sourceforge.net elilo]. You can get a working binary from the mactel guys [http://cvs.sourceforge.net/viewcvs.py/mactel-linux/misc/boot/ here]. You need the the e.efi (elilo itself) and the configuration file elilo.conf. Copy them and the build kernel into the root of the vfat partition. As last step you need to adjust the elilo config file. I had to change the root device to /dev/sdb5 and the framebuffer type to mini (instead if i17 or i20).
mount /dev/sdb1 /mnt cp mactel/boot/e.efi mactel/boot/elilo.conf /mnt cp linux-2.6/arch/i386/boot/bzImage /mnt/vmlinuz vim /mnt/elilo.conf umount /mnt
