PXE��Ȥä�PC��ǥ������쥹�ˤ��褦

YAMAMORI Takenori ��yamamori

��Linux��ǥ������쥹���饤����Ȥˤ���

���٤�Linux��ǥ������쥹���饤����Ȥˤ��Ƥߤޤ��礦�� ���Τ���ˤϡ�Linux�����ͥ뤬NFS root���б����Ƥ���ɬ�פ�����ޤ��� ���������Ƽ�ǥ����ȥ�ӥ塼��������°��ɸ�५���ͥ�Ǥϡ� NFS root�ε�ǽ���Ȥ߹��ޤ줺�˥����ͥ뤬���ۤ���Ƥ��뤳�Ȥ�¿�����ᡤ NFS root��Ϣ�ε�ǽ���Ȥ߹���ǥ����ͥ��ƹ��ۤ���ɬ�פ�����ޤ��� �ʤ��������Ǥ����� Vine 2.0 ��Ȥä�ư����ǧ���ޤ����������θ塤Vine 2.1.5 �ۤ��ΥС������Ǥ�ư���ǧ���Ƥ��ޤ���

��DHCP / NFS root / �ͥåȥ���ǥХ����ɥ饤�Ф��Ȥ߹���

�����ͥ�κƹ��ۤΥݥ���Ȥϡ�DHCP(�ޤ���BOOTP)��ǽ���Ȥ߹��ߡ�NFS root ��ǽ���Ȥ߹��ߡ�NIC �ΥǥХ����ɥ饤�Ф���Ū��󥯤�3���Ǥ���

��make menuconfig�ɤ��Ѥ��������ͥ�ƹ��ۤζ���Ū�ʼ��򼨤��ޤ���

�ޤ��ǽ�ˡ���Networking options�ɤ���� ��IP: kernel level autoconfiguration�ɤ����򤷤�[*]���֤ˤ��ޤ��� ����ȡ�BOOTP support�ɤΥ��ץ���󤬸���뤿�ᡤ�������[*]�ˤ��ޤ���


����
���ޤǤ� BOOTP ��ǽ������ȤäƤ��ޤ�����Vine 2.1.5(��°�����ͥ�2.2.18) �ʤɤǤϥ����ͥ륪�ץ����� DHCP��ǽ�����뤿�ᡢDHCP������ͭ���ˤ��Ƥ����Ȥ褤�Ǥ��礦��

�������ͥ��BOOTP(�ޤ���DHCP)���ݡ��Ȥ�ͭ���ˤ���
bootp.gif

���ˡ� ��Filesystems�ɢ���Network File Systems�ɤȲ��̤�ʤᡤ ��NFS filesystem support�ɤ����ǥե���Ȥ�<M>�ˤʤäƤ���Τ� <*>���ѹ����ޤ��� ����ȡ���Root file system on NFS�ɤΥ��ץ���󤬸���뤿�ᡤ �����[*]�ˤ��ޤ���

��NFS root��ޥ���ȤǤ���褦�ˤ���
nfs-root.gif

����ˡ����Ѥ���NIC���б������⥸�塼�����Ū���Ȥ߹���ɬ�פ�����ޤ��� �����PRO/100+����Ѥ��Ƥ���Τǡ� ��Network device support�ɢ� ��Ethernet (10 or 100Mbit)�� �Ȳ��̤�ʤᡤ������� ��EtherExpressPro/100 support�ɤ� <M>����<*>���ѹ����ޤ���

��eepro100�ɥ饤�Ф���Ū�Ȥ߹���
eepro100.gif

���ΤȤ�����EtherExpressPro support�ɤȤ����� �褯����̾�����̤Υ⥸�塼�뤬�����̤ξ�����˾���Υ���¸�ߤ��뤿�ᡤ ����Ⱦ���ʶ��路�����ְ㤨�䤹���Τ����դ��Ʋ�������


�ʾ���ѹ��ϡ�.config�ե�����ξ�Ǥϡ� ����Ū�˰ʲ���4�ĤΥ��ץ������ɲä������Ȥ��������ޤ���

CONFIG_IP_PNP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_ROOT_NFS=y
CONFIG_EEXPRESS_PRO100=y

