「レッツノートにCentOSをPXEブートでインストール」の編集履歴(バックアップ)一覧に戻る

レッツノートにCentOSをPXEブートでインストール - (2015/09/28 (月) 03:30:02) のソース

linux環境のPCが欲しくなったので、インストールしました。
CD焼いてインストールしてみるも、認識しない・・・。PXEサーバ立ち上げるかぁ・・・9月27日記事
~
~
目次
#contents
~
~
----
~
*パソコンの起動とは
パソコンはどのように最初OSを呼び出しているのでしょうか。OSはハードディスクに入ってるのがほとんどで、
パソコンは電源を入れると、BIOSというプログラムが起動時に呼び出されます。
パソコンの電源ボタンを押すと、windowsのロゴの前に、そのメーカーのロゴが一瞬流れる場合があります。それがBIOSです。そこでF2などキーを押すとBIOS画面に飛んできます。
~
通常、起動順序はハードディスクが優先度が高くなっているのですが、光学ドライブから呼び出したり、USBメモリから呼び出したり、あるいはEthernetケーブルをつないで、起動時にネットワーク上から起動プログラムをよんできて!と色々と変更することができます。
~
しかし、今回、光学ドライブやUSBメモリを上にあげてlinuxのOSインストールプログラム(OSイメージ)を呼び出してもエラー・・・。
~
うーん。しかたなくネットワーク上の起動プログラムを呼ぶためにPXEサーバを立ち上げて、netbootすることにしました。
~
~
*新規linuxサーバ(PXEサーバ兼DHCPサーバ)を立ち上げる。
余っていた古いPCを呼び出して、インストール。とりあえず立ち上がりました。
apacheを適当に設定しました。ドメイン名とホスト名の設定ぐらいです。
~
~
*PXEブートとは
起動順序をPXEに指定しておき、PCの電源を入れると、パソコンはネットワーク全体に対して「IPアドレスくれ!」と叫びます。
そして、DHCPサーバが、わかりました。「あなたのIPアドレスはこちらですよ」と与え、「ネットワーク上に起動プログラムもあるPXEサーバのIPアドレスも紹介します。」
とクライアント側に返して、クライアントはそのOSイメージを取得しにいき、インストールが始まるということです。よって、DHCPサーバの設定と、PXEサーバの設定両方必要なのです。
~
dhcpサーバは通常ネットワーク上に存在しています。(パソコンはつなげるだけでインターネットに接続できる環境になるでしょ?)なので競合しないように、dhcpサーバが存在しないネットワークに構築する必要があります。
運よく、vlan切っていたネットワークがdhcpサーバなかったので、そのネットワークで構築することにしました。
~
~
*DHCPサーバの設定
 # yum -y install dhcp
 # cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
 # vi /etc/dhcp/dhcpd.conf
 
 option domain-name "ドメイン名";
 option domain-name-servers DNSサーバのIPアドレス二つ。一つでもよい。;
 default-lease-time 600;
 max-lease-time 7200;
 authoritative;
 
 subnet 192.168.100.0 netmask 255.255.255.0{
 range dynamic-bootp 192.168.100.200 192.168.100.254;
 option broadcast-address 192.168.100.255;
 option routers 192.168.100.1;
 filename "/pxelinux.0";
 }
セミコロンを忘れないように。付け忘れて、エラー吐いてました・・・
~
そしてDHCPサーバ起動
 # vi /etc/rc.d/init.d/dhcpd start
~
~
*PXEサーバの設定
パッケージインストール
 # yum -y install system-config-netboot syslinux xinetd tftp-server
~
~
設定ファイル編集
 # vi /etc/xinetd.d/tftp
 を変更 14行目を変更
 disable = no
立ち上げ
 # /etc/rc.d/init.d/xinetd start 
 # chkconfig xinetd on
*OSイメージファイルの設定
 centOS取得してくる。
 # mkdir /home/username/centos7
 # cd /home/username/centos7
 # wget http://ftp.riken.jp/Linux/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1503-01.iso
設定
 # cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
 # mkdir /var/www/html/centos7
 # mkdir /var/lib/tftpboot/pxeboot
 # mkdir -p /var/pxe/centos7
 # mkdir /var/lib/tftpboot/centos7/
 # mount -t iso9660 -o loop /home/username/centos7/CentOS-7-x86_64-DVD-1503-01.iso /var/www/html/centos7/
 ↑どうやら、直にイメージファイルをおくのではなく、isoイメージのものを展開したものをマウントし、使うようです。
 # cp /var/pxe/centos7/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7/
 # cp /var/pxe/centos7/images/pxeboot/initrd.img /var/lib/tftpboot/centos7/
 # mkdir /var/lib/tftpboot/pxelinux.cfg
 # mkeir /var/lib/tftpboot/pxeboot
 # cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
 # vi /var/lib/tftpboot/pxelinux.cfg/default
以下を新規作成
 timeout 100
 default menu.c32
 
 menu title ########## PXE Boot Menu ##########
 label 1
    menu label ^1) Install CentOS 7
    kernel centos7/vmlinuz
    append initrd=centos7/initrd.img method=http://PXEサーバのIPアドレス/centos7 devfs=nomount
 
 label 2
    menu label ^2) Boot from local drive
    localboot
~
~
*ポート開放
忘れずに、ポートも開放iptables編集dhcpの67番のほうはいらないっぽい。
 # vi /etc/sysconfig/iptables
 以下の2行を追加
 -A INPUT -m state --state NEW -m udp -p udp --dport 67 -j ACCEPT
 -A INPUT -m state --state NEW -m udp -p udp --dport 69 -j ACCEPT
 # /etc/rc.d/init.d/iptables restart
これで完了。長い長い設定でした。。。OSインストールは時間がかかる・・・
[[こちら:http://www.server-world.info/query?os=CentOS_6&p=pxe&f=2]]を参考にしました。
~
~
以上