C-RTX BLOG

Webやネットワークなどなど

MacOSXをPXEブートサーバーにしてLinuxのインストールに使う

   

手持ちのPCにLinuxをインストールしようと思ったが、インストールディスクを焼きたくても、最近のMacには光学ドライブがついていない。外付けDVDドライブもDVD-Rメディアもない。でも、今すぐLinuxをインストールしたい。なにか良い方法はないかと調べたら、LAN経由で起動するPXEブートという方法があり、Macだけでできることがわかった。

環境

  • Mac mini (Late 2014)
  • OSX Yosemite (10.10.5)

Mac miniはWiFi(無線LAN)でインターネットに接続し、Ethernet(有線LAN)でLinuxをインストールしたいPC(以下、別PC)に接続しているものとする。また、OSXのインターネット共有機能を使用し、別PCからもインターネットを使えるようにしておくとする。

[無線LANルータ] – WiFi – [Mac] – Ethernet – [別PC]

PXEブート準備

PXEブートをするには次の二つのサーバが必要になる。

  • TFTPサーバ(起動に必要なファイルを配信)
  • DHCPサーバ(PXEブートに使うファイルの場所を教える)

どちらもOSXには標準搭載されているそうで、今回はそれらを使うことにする。

TFTPサーバ

PXEブートに必要なファイル(pxelinux.0など)を配信するサーバ。OSXではデフォルトで動いていない。

OSX標準のtftpサーバを使う場合、公開されるディレクトリは「/private/tftpboot/」となる。「/System/Library/LaunchDaemons/tftp.plist」を編集することで公開ディレクトリを変更できるが、今回はそのまま使うことにする。以下のコマンドでtftpサーバが起動する。

$ sudo launchctl load -w /System/Library/LaunchDaemons/tftp.plist

 tftpサーバを停止したい場合は以下のコマンドを実行する。

$ sudo launchctl unload -w /System/Library/LaunchDaemons/tftp.plist

 あとは「/private/tftpboot/」にPXEブートによるLinuxのインストールに必要なファイル(pxelinux.0, initrd.gzなど)を配置する。配置するファイルについては省略。

DHCPサーバ

IPアドレスの割り当てやPXEブートに使用するファイルの場所などの通知をするサーバ。OSXのインターネット共有機能でも使われている。

DHCPサーバをPXEブートに使うには、DHCPオプション66,67を設定する必要がある。そのオプションを設定ファイルに追記するが、最初はファイルが存在しないため、一旦、インターネット共有機能を有効にする。

インターネット共有機能を有効にしたら、以下のコマンドで一旦、DHCPサーバを無効にする。

$ sudo launchctl unload -w /System/Library/LaunchDaemons/bootps.plist

 その後「/etc/bootpd.plist」を編集し、dhcp_option_66とdhcp_option_67を追加する。dhcp_option_66にはTFTPサーバのIPアドレス(デフォルトでは192.168.2.1のはず)を、dhcp_option_67にはBASE64エンコードしたファイル名を指定する。ここでは「pxelinux.0」を指定している。

スクリーンショット 2015-09-21 19.24.21/etc/bootpd.plist(編集前)

スクリーンショット 2015-09-21 19.25.05 /etc/bootpd.plist(編集後)

編集が終わったら、以下のコマンドでDHCPサーバを起動する。

$ sudo launchctl load -w /System/Library/LaunchDaemons/bootps.plist

PXEブート実行

TFTPサーバとDHCPサーバの準備ができたので、あとはMacにEthernetでつないだ別PCをPXEブートで起動すれば、配置したLinuxのインストーラーが動くはず!!

大変参考になったページ

 - MacOSX , ,