����������ʳ��ˤ⡤ ��Ϣ���뤤���Ĥ��Υ��ץ���󤬡�make menuconfig�ɤˤ�äơ� �⥸�塼�뤫�饫���ͥ��Ȥ߹��ߤ˼�ưŪ���ѹ�����Ƥ��ޤ���

�ʤ�����make menuconfig�ɤǤϡ� �ۤ��Υ��ץ����Ȥΰ�¸�ط����θ���� �����ǽ�ʥ��ץ����Τ�ɽ������褦�ˤʤäƤ��뤿�ᡤ ��������������Բ�ǽ�ʥ��ץ����ϡ� ��������褵��ɽ������ʤ��������դ��Ʋ������� �������Ǥϡ���ˡ�BOOTP support�ɤ����򤷤Ƥ����ʤ��ȡ� ��Root file system on NFS�ɤΥ��ץ���󤬽ФƤ��ޤ���

�Ȥ����ǡ�NIC�Υɥ饤�Ф򥫡��ͥ����Ū�ˤ��Ȥ߹��ޤ��� initrd�ǥ⥸�塼��Ȥ��ƥ����ɤ��뤳�ȤϤǤ��ʤ��ΤǤ��礦���� �ºݡ�SCSI�ϡ��ɥǥ�������root�Ȥ��ƥޥ���Ȥ��륷���ƥ�ˤ����Ƥϡ� SCSI�⥸�塼���initrd�ǥ����ɤ�������˥֡��Ȥ��뤳�Ȥ��Ǥ��ޤ��� ��������NFS root�ξ��ϡ�NIC�Υɥ饤�Ф򥫡��ͥ����Ū���Ȥ߹���Ǥ����ʤ��ȡ� �����ͥ���Ȥ߹��ޤ줿BOOTP��ư��ʤ��ΤǤ��� ��äȤ⡤�ͥåȥ���֡��Ȥ��б�����NIC�μ���ϸ����Ǥϸ¤��Ƥ���Τǡ� �ɥ饤�Ф���Ū���Ȥ߹���������ͥ���ۤ����Ȥ��Ƥ⡤ ���줬��������������»�ͤ뤳�ȤϤʤ��Ȥ�����ޤ���

����夬�ä�bzImage�ϡ�/tftpboot�ʲ��ˡ� ���Ȥ���vmlinuz-nfs�Ȥ���̾���ǥ��ԡ����Ƥ����ޤ���


��Linux�����ͥ�Υ֡��ȥƥ���

�����ǡ�Linux�����ͥ�Τߤǥǥ������쥹���饤����Ȥ�֡��Ȥ��Ƥߤޤ���

BpBatch�ˤϡ�Linux�Υ����ͥ��ľ�ܥ֡��Ȥ��뤿��� LinuxBoot�Ȥ������ޥ�ɤ����뤿�ᡤBpBatch �Υץ���ץȾ�� LinuxBoot ���ޥ�ɤ�Ȥäơ������ͥ�ե�����̾�䥪�ץ�������ꤷ�� Linux ��֡��Ȥ��뤳�Ȥ��Ǥ��ޤ���

��������LinuxBoot���ޥ�ɤ�Ȥ��ʳ��ˤ�Linux��֡��Ȥ�����ˡ������ޤ��Τǡ� �������ۤ��ˤ⤢��Linux�Υ֡�����ˡ�פ⻲�Ȥ��Ƥ��������� �ޤ���Linux�����ͥ� 2.4.x�Ǥϡ�BpBatch �� LinuxBoot���ޥ�ɤ����ޤ�ư�����Linux�����ͥ��ޤ����ư�ե��åԡ��ǥ��������᡼����Ȥ���ˡ (DOS �Υǥ������쥹�֡��� ��Ʊ�ͤ���ˡ) ��Ȥ�ɬ�פ������礬����ޤ���

LinuxBoot���ޥ�ɤ�LILO�Υͥåȥ���б��ǤΤ褦�ʤ�Τǡ� BpBatch�Υץ���ץȤ��Ф��ơ��ʲ��Τ褦�����Ϥ��ƻȤ��ޤ���

