-
-
Notifications
You must be signed in to change notification settings - Fork 15
Installation | NewWorld PowerMac with Grub
Download the powerpc ISO
https://archlinuxpower.org/iso/
Although there are ways to install via USB, we assume you burnt it to a CD/DVD and boot of your optical drive.
Create a bootstrap partition
It should be at least 12MiB, read not the default 800KiB size!! Depending on which Grub modules you'd like to generate into the Grub boot image, it may need to be bigger. 32MiB is plenty and you'll likely won't ever need more. (That's similar to what they said about the Apollo Guidance Computer's amount of "RAM" too though).
[root@archiso ~]# mac-fdisk /dev/sda
/dev/sda
Command (? for help): i
size of 'device' is 33554432 blocks:
new size of 'device' is 33554432 blocks
Command (? for help): p
/dev/sda
# type name length base ( size ) system
/dev/sda1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map
/dev/sda2 Apple_Free Extra 33554368 @ 64 ( 16.0G) Free space
Block size=512, Number of Blocks=33554432
DeviceType=0x0, DeviceId=0x0
Command (? for help): C
First block: 64
Length (in blocks, kB (k), MB (M) or GB (G)): 12M
Name of partition: bootstrap
Type of partition: Apple_Bootstrap
Command (? for help): p
/dev/sda
# type name length base ( size ) system
/dev/sda1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map
/dev/sda2 Apple_Bootstrap bootstrap 24576 @ 64 ( 12.0M) NewWorld bootblock
/dev/sda3 Apple_Free Extra 33529792 @ 24640 ( 16.0G) Free space
Block size=512, Number of Blocks=33554432
DeviceType=0x0, DeviceId=0x0
Command (? for help): c
First block: 24640
Length (in blocks, kB (k), MB (M) or GB (G)): 15G
Name of partition: root
Command (? for help): p
/dev/sda
# type name length base ( size ) system
/dev/sda1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map
/dev/sda2 Apple_Bootstrap bootstrap 24576 @ 64 ( 12.0M) NewWorld bootblock
/dev/sda3 Apple_UNIX_SVR2 root 31457280 @ 24640 ( 15.0G) Linux native
/dev/sda4 Apple_Free Extra 2072512 @ 31481920 (1012.0M) Free space
Block size=512, Number of Blocks=33554432
DeviceType=0x0, DeviceId=0x0
Command (? for help): c
First block: 31481920
Length (in blocks, kB (k), MB (M) or GB (G)): 2072512
Name of partition: swap
Command (? for help): p
/dev/sda
# type name length base ( size ) system
/dev/sda1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map
/dev/sda2 Apple_Bootstrap bootstrap 24576 @ 64 ( 12.0M) NewWorld bootblock
/dev/sda3 Apple_UNIX_SVR2 root 31457280 @ 24640 ( 15.0G) Linux native
/dev/sda4 Apple_UNIX_SVR2 swap 2072512 @ 31481920 (1012.0M) Linux swap
Block size=512, Number of Blocks=33554432
DeviceType=0x0, DeviceId=0x0
Command (? for help): w
IMPORTANT: You are about to write a changed partition map to disk.
For any partition you changed the start or size of, writing out
the map causes all data on that partition to be LOST FOREVER.
Make sure you have a backup of any data on such partitions you
want to keep before answering 'yes' to the question below!
Write partition map? [n/y]: y
The partition map has been saved successfully!
Syncing disks.
Partition map written to disk. If any partitions on this disk
were still in use by the system (see messages above), you will need
to reboot in order to utilize the new partition map.
Consider creating a swap partition or file of course. The partition type just shouldn't be Apple_Bootstrap but otherwise won't matter.
Install base using pacstrap
Modify the target folder to your needs, we assume /mnt here and add kernels, grub and hfsutils for good measure.
If on a 64bit machine such as a G5 or POWER6, consider installing linux-ppc64 for the kernel.
$ pacstrap /mnt/ base linux{,-g4} grub hfsutils
Format bootstrap partition
We assume it's the first partition (after the Apple partition map) thus /dev/sda2:
$ hformat /dev/sda2
Mount bootstrap partition
Still we assume it's /dev/sda2 an you need to mount it to /boot/grub on the target rootfs, add it to fstab along with the rest of your partitions and install Grub.
$ mkdir /mnt/boot/grub
$ mount /dev/sda2 /mnt/boot/grub
# bootstrap partition should always get mounted to /boot/grub so grub hooks may work properly
$ genfstab -U /mnt > /mnt/etc/fstab
$ arch-chroot /mnt
$$ grub-mkconfig -o /boot/grub/grub.cfg
# this one will fail if bootstrap is too small (depends on Grub mods included with core.elf)
$$ grub-install
Troubleshooting
Additional steps needed to fix and issue where OpenFirmware may not recognize grub, blessing binaries on our bootstrap partition.
$ umount /dev/sda2
$ hmount /dev/sda2
$ hattrib -t tbxi :grub
$ hattrib -b :
$ humount
After you're done with the above, your system should detect the installation and boot Grub. So just configure as normal using the regular Archlinux Installation Guide skipping bootloader specifics.