PXE��Ȥä�PC��ǥ������쥹�ˤ��褦 |
YAMAMORI Takenori ��yamamori |
���٤�Linux��ǥ������쥹���饤����Ȥˤ��Ƥߤޤ��礦�� ���Τ���ˤϡ�Linux�����ͥ뤬NFS root���б����Ƥ���ɬ�פ�����ޤ��� ���������Ƽ�ǥ����ȥ�ӥ塼��������°��ɸ�५���ͥ�Ǥϡ� NFS root�ε�ǽ���Ȥ߹��ޤ줺�˥����ͥ뤬���ۤ���Ƥ��뤳�Ȥ�¿�����ᡤ NFS root��Ϣ�ε�ǽ���Ȥ߹���ǥ����ͥ��ƹ��ۤ���ɬ�פ�����ޤ��� �ʤ��������Ǥ����� Vine 2.0 ��Ȥä�ư����ǧ���ޤ����������θ塤Vine 2.1.5 �ۤ��ΥС������Ǥ�ư���ǧ���Ƥ��ޤ���
�����ͥ�κƹ��ۤΥݥ���Ȥϡ�DHCP(�ޤ���BOOTP)��ǽ���Ȥ߹��ߡ�NFS root ��ǽ���Ȥ߹��ߡ�NIC �ΥǥХ����ɥ饤�Ф���Ū���3���Ǥ���
��make menuconfig�ɤ��Ѥ��������ͥ�ƹ��ۤζ���Ū�ʼ����ޤ���
�ޤ��ǽ�ˡ���Networking options�ɤ���� ��IP: kernel level autoconfiguration�ɤ�����[*]���֤ˤ��ޤ��� ����ȡ�BOOTP support�ɤΥ��ץ������뤿�ᡤ�������[*]�ˤ��ޤ���
�������ͥ��BOOTP(�ޤ���DHCP)���ݡ��Ȥ�ͭ���ˤ���
���ˡ� ��Filesystems�ɢ���Network File Systems�ɤȲ��̤�ʤᡤ ��NFS filesystem support�ɤ����ǥե���Ȥ�<M>�ˤʤäƤ���Τ� <*>���ѹ����ޤ��� ����ȡ���Root file system on NFS�ɤΥ��ץ������뤿�ᡤ �����[*]�ˤ��ޤ���
��NFS root��ޥ���ȤǤ���褦�ˤ���
����ˡ����Ѥ���NIC���б������⥸�塼�����Ū���Ȥ߹���ɬ�פ�����ޤ��� �����PRO/100+����Ѥ��Ƥ���Τǡ� ��Network device support�ɢ� ��Ethernet (10 or 100Mbit)�� �Ȳ��̤�ʤᡤ������� ��EtherExpressPro/100 support�ɤ� <M>����<*>���ѹ����ޤ���
��eepro100�ɥ饤�Ф���Ū�Ȥ߹���
���ΤȤ�����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�����ͥ�Τߤǥǥ������쥹���饤����Ȥ�֡��Ȥ��Ƥߤޤ���
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"
> 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���Ѱդ������ˡ� �ʲ��Τ褦�ˡ���Ū���sh��init�Ȥ����Ѥ��ơ� �֡��Ȥ��Ƥߤ뤳�Ȥ��Ǥ��ޤ���
# 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�����Ф�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�ʲ��Υ����⥳�ԡ�����Ƥ��ޤ��ޤ��������ȤǾä��Ф褤�Ǥ��礦��
# 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�ϤȤꤢ�����Ȥ�ʤ����Ȥˤ��ޤ���
/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 �ޥ���Ȥ��ƻ��ѤǤ��ޤ���