MacOSX installation over network

Two methods are tested to install MacOSX. There is also something about used tools and some links to related pages.

Why?

Open firmware method

This is quite simply way to get MacOSX installed. Tested with Blue and White Mac.

Requirements

Required applications to server(s)

See how to install those to your distribution. For nfs kernel-space server is recommented when using dvd images. userspace server have limitations with file size.

Machine IP:s used in this part of documentation

NFS server

NFS can be installed to any machine. In this tutorial NFS service is in different machine than other services.

Create directory to exports.

mkdir -p /exports/osx

Add export directory to /etc/exports file.

/exports/osx mac(ro,sync,anongid=1000,anonuid=1000,no_subtree_check)

Copy media to nfs share dir

cp /path/to/your/osx10.4-dvd.dmg /exports/osx/

Restart nfs-kernel-server (service not macine).

dhcpd

Add something similar to your dhcpd.conf. Change hardware ethernet to suitable your system. Actually nfsserrver is never used. You can drop it if you want.

----------------- snip -----------------

  host mac {
    filename "BootX";
    hardware ethernet 00:01:02:03:04:05;
    fixed-address 192.168.1.4;
  }

  host nfsserver {
    hardware ethernet 05:04:03:02:01:00;
    fixed-address 192.168.1.10;
  }

-------------- end of snip -------------

Restart dhcp daemon.

tftp

copy to tftpd:s root directory.
Default directories: Debian Etch /srv/tftp, Ubuntu Lucid /var/lib/tftpboot

After copying you should have similar tree:

/srv/tftp/BootX
/srv/tftp/mach.macosx
/srv/tftp/mach.macosx.mkext

Macintosh

Go to the openfirmware. cmd+opt+o+f

setenv boot-device enet:192.168.1.1
setenv boot-args rp=nfs:192.168.1.10:/exports/osx:osx10.4-dvd.dmg boot

syntax: boot-args rp=[nfs|http]:[server IP]:[path]:[path to image]

After several seconds you are in installer. With G3 it is closer to several minutes.

Press just 'n' while booting method

With this method you can install OSX just pressing 'n' button when booting your mac. Lets make everything little nicer than with Method with bootp. Actually possibility to install Intel or PPC MacOSX. Test machine was eMac. Intel version is not tested.

Requirements

Required applications to server(s)

See how to install those to your distribution. For nfs kernel-space server is recommented when using dvd images. userspace server have limitations with file size.

Machine IP:s used in this part of documentation

NFS server

NFS can be installed to any machine. In this tutorial NFS service is in different machine than other services.

Create directories to exports.

mkdir -p /exports/osx/ppc
mkdir /exports/osx/x86

Add export directory to /etc/exports file.

/exports/osx emac(ro,sync,anongid=1000,anonuid=1000,no_subtree_check) /exports/osx intelmac(ro,sync,anongid=1000,anonuid=1000,no_subtree_check)

Copy media to nfs share dir

cp /path/to/your/osx-ppc.dmg /exports/osx/ppc/osx.dmg
cp /path/to/your/osx-x86.dmg /exports/osx/x86/osx.dmg

Restart nfs-kernel-server (service not macine).

dhcpd

----------------- snip -----------------

  host emac {
    hardware ethernet 01:02:03:04:05:06;
    fixed-address 192.168.1.12;
  }

  host intelmac {
    hardware ethernet 02:02:02:02:02:0f;
    fixed-address 192.168.1.12;
  }

  host nfsserver {
    hardware ethernet 05:04:03:02:01:00;
    fixed-address 192.168.1.10;
  }

-------------- end of snip -------------

Then add to the end of the file next part. Classes handles the dirty part of the conversatioon with mac network installation. Actually it just tells where to find images like those were written by hand before.

----------------- snip -----------------
# Apple Intel
class "osx-intel" {
  match if substring (option vendor-class-identifier, 10, 4) = "i386";
  option vendor-encapsulated-options 01:01:02;
  option dhcp-parameter-request-list 1,3,17,43,60;
  option vendor-class-identifier "AAPLBSDPC";

  # relative path to booter
  filename "intel/booter";
  option root-path "nfs:192.168.1.10:/exports/osx:intel/osx.dmg";
}

# Apple PowerPC
class "osx-ppc" {
  match if substring (option vendor-class-identifier, 10, 3) = "ppc";
  option vendor-encapsulated-options 01:01:02;
  option dhcp-parameter-request-list 1,3,17,43,60;
  option vendor-class-identifier "AAPLBSDPC";

  # relative path to booter
  filename "ppc/BootX";
  option root-path "nfs:192.168.1.10:/exports/osx:ppc/osx.dmg";
}
-------------- end of snip -------------

tftp

Copy PPC boot files to tftpds /ppc directory and Intel boot files to tftpds /intel directory
Default directories: Debian etch /srv/tftp, Ubuntu Lucid /var/lib/tftpboot

After copying you should have similar tree

/srv/tftp
/srv/tftp/intel
/srv/tftp/intel/booter
/srv/tftp/intel/mach.macosx
/srv/tftp/intel/mach.macosx.mkext
/srv/tftp/ppc
/srv/tftp/ppc/BootX
/srv/tftp/ppc/mach.macosx
/srv/tftp/ppc/mach.macosx.mkext

Macintosh

Boot machine with 'n' button pressed.

Used tools

Mostly used tools/commands were vim, man, wireshark and tshark when this was tested.

Example confs

Links

Other similar pages

Tools and commands