電脳世界のケーキ屋さん

考えの甘い甘党エンジニアがいろいろ書くブログ

Linux PXE 実習(Fedoraインストーラの起動)

はじめに

前回投稿した PXE 関連記事の続き.
構築した PXE 環境を使って Fedoraインストーラの起動を行えるようにする.

amaneku.hatenadiary.com

手順

  1. Fedora のインストールイメージをダウンロードする
  2. イメージは Standard ISO image for x86_64 のDVDイメージを利用するものと仮定
# mkdir /var/lib/tftpboot/image/fedora/
# cd $_
# wget https:// download.fedoraproject.org/pub/fedora/linux/releases/31/Server/x86_64/iso/Fedora-Server-dvd-x86_64-31-1.9.iso
↑URLに空白を挿入している
  1. ループバックマウントの実施
# cd /var/lib/tftpboot/image
# mkdir /var/lib/tftpboot/image/fedora/root
# mount -o loop,ro Fedora-Server-dvd-x86_64-31-1.9.iso root/
# df

fstab に登録する場合は下記のエントリを /etc/fstab に追記する.

#/etc/fstab 
/var/lib/tftpboot/image/fedora/fedora.iso /var/lib/tftpboot/image/fedora/root iso9660 loop,ro,auto,nofail 0 0
  1. pxelinux.cfg 設定ファイルの編集
  2. 対象ファイルは以下2つを想定
    • /var/lib/tftpboot/bios/pxelinux.cfg/default
    • /var/lib/tftpboot/efi64/pxelinux.cfg/default

pxelinux.cfg/default

DEFAULT menu.c32  # LegacyBIOSの場合(どっちかを記載)
UI menu.c32       # EFI64の場合(どっちかを記載)

LABEL Fedora31-local
 MENU LABEL Installer-Fedora31(Local)
 KERNEL http://<PXE IPアドレス>/image/fedora/root/images/pxeboot/vmlinuz
 APPEND initrd=http://<PXE IPアドレス>/image/fedora/root/images/pxeboot/initrd.img ip=dhcp inst.repo=http://<PXE IPアドレス>/image/fedora/root/

メモ

FedoraインストーラPXE経由で起動させるためには, パッケージリポジトリを指定する必要がある.
これの簡単な方法は, DVDイメージ内のローカルリポジトリをクライアントに見せるか, Fedoraリポジトリミラーサイトを直接指定することになる.
(本末転倒だが, PXEクライアント側にFedoraのDVDイメージが挿さっていればそれを使うこともできる)

環境構築の際に HTTP サーバを動作させるようにしているので, 今回は PXEサーバが保持している DVDイメージを参照するように設定した.
容量をケチってループバックマウントしているが, 展開しても問題はない.

参考: RHEL7インストールガイド > 起動オプション

なおインターネットのミラーサイトを指定する場合は Fedora31 の場合は以下の通り.

https:// download.fedoraproject.org/pub/fedora/linux/releases/31/Server/x86_64/os/

vmlinuz や initramfs も配下に存在するので, 全てのリソースをミラーサイトから取ってきて動作させることもできる.
うちは回線の問題で厳しいのでローカルにダウンロードした次第である.

Kickstart とか余裕があれば勉強したい所存