あるPCにSL7をインストールしたいが, USBメモリやCDRがなかったので, 別のマシンをネットワークブートのサーバに設定してインストールを行った.
そのときの手順をメモ.
今回のサーバは, SL6.7.
TFTPとDHCPの設定
まずは,tftp, dhcpd, iptablesの設定をする.
なお, dhcpd自体は既に設定済みで, PXEの設定を追加するだけ.
- tftp-serverをインストールする.
sudo yum install tftp-server xinetd
- tftpの設定を行う.
sudoedit /etc/xinetd.d/tftp
以下のように太字の2箇所を設定する. Disableをyesからnoに変更する.
ログを見やすくするため, server_argsに-vを追加する.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -v -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
- Xinetdの再起動.
sudo service xinetd restart
- Firewallの設定.
sudoedit /etc/sysconfig/iptables
以下の1行を追加する. PXEではUDPでリクエストが来るので, TCPは開放せず, UDPを開放する.
-A INPUT -p udp -m udp --dport tftp -j ACCEPT
設定が済んだら, iptablesを再起動して設定を読み込む.
sudo service iptables restart
- DHCPDに設定を追加する.
sudoedit /etc/dhcp/dhcpd.conf
2個の設定 (next-serverとfilename) を追加する.
Next-serverで指定するのがTFTPが動いているサーバのアドレス.
Filenameで指定するのがPXEで最初に読み込むファイル. (後で取得方法を説明)
authoritative;
default-lease-time 3600;
max-lease-time 14400;
log-facility local7;
subnet 192.168.xx.0 netmask 255.255.255.0 {
range 192.168.xx.y1 192.168.xx.y2;
option domain-name-servers 8.8.4.4,8.8.8.8;
option routers 192.168.xx.1;
# for PXE boot
next-server 192.168.xx.yy;
filename "pxelinux/pxelinux.0";
}
設定が済んだら, dhcpdを再起動する.
sudo service dhcpd restart
PXELinuxの準備
SL7のSyslinuxというパッケージに含まれているので, ここから必要なファイルを取り出す.
その後, 設定ファイルを記載する.
- 適当なミラーサーバから syslinux-4.05-13.el7.x86_64.rpm をダウンロードする.
cd /tmp
wget .../syslinux-4.05-13.el7.x86_64.rpm
- RPM仲のファイルを展開する.
mkdir /tmp/syslinux
rpm2cpio syslinux-4.05-13.el7.x86_64.rpm | cpio -dimv
- 必要なファイルをtftpbootの下にコピーする. なお, *.c32すべて必要なわけではなく, vesamenu.c32 だけあれば良い.
mkdir /var/lib/tftpboot/pxelinux
cp /tmp/syslinux/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux/
cp /tmp/syslinux/usr/share/syslinux/*.c32 /var/lib/tftpboot/pxelinux/
- Pxelinuxの設定ファイルを用意する.
mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg/
vim /var/lib/tftpboot/pxelinux/pxelinux.cfg/default
以下のように記載する.
default vesamenu.c32
prompt 1
timeout 600
display boot.msg
label Scientific Linux 7.3 nouveau=0
menu label Install SL 7.3 without ^Nouveau
menu default
kernel ../sl73/images/pxeboot/vmlinuz
append initrd=../sl73/images/pxeboot/initrd.img nouveau.modeset=0 inst.repo=ftp://.../scientific/7.3/x86_64/os
label local
menu label Boot from ^local drive
localboot 0xffff
label memtest86
menu label ^Memory test
kernel memtest
append -
Kernelとinitrdは次の手順で準備する.
inst.repoの設定には, 適当な ftp://ftp.scientificlinux.org/linux/scientific/7.3/x86_64/os/ のミラーを指定すればよい.
Kernelとinitrdの準備
- まずは展開先のディレクトリを作成する.
mkdir -p /var/lib/tftpboot/sl73/images/pxeboot
- 2個のファイルをダウンロードする.
cd /var/lib/tftpboot/sl73/images/pxeboot
wget ftp://.../scientific/7.3/x86_64/os/images/pxeboot/vmlinuz
wget ftp://.../scientific/7.3/x86_64/os/images/pxeboot/initrd.img
インストールを開始する
インストール先のPCの電源をいれ, ネットワークから起動する.
以下のサイトを参考にした.
BIOS ベースのクライアント向けに PXE サーバーを設定する
SL 7 Rollingの追加設定
SL 7 RollingのインストーラーをPXEで起動するため, 設定を追加した.
pxelinux/pxelinux.cfg/default に以下のエントリーを追記
label Scientific Linux Rolling nouveau=0
menu label Install SL ^Rolling without Nouveau
menu default
kernel ../sl7-rolling/images/pxeboot/vmlinuz
append initrd=../sl7-rolling/images/pxeboot/initrd.img nouveau.modeset=0 inst.repo=ftp://ftp.jaist.ac.jp/pub/Linux/scientific/7rolling/x86_64/os/
Kernelとinitrdを準備
$ mkdir sl7-rolling/
$ cd sl7-rolling/
$ wget -r -l 1 ftp://ftp.jaist.ac.jp/pub/Linux/scientific/7rolling/x86_64/os/images/
$ wget -r -l 1 ftp://ftp.jaist.ac.jp/pub/Linux/scientific/7rolling/x86_64/os/images/pxeboot/
$ mv ./ftp.jaist.ac.jp/pub/Linux/scientific/7rolling/x86_64/os/images/* ./
0 件のコメント:
コメントを投稿