{"id":19689,"date":"2017-09-01T06:49:36","date_gmt":"2017-08-31T22:49:36","guid":{"rendered":"https:\/\/2blog.ilc.edu.tw\/25793\/2017\/09\/01\/centos-7-x-%e5%ae%89%e8%a3%9d-pxe-server\/"},"modified":"2021-03-18T17:25:08","modified_gmt":"2021-03-18T09:25:08","slug":"centos-7-x-%e5%ae%89%e8%a3%9d-pxe-server","status":"publish","type":"post","link":"https:\/\/2blog.ilc.edu.tw\/25793\/2017\/09\/01\/centos-7-x-%e5%ae%89%e8%a3%9d-pxe-server\/","title":{"rendered":"CentOS 7.x \u5b89\u88dd PXE Server"},"content":{"rendered":"<p>\u53c3\u8003\u7db2\u9801\uff1a<br \/><a href=\"http:\/\/linux.onlinedoc.tw\/2016\/05\/centos7rhel7-pxe.html\" target=\"_blank\" rel=\"noopener noreferrer\">Linux \uff0e \u7121\u9650: \u5728 CentOS7\/RHEL7 \u4e0a\u67b6\u8a2d PXE \u7cfb\u7d71(\u4e00)<\/a><br \/><a href=\"https:\/\/www.unixmen.com\/install-pxe-server-centos-7\/\" target=\"_blank\" rel=\"noopener noreferrer\">Install PXE Server On CentOS 7 | Unixmen<\/a><br \/><a href=\"https:\/\/www.server-world.info\/en\/note?os=CentOS_7&amp;p=pxe&amp;f=2\" target=\"_blank\" rel=\"noopener noreferrer\">CentOS 7 : PXE Boot : Network Install : Server World<\/a><br \/><a href=\"https:\/\/www.unixmen.com\/install-pxe-server-and-configure-pxe-client-on-centos-7\/\" target=\"_blank\" rel=\"noopener noreferrer\">Install PXE Server And Configure PXE Client On CentOS 7 | Unixmen<\/a><br \/><a href=\"https:\/\/www.server-world.info\/en\/note?os=CentOS_7&amp;p=pxe\" target=\"_blank\" rel=\"noopener noreferrer\">CentOS 7 : PXE Boot : Configure PXE Server : Server World<\/a><\/p>\n<p>1. \u5b89\u88dd\u6240\u9700\u5957\u4ef6<br \/># <span style=\"color: #ff0000\">yum install tftp-server dhcp syslinux vsftpd httpd<\/span><\/p>\n<p>2. \u8a2d\u5b9a DHCP Server<br \/># <span style=\"color: #ff0000\">vim \/etc\/dhcp\/dhcpd.conf<\/span><br \/><span style=\"color: #0000ff\">Authoritative;<\/span><br \/><span style=\"color: #0000ff\">default-lease-time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 259200;<\/span><br \/><span style=\"color: #0000ff\">max-lease-time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 518400;<\/span><br \/><span style=\"color: #0000ff\">option routers\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 192.168.1.254;<\/span><br \/><span style=\"color: #0000ff\">option broadcast-address\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 192.168.1.255;<\/span><br \/><span style=\"color: #0000ff\">option subnet-mask\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 255.255.255.0;<\/span><br \/><span style=\"color: #0000ff\">option domain-name-servers\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 168.95.1.1,140.111.66.1,8.8.8.8;<\/span><br \/><span style=\"color: #0000ff\">ddns-update-style\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 interim;<\/span><br \/><span style=\"color: #0000ff\">ignore client-updates;<\/span><br \/><span style=\"color: #0000ff\">allow booting;<\/span><br \/><span style=\"color: #0000ff\">allow bootp;<\/span><br \/><span style=\"color: #0000ff\">allow unknown-clients;<\/span><br \/><span style=\"color: #0000ff\">server-name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 pxis;<\/span><\/p>\n<p><span style=\"color: #0000ff\">subnet 192.168.1.0 netmask 255.255.255.0 {<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0\u00a0 range 192.168.1.56 192.168.1.60;<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0\u00a0 option subnet-mask\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 255.255.255.0;<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0\u00a0 option domain-name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;test.ilc.edu.tw&#8221;;<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0\u00a0 next-server 192.168.1.41;<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0\u00a0 filename &#8220;pxelinux.0&#8221;;<\/span><\/p>\n<p><span style=\"color: #0000ff\">}<\/span>[@more@]3. \u8a2d\u5b9a tftp Server<br \/># <span style=\"color: #ff0000\">cp \/usr\/lib\/systemd\/system\/tftp.service \/root\/tftp.service.$(date +%F)<\/span><br \/># <span style=\"color: #ff0000\">vim \/usr\/lib\/systemd\/system\/tftp.service<\/span><br \/><span style=\"color: #0000ff\">[Unit]<\/span><br \/><span style=\"color: #0000ff\">Description=Tftp Server<\/span><br \/><span style=\"color: #0000ff\">Requires=tftp.socket<\/span><br \/><span style=\"color: #0000ff\">Documentation=man:in.tftpd<\/span><\/p>\n<p><span style=\"color: #0000ff\">[Service]<\/span><br \/><span style=\"color: #0000ff\">ExecStart=\/usr\/sbin\/in.tftpd -s \/tftpboot<\/span><br \/><span style=\"color: #0000ff\">StandardInput=socket<\/span><\/p>\n<p><span style=\"color: #0000ff\">[Install]<\/span><br \/><span style=\"color: #0000ff\">Also=tftp.socket<\/span><\/p>\n<p>4. \u8907\u88fd syslinux \u5fc5\u8981\u6a94\u6848\u5230 tftp Server \u5206\u4eab\u7684\u76ee\u9304<br \/># <span style=\"color: #ff0000\">cd \/usr\/share\/syslinux<\/span><br \/># <span style=\"color: #ff0000\">cp pxelinux.0 menu.c32 memdisk mboot.c32 chain.c32 \/tftpboot<\/span><\/p>\n<p>5. \u5728 tftp Server \u76ee\u9304\u4e0b\uff0c\u5efa\u7acb\u53ef\u4f9b Linux \u958b\u6a5f\u6838\u5fc3\u7684\u76ee\u9304<br \/># <span style=\"color: #ff0000\">mkdir \/tftpboot\/{pxelinux.cfg,netboot}<\/span><\/p>\n<p>6. \u5c07 Linux ISO \u6a94\u5167\u5bb9\u8907\u88fd\u5230 vfftpd Server \u76ee\u9304<br \/># <span style=\"color: #ff0000\">mount -o loop CentOS-LEMP-7.3-x86_64-1611_20170320.iso \/mnt<\/span><br \/><span style=\"color: #0000ff\">mount: \/dev\/loop0 is write-protected, mounting read-only<\/span><br \/># <span style=\"color: #ff0000\">cp -a \/mnt\/* \/var\/ftp\/pub<\/span><\/p>\n<p>7. \u5c07 Linux PXE \u958b\u6a5f\u6838\u5fc3\u6a94\u6848\uff0c\u8907\u88fd\u5230 vfftpd Server \u76ee\u9304<br \/># <span style=\"color: #ff0000\">cd \/var\/ftp\/pub\/images\/pxeboot<\/span><br \/> # <span style=\"color: #ff0000\">cp vmlinuz initrd.img \/tftpboot\/netboot<\/span><\/p>\n<p>8. \u8907\u88fd CentOS Linux \u81ea\u52d5\u5b89\u88dd\u8a2d\u5b9a\u6a94 ks.cfg \u5230 <span style=\"color: #0000ff\">\/var\/ftp\/pub<\/span>\u00a0 \u76ee\u9304\u4e4b\u4e0b<br \/># <span style=\"color: #ff0000\">cp \/root\/ks.cfg \/var\/ftp\/pub<\/span><br \/># <span style=\"color: #ff0000\">chmod 644 \/var\/ftp\/pub\/ks.cfg<\/span><\/p>\n<p>9. \u4fee\u6539 SELinux \u76f8\u95dc\u8a2d\u5b9a<br \/># <span style=\"color: #ff0000\">yum install policycoreutils-python<\/span><br \/># <span style=\"color: #ff0000\">semanage fcontext -a -t public_content_t &#8220;\/tftpboot(\/.*)?&#8221;<\/span><br \/># <span style=\"color: #ff0000\">restorecon -F -R -v \/tftpboot<\/span><br \/># <span style=\"color: #ff0000\">restorecon -R -F -v \/var\/ftp\/pub\/<\/span><\/p>\n<p>10. \u5efa\u7acb PXE Server \u958b\u6a5f\u9078\u55ae<br \/># <span style=\"color: #ff0000\">vim \/tftpboot\/pxelinux.cfg\/default<\/span><br \/><span style=\"color: #0000ff\">default menu.c32<\/span><br \/><span style=\"color: #0000ff\">prompt 0<\/span><br \/><span style=\"color: #0000ff\">timeout 30<\/span><br \/><span style=\"color: #0000ff\">MENU TITLE example.com PXE Menu<\/span><br \/><span style=\"color: #0000ff\">LABEL CentOS7_x64<\/span><br \/><span style=\"color: #0000ff\">MENU LABEL CentOS 7.3 x86_64<\/span><br \/><span style=\"color: #0000ff\">KERNEL \/netboot\/vmlinuz<\/span><br \/><span style=\"color: #0000ff\">APPEND initrd=\/netboot\/initrd.img inst.repo=ftp:\/\/192.168.5.104\/pub ks=ftp:\/\/192.168.5.104\/pub\/ks.cfg<\/span><\/p>\n<p>11. \u555f\u52d5\u76f8\u95dc\u670d\u52d9<br \/># <span style=\"color: #ff0000\">systemctl enable vsftpd<\/span><br \/><span style=\"color: #0000ff\">Created symlink from \/etc\/systemd\/system\/multi-user.target.wants\/vsftpd.service to \/usr\/lib\/systemd\/system\/vsftpd.service<\/span><br \/># <span style=\"color: #ff0000\">systemctl start vsftpd<\/span><br \/># <span style=\"color: #ff0000\">systemctl enable tftp<\/span><br \/><span style=\"color: #0000ff\">Created symlink from \/etc\/systemd\/system\/sockets.target.wants\/tftp.socket to \/usr\/lib\/systemd\/system\/tftp.socket.<\/span><br \/># <span style=\"color: #ff0000\">systemctl start tftp<\/span><br \/># <span style=\"color: #ff0000\">systemctl daemon-reload<\/span><br \/># <span style=\"color: #ff0000\">systemctl enable dhcpd<\/span><br \/><span style=\"color: #0000ff\">Created symlink from \/etc\/systemd\/system\/multi-user.target.wants\/dhcpd.service to \/usr\/lib\/systemd\/system\/dhcpd.service.<\/span><br \/># <span style=\"color: #ff0000\">systemctl start dhcpd<br \/><\/span># <span style=\"color: #ff0000\">systemctl enable httpd<\/span><br \/><span style=\"color: #0000ff\">Created symlink from \/etc\/systemd\/system\/multi-user.target.wants\/httpd.service to \/usr\/lib\/systemd\/system\/httpd.service<\/span><br \/># <span style=\"color: #ff0000\">systemctl start httpd<\/span><\/p>\n<p>12. \u9632\u706b\u7246\u4e0a\u8a2d\u5b9a<br \/># <span style=\"color: #ff0000\">firewall-cmd &#8211;permanent &#8211;add-service=dhcp<\/span><br \/># <span style=\"color: #ff0000\">firewall-cmd &#8211;permanent &#8211;add-service=ftp<\/span><br \/># <span style=\"color: #ff0000\">firewall-cmd &#8211;permanent &#8211;add-service=http<\/span><br \/># <span style=\"color: #ff0000\">firewall-cmd &#8211;permanent &#8211;add-service=tftp<\/span><br \/># <span style=\"color: #ff0000\">firewall-cmd &#8211;reload<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u53c3\u8003\u7db2\u9801\uff1aLinux \uff0e \u7121\u9650: \u5728 CentOS7\/RHEL7 \u4e0a\u67b6\u8a2d PXE \u7cfb\u7d71(\u4e00)Install P &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/2blog.ilc.edu.tw\/25793\/2017\/09\/01\/centos-7-x-%e5%ae%89%e8%a3%9d-pxe-server\/\" class=\"more-link\">\u95b1\u8b80\u5168\u6587<span class=\"screen-reader-text\">\u3008CentOS 7.x \u5b89\u88dd PXE Server\u3009<\/span><\/a><\/p>\n","protected":false},"author":55,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[117,126],"tags":[],"class_list":["post-19689","post","type-post","status-publish","format-standard","hentry","category-c-78462","category-c-78471"],"meta_key":{"_pingme":["1"],"_encloseme":["1"],"lt_post_id":["691167"]},"_links":{"self":[{"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts\/19689"}],"collection":[{"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/users\/55"}],"replies":[{"embeddable":true,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/comments?post=19689"}],"version-history":[{"count":1,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts\/19689\/revisions"}],"predecessor-version":[{"id":21185,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts\/19689\/revisions\/21185"}],"wp:attachment":[{"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/media?parent=19689"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/categories?post=19689"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/tags?post=19689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}