概要
- Windows環境を汚さずにUnslothモデルのテストを行いたい動機
- PXE+iSCSIによるリモートブート環境の構築手順
- ProxmoxとZFS、iSCSI Targetを活用した構成
- DNSMasqやTFTPなどネットワークブートに必要な設定
- Debianのインストールまでの一連の流れを簡潔に解説
Windows環境を汚さずにLLMテスト用Linuxをリモートブートする動機
- Windows 上で Unslothモデル(Qwen3.6、Gemma4) をテストしたいニーズ
- llama.cpp のWindowsビルドが面倒、既に多くのツールチェーンが混在
- Windows は開発用途に不向きと感じており、ゲーム専用機として維持したい意向
- GRUB の破損やUEFI管理の煩雑さを回避したい
- USBブートは利便性・紛失リスク・誤消去の問題あり
- 既存の NAS を活用し、 PXE + iSCSI でネットワーク経由ブートを希望
PXE/iSCSIリモートブートの制約と前提
- ネットワークドライブ へのDebianインストールはネイティブより速度劣化
- モデルデータはローカルNVMeに配置し、OSパフォーマンスは重視しない
- 前提構成:
- Debian 13ベースサーバー (Netboot.xyz, tftpd, iSCSI Target, ZFS ZVol担当)
- Proxmox での運用
- Asus Router + Merlin firmware でDNSMasq利用
Netboot.xyzのインストールと設定
- 必要パッケージ のインストール
apt install apache2 git ansible tftpd-hpa targetcli-fb
- Netboot.xyz のクローンと編集
/opt/netboot.xyz/user_overrides.ymlを編集し、site_nameとboot_domainをサーバーIPに- テンプレートファイル(boot.cfg.j2, local-vars.ipxe.j2)を編集し、iSCSIブート対応
- Ansible でインストール・展開
ansible-playbook -i inventory site.yml
- カスタムiPXEメニュー の作成
/var/www/html/debian13-iscsi.ipxeにiSCSI接続情報記述/var/www/html/custom.ipxeでローカルカスタムメニュー追加
- Debianインストーラーイメージ のダウンロード
initrd.gzとlinuxを/var/www/html/assets/debian13/へ配置
TFTPサーバーの設定
/etc/default/tftpd-hpaでTFTP設定- ディレクトリ・ユーザー・アドレス指定
- Netboot.xyzバイナリ をTFTPディレクトリへコピー
/srv/tftp/ipxeにkpxe/efiファイル配置- サービス再起動:
service tftpd-hpa restart
DNSMasq(DHCP)の設定
- ルーターのdnsmasq設定 (例:Asus Merlin)
/jffs/configs/dnsmasq.conf.addにPXE/iPXE両対応の設定を記述- BIOS用、UEFI用、iPXE用のdhcp-boot行を分岐指定
- dnsmasq再起動 で反映
ZFS ZVOL作成
- ZFSプール・ZVOLの作成
zpool create tank /dev/disk/by-id/${DISK_ID}zfs create -V 32G tank/debian-disk-12700k
- iSCSI以外の任意ディスクも利用可能
iSCSIターゲットの設定
- targetcli でZVOLをiSCSIターゲットとしてエクスポート
- バックストア登録、ターゲット作成、TPG・ACL・認証情報設定
- LUNマッピング、ポータル確認、設定保存
- 認証情報 (ユーザー名・パスワード・相互認証)を必ず設定
Debianのインストール
- PXE/iSCSI経由でDebianインストーラーを起動
- VM/実機どちらでも同様の手順で利用可能
- iSCSIディスクをターゲットとしてDebianをインストール
- インストール後もGRUB等のブートローダーがリモートディスク上に配置されるため、Windows環境に影響を与えない
この手法により、 Windows環境を汚さず、 ネットワーク経由でLinux OSを柔軟に起動・運用 できる構成を実現可能。 ゲームPC と 開発環境 の完全分離が可能な点が大きなメリット。