> linuxboot "vmlinuz-nfs" "root=/dev/nfs"

����
Vine 2.1.5(��°�����ͥ�2.2.18)�ʤɤǤϡ� ����˥����ͥ륪�ץ����� ip=dhcp ���������Ƥ��ʤ��� ��ưŪ�� IP ��������ʤ��褦�Ǥ������ξ�硢BpBatch�Υץ���ץȤǡ�
> linuxboot "vmlinuz-nfs" "root=/dev/nfs ip=dhcp"
�Ȥ��Ƥ�������������ǥǥ������쥹�֡��ȤǤ���Ϥ��Ǥ���

LinuxBoot���ޥ�ɤΰ�����""�ǰϤߤޤ��� ��1�����ϥ����ͥ�ե�����̾����2�����ϥ����ͥ륪�ץ���� �����Ƥ����Ǥϻ��Ѥ��Ƥ��ޤ��󤬡���3������initrd�Υե�����̾�Ȥʤ�ޤ���

�����Ǥ�root=/dev/nfs���ץ�������ꤷ�� nfsroot=���ץ����Ͼ�ά���Ƥ��ޤ��� ��������ȡ������ͥ��BOOTP�ʤޤ���DHCP�ˤ�NFS root�ΰ��֤�ưŪ�˼������ޤ��� ��������Ҥ� dhcpd.conf �ǡ���option root-path�ɤȤ��ƻ��ꤷ�Ƥ��ޤ���

�ʤ���/dev/nfs��NFS root����ꤹ�뤿���ñ�ʤ�ʸ����ǡ� �ºݤˤ���̾���ΥǥХ����ե�����򥢥���������櫓�ǤϤ���ޤ���

BOOTP��NFS root�������Ǥ��ʤ��褦�ʾ��ϡ� ��/tftpboot/���饤�����IP�ɤȤ����ǥ��쥯�ȥ꤬�ǥե���Ȥǻ��Ѥ���ޤ��� ����Ϥ��ޤ��������ʤ����ᡤBOOTP�Ǥμ�����̵���ʾ��� nfsroot=���ץ�����NFS root����ꤷ�������褤�Ǥ��礦��

���λ����ǤϤޤ�NFS�����Ф������ԤʤäƤ��ʤ��Τǡ� �����ͥ��NFS root��ޥ���ȤǤ����˻ߤޤ�Ϥ��Ǥ����������OK�Ǥ���


������NFS root�ǥƥ���

�ܳ�Ū��NFS root���Ѱդ������ˡ� �ʲ��Τ褦�ˡ���Ū��󥯤�sh��init�Ȥ����Ѥ��ơ� �֡��Ȥ��Ƥߤ뤳�Ȥ��Ǥ��ޤ���

������NFS root����

# cd /diskless/linux
# mkdir sbin dev
# cp -p /bin/ash.static sbin/init  �� ��Ū��󥯤�sh��init������ˤ���
# mknod dev/console c 4 0          �� /dev/console������ɬ��

NFS�����Ф�����ˤĤ��Ƥϡ� �������ǥ������쥹���饤����ȤΤ����NFS�����Ф������פ������������

����Ǻ��٥��饤����Ȥ�֡��Ȥ���ȡ����٤�NFS root�Υޥ���Ȥ��Ԥʤ�졤 init������Υ����뤬��ư����Ϥ��Ǥ��� �����˥�����Τߤǡ��ۤȤ�ɲ���Ǥ��ޤ��󤬡� ��echo *�פȤ��ȡ�dev��sbin���Τ���ɽ������뤳�Ȥ���ǧ�Ǥ��ޤ���


��NFS root�Υ��󥹥ȡ���

����Ǥ����֤�NFS root�򥤥󥹥ȡ��뤷�ޤ��礦��

���̤ˡ��ǥ������쥹���饤����Ȥ�ʣ��������䡤 ���饤����Ȥ�NFS�����Ф�OS��Ʊ�����Ǥϡ� /usr�ǥ��쥯�ȥ�ʲ��϶�ͭ���ޤ��� ������/etc, /var, /dev, /tmp�ʤɤ䡤 ���饤����Ȥ�/usr��ޥ���Ȥ������ˤ�ɬ�פ�/sbin�ǥ��쥯�ȥ�ˤĤ��Ƥ� �ƥۥ�����˸��̤˻����ޤ��� ��������/sbin�ˤĤ��Ƥϡ�NFS�����о�Ǥϳƥե������ϡ��ɥ�󥯤��ơ� �ե�������Τ�ͭ���ޤ��� ���ιͤ��ϡ� /bin��/lib�������줾��/usr/bin��/usr/lib�ؤΥ���ܥ�å���󥯤ˤʤäƤ��� Solaris�ʤɤ�OS�Ǥ�Ű�줵��Ƥ��ޤ��� ����Linux�ˤ����Ƥϡ� �ǥ������쥹���饤�����¦��/usr�����ӥޥ���Ȥ��ƶ�ͭ���뤳�ȤˤĤ��ơ� ���ޤ��θ����Ƥ��ʤ��ե������뤿�ᡤ �����Ǥ�/usr�ζ�ͭ�Ϲͤ����� Linux�����Ф˥��󥹥ȡ��뤵��Ƥ���Linux�Υե����륷���ƥ�� ñ��ˤޤ뤴��/diskless/linux�ʲ��˥��ԡ����뤳�Ȥˤ��ޤ���

�ե�����Υ��ԡ��κݤˤϡ� /diskless/linux���Ȥ⥳�ԡ����˴ޤޤ�Ƥ��ޤ���̵�¥롼�פ˴٤뤿�ᡤ Ŭ�����ޥ�ɤ��פ��Ʋ������� /proc��/tmp�⡤���ԡ������оݤ��鳰���ޤ��� /var/log�ʲ��Υ����⥳�ԡ�����Ƥ��ޤ��ޤ��������ȤǾä��Ф褤�Ǥ��礦��

��Linux���饤�������NFS root�Υ��󥹥ȡ���

# cd /diskless/linux
# tar cvf - -l --exclude /proc --exclude /tmp \  
    --exclude /diskless / | tar xvpf -
# mkdir proc tmp
# chmod 1777 tmp

/diskless/linux�ʲ��˥��ԡ����줿�ե�����ˤϡ� ��ȤΥ�������ǥ������ѤθŤ����Ҥ��Ĥä��ޤޤˤʤäƤ��ޤ��� ������󤳤ΤޤޤǤϥ����ƥबΩ���夬��ޤ���Τǡ� �ʲ��ν����������ɬ�פǤ���

�ޤ���/etc/fstab��ʲ��Τ褦�˽������ޤ��� �����Ǥ�swap�ϤȤꤢ�����Ȥ�ʤ����Ȥˤ��ޤ���

��/diskless/linux/etc/fstab���

/dev/hda1   /       ext2    defaults  1 1  
/dev/hda2   swap    swap    defaults  0 0
            ��

server:/diskless/linux / nfs defaults 0 0  

���ˡ�/etc/sysconfig/network-scripts�ʲ��ˤ��롤 ifcfg-eth0������ץȤ������ޤ��� eth0�ϥ����ͥ뼫�Ȥˤ�äơ��֡��Ȼ��ˤ��Ǥ�Ω���夲���Ƥ��ޤ���

����ǥ��饤����Ȥ�֡��Ȥ��ƤߤƲ������� rc������ץȤκ٤�����ʬ�Ǥϥ��顼���Ф뤫���Τ�ޤ��󤬡� �Ȥꤢ��������ǵ�ư����Ϥ��Ǥ��� ���Τ��ȡ��Ƽ�Ķ������Ԥʤ��С��ǥ������쥹�� Linux �ޥ���Ȥ��ƻ��ѤǤ��ޤ���


To��PXE��Ȥä�PC��ǥ������쥹�ˤ��褦��[index]


���Υڡ����ϡ�����ɾ���� ���ѥ���å�FreeBSD�פ���� SoftwareDesign 2000ǯ10��桢11����PXE�ˤ��ͥåȥ���֡�������ѡ٤θ��Ƥ򸵤ˡ�Web �Ѥ˺ƹ���������ΤǤ���
To ������ SunOS 4.1.4 [Home]
yamamori