ホーム > GNU/Linux > qemu用iPXEが古すぎたのでごり押しでworkaround

qemu用iPXEが古すぎたのでごり押しでworkaround

FedoraやDebianでKVMを使いネットワークブートするとipxe-roms-qemuのiPXEが起動しますが、
そのバージョンが古すぎてcpairがなくてエラーが出たり(Fedora)、menuがなくてエラーが出たり(debian)してしまうようです。
ということで、chainloadで自前のiPXEを起動することにしたのですが、qemu由来のiPXEとtftpでダウンロードしたiPXEをdhcpサーバが区別できません。

tftpで配布するiPXEはuser-classを適当に書き換え、user-classで判別できるようにしました。完全にごり押し解法。

src/net/udp/dhcp.c
- DHCP_USER_CLASS_ID, DHCP_STRING ( 'i', 'P', 'X', 'E' )
+ DHCP_USER_CLASS_ID, DHCP_STRING ( 'r', 'P', 'X', 'E' )


if exists user-class and option user-class = "rPXE" {
filename "tftp://tftpsvr/menu.ipxe";
option ipxe.keep-san 1;
option ipxe.no-pxedhcp 1;
}else{
next-server tftpsvr;
filename "/undionly2.kpxe";
}

こうすると、通常のPXEromの場合でもiPXEの場合でも一度ロードさせることができます。

ちなみに、ipxe-roms-qemu自体のtarballを差し替えてrpmbuildは試しましたがうまく動いてくれませんでした。こっちの原因はまったく不明。

広告
カテゴリー:GNU/Linux
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。