
 Linux Remote-Boot mini-HOWTO: ʹ Red-Hat Linux, DOS, Windows 3.1  Windows
                             95 趨Զ˿վ
                                       
: Marc Vuilleumier St&uuml;ckelberg, Sandro Viale and David Clerc
: Ԫ [1]yytseng@ms16.hinet.net

   v2.5.2,  1997
     _________________________________________________________________
   
   ļ˵ʹһȺPCӵ൱ȶ Server-based ܹ , ˷ʹÿ
   ̨PCڿʱѡʹúҵϵͳ. ּܹľҪ TCP/IP bootprom ,
   ʹڿʱѡͬĿ. ˷ļ°汾,ļ
   ᵽɹص弰صѶ,ַҵ
   [2]http://cuiwww.unige.ch/info/pc/remote-boot/howto.html.
   Linuxdoc-SGML,DVI  postscriptְ汾Ŀ¼.
     _________________________________________________________________
   
1. Щ...

     * 1.1 ... 1.x  ?
     * 1.2 ... 2.4 ?
       
2. 

     * 2.1 ·
     * 2.2 ι
     * 2.3 طҵ
       
3. 趨

     * 3.1 趨
     * 3.2 趨 Linux
     * 3.3 趨 DOS 6  Windows 3.1
     * 3.4 趨 Windows 95
       
4. TCP/IP Bootprom ع߳ʽ

     * 4.1 MENUEDIT
     * 4.2 BPHDBOOT
     * 4.3 BPCLEAN
     * 4.4 MRZIP, MRUNZIP and BPUNZIP
     * 4.5 NOBREAK
       
5. 

     * 5.1 Bootproms  Ӳ
     * 5.2 ʹһ Bootprom ?
     _________________________________________________________________
   
1. Щ...

1.1 ... 1.x  ?

   һѱ䶯:
     * Linux server-based ļܹļȫ. Ŀǰ RedHat
       Linux 4.1Ϊ , kernel ³2.0.30 .  Linux ϵͳ趨ά
       .
     * DOS  Windows 趨Ҳƹ,  "hard-disk based" . 
       ʹüܹӼ, ٶȱ, ·ĸ,Windows
       NT workstation  server-based setup (Ȼδڱ̸).
     * Ŀǰһ̨ DHCP server, Ѱ DHCP/BOOTP extensions (RFC 2132).
     * ܹҲ Samba ѵ SMB server , ȡ Novell server. 
       ʵ, Ҫǵ Novell server...
       
1.2 ... 2.4 ?

   µ  Ѽ bpunzip ߳ʽ. ڿ  VESA-
   ͵ӿ¹. Ŀ ESC; өĻƵ; İѲ
   ŵ TFTP Ĵ. MRZIP,һ ֻ, ڽѹ ŵѹӰ ʱᵼ
   "Bad compressed data" , ѷֲ.  BPUNZIP зֵ
   ֻᵼԵĳҲ .
   
    . ᵽ ( [3]Shared LAN Cache) ļ (from J.
   Carlstedt, of [4]The Cathedral School of Uppsala, Sweden).
   
    UNZIPREG ԭʼʽλַ. ЩѶWindows 95 OSR2
   ʹõ.
   
   bootptag LinuxĹ߳ʽĲ DHCP ȡ BOOTP. ڿԸ Solaris 2.6
   DHCP server һʹ.
   
2. 

   ļܹǴ1996 ļʼ CUI, University of Genevaչ.
   Ѷϵŷ( Unix  Novell), һЩ˵, 
   ;Ϊ:
     * ѧʹ
     * о븨ѧ
       
   ǷչּܹĿ:
     * κһ̨Զִ Linux, DOS, Windows 3.1 or Windows 95. ÿ
       ʱѡҪҵϵͳ.
     * е, ҵϵͳ, Էŷ, 춰װ.
     * ͻ˵ԿԲŷд״̬(Ϊ˰ȫ),home Ŀ
       ¼.
     * ܼٿͻ˵趨. ͻ˿Զŷȡ IP ̬趨, 
       ЩѶһС, ɹҵϵͳʹ.
     * 󲿷ݵĵԶӵӲ, ͻ˿Կŵ·
       ʹߵݴ浵.
     * еʹ߶ עʹõ.
     * עѶеҵϵͳͬʹ߿Դȡ˵Ŀ¼,ÿ
       ҵϵͳһ.
     * ѧʹõĵÿʱһ. Ҳհװ.
     * ÿ̨ԿԷ.
       
   Щʹѡ [5]K&ouml;ppen EDV GmbH  [6]TCP/IP Bootprom 
   Ϊ Bootprom ҵϵͳ޹ض൱Ȥ; ֻģһ̨
   , ҵ Linux ʱ͸ DOS  Windows 95 һ. ,ŵ
    Ӱ,Ƶĳʽȡ, ʹҵϵͳǰ,
   ʼ趨.
   
2.1 ·

   Geneva ѧӵ B , ָ·. CUI ʹĸ·, 
   ֮һѧʹ.
   
   ԭ,ǵĸ˵ʹ·ͨѶЭ: IPX  IP. IPX һ,
   һ̨ Novell Netware 3 ŷ DOS  Windows. IP һ, 
   һ̨ SUN ŷ NFS  Linux 弰˵ķָ.
   
   µļܹ, Ѳʹ IPX ͨѶЭ. һ̨ Unix ŷ (
    Linux  SUN), Linux ͻ ͸ NFS  DOSWindows SMB
   (NetBIOS) over TCP/IP 弰ʹߵĵ.
   
2.2 ι

    1. ͻ˸˵Կ,  TCP/IP Bootprom ÿȨ֮ǰҲ
       .
    2. Bootprom ͳ BOOTP/DHCP Ҫȡ IP ̬.
    3. ŷյ˵ͳҪ, ͻͻ BOOTP/DHCP Ӧ,ݰ
       ͻ˵ IP λַ, ԤͨѶբ, Ӱ. , ŷ
       Ҫ.
    4. Bootprom  TFTP ͨѶЭŷؿӰ, ͬʱӰ
       һ̨ BIOS 㼶.
    5. ˵͸Ӱ , ֻǵĿʽ(
       ҵϵͳ).
    6. ̨ѧĸ˵, ʽʼ TFTP ͨѶЭһ
       С ֵ̨ԵӲ滮״̬. ͸С, Ӳ
       ķָ ¹滮 DOS ʹõķָҲٸʽ. е
       , Щڿ.
    7. ʽʹѡҵϵͳ.
    8. ʹߵѡ, µĿӰ񵵽ŷ͸ TFTP ͨѶЭ.
    9. ѡʹ Linux, Ӱ񵵽 kernel loader ѹ
       kernel,  kernel ֧Ԯ NFS root caching  ϵͳ:
         1. һ, IP ̬͸ BOOTP/DHCP ͨѶЭ Novell ŷ
            .
         2.  kernel ͸ NFS һֻܶ root filesystem.
         3. һд빦ܵС ramdisk .
         4. Ӳڷ swap ָ, Ϊ׼.
         5. Ӳڷ linux ָ, Ϊ caching NFS 
            .
         6. IP ̬һ, еķ, Ҳ xdm.
         7. Ҫʹߵ. ̨վ.
   10. ѡʹ DOS  Windows, Ӱ񵵽һԴ FAT16 ָ
       ѹӰĳʽ. ͸ TFTP  Ӱ, ҴӲԹδ
       ʹ, κʹùķָ. Ͻ˵, ʽ
       ״ִ:
         1. ʽһ鵵 (512 bytes)ȷѡҵϵͳĿӰ
            
         2. Ӱ񵵲ڴŵ, 鵵Ǻ (
            Ӱѱһ İ汾װŷ), Ӱ
            񵵽͸ TFTP ͨѶЭ.
         3. ҵϵͳӰ񵵽ѹһ FAT16ķָ, ٶȴԼ
            ÿһ mega bytes.
         4. ʽѡҵϵͳĿ, ѴڱӲ
            .
        DOS  Windows 3.1 , ʹѵ Microsoft LanManager
       for DOS (͸·ҵϽӽ mirror վ; 
       disk1 to disk4)  SMB ͻ. Microsoft LanManager ɽ DHCP 
       ֧Ԯ̬趨. ڵ, ʹ߻ῴ DOS, ҿԴ win 
       Windows 3.1 . ע, DOS  Windows 3.1 ͬװڿͻһ
       .  Windows 95 , Ҳʹ Microsoft SMB ͻ ( Client
       for the Microsoft Network), Ҳɽ DHCP ֧Ԯ̬趨. Ϊ
       ·ʹ [7]Shared LAN Cache, һǿ
       network-to-disk cache ʽ.
       
   ѧʹõĵԿԺֱܱӹصԴκ, ΪӲ
   ÿο½.
   
   춱Ƚ "ȫ"  (縨ѧĵ), ʱʹķ
   , ʱֱӲڵĿӰ񵵶Ӳ. ʹ
   Ӳ. ֿ̬ĸ¿Ӱ ͬ°
   װһ.
   
2.3 طҵ

   ̬Ѿɹֳϵط. Ѿʼ׭дһЩɸ
   ʾ How-To.  Ҳڱļδûӭһ
   e-mail  Marc.VuilleumierStuckelberg@cui.unige.ch. ؽ
   ̬ , ϸһļ !
     * [8]http://www.katedral.se/system/elevsyst, by Johan Carlstedt of
       The Cathedral School of Uppsala, Sweden.
     * [9]http://vitoria.upf.tche.br/~fred/, in portuguese, by Frederico
       Goldschmidt of the Passo Fundo University, Brasil.
       
3. 趨

   , λʹֱ̨:
     * ŷ, һ̨ Unix .
     * ͻ, һ̨Ѿ TCP/IP Bootprom ĸ˵, ӲڲҪҪ
       .
       
   Ҫ̬趨ûõ TCP/IP Bootprom, Ե
   [10]http://www.incom.de ز԰ĴƬ.  ƬʹĵԾͺ
   ǲ TCP/IP Bootprom һ.If you want to test the configuration but
   you do not yet have a
   
   ѧʹõĵ, 趨 Bootprom ·, ʹӲ
   . ѧõ, 趨 Bootprom ·, ҲӲ
   ; Ŀͻ趨 Bootprom.
   
   ŷ, 趨 DHCP daemon (ʹ Internet Software Consortium 
   ʽ, 970329 ). Ҳ TFTP daemon. ļʹ
    TCP/IP Bootprom ߴƬڵļǿ TFTP daemon . ϲʹñ
   ׼  TFTP daemon, ƵпӰ񵵵ĸ P, ֧ Bootprom ʹ
   ׼ TFTP port (뿴 TCP/IP Bootprom ļ).
   
    BOOTP/DHCP ͨѶЭʹ. ͻŷ˲
   ͬһ,  բ. , ȼ̨ͬ
   .
   
   , ҵϵͳҪ,:
     * 趨ʼӲ̬
     * 趨ҵϵͳѡ
     * Կ
       
   Ȼ, ÿһҵϵͳ, ǽв:
     * Ŀͻ
     * ̬ŵŷ
     * Զ˿ͻ
     * ɱ
       
   Щ, ׷ӵĿͻֻҪ Bootprom ټӼе DHCP 趨
   .
   
3.1 趨

   ŷ˵ /tftpboot Ŀ¼, еĿӰ (ЩǶλʽ)
     * [11]bpclean, Ӳ
     * bpmenu, TCP/IP Bootprom ѡʽ ( Bootprom ߴƬ)
     * [12]bpunzip, ǵӲԭ
     * [13]bphdboot, ͿӲӰ
       
  Ӳĳʼ
  
   ͬĿ¼, ǽᵽ (ֱÿָ)) bpclean Ϊ
   XXXclean (Ϊ԰סĿͻ˻) 
   ҲһΪ XXXclean.tab ͻӲָ, Ҫ
   ĿӰ. : Ƕ 2 Gb Ӳʹķ
       ______________________________________________________________
     
#  512 bytes ˵
# ʮ׼һ $ Ǯַ

# Part |       |  Part
# type | Boot? |  Size
   6      Y       +500 Mb
  $82     N       +31 Mb
  $83     N       -50 Mb
   0

# ӵӰ
/tftpboot/XXXmenu
       ______________________________________________________________
     
   ĵʽ. ֻҪ֪Щ
     * ָ̬ 6 ָ BIGDOS, ie. . DOS Fat-16  32Mb  500Mb
     * ָ̬ hex 82  Linux Swap
     * ָ̬ hex 83  Linux Ext2fs
     * СΪֵ,ʾǵĵָҪռ 50 Mb
     * ָ̬ 0 ʾ յ (δʹõ) ָ.
       
   , bpclean ڲָ,дҪ¼(master
   boot record), ȻҲָ.
   
  ҵϵͳѡ
  
   ͬ,  (ֱӿ) bpmenu Ϊ XXXmenu (Ϊ
   ԰ס ǿͻ˻ѡ) ҲһΪ XXXmenu.m
   ͻĿ ѡ. ȿֶ͸дĿ
   ѡȫӪĻ༭ [14]menuedit.exe. , :
       ______________________________________________________________
     
.CLS 23
.ATT 23
.POS 23 4
.WRT Simple Boot Menu                                         \
.POS 23 5
.WRT ----------------                                         \
.POS 23 8
.WRT 1. Boot from local hard disk                             \
.POS 23 10
.WRT 2. Boot DOS and Windows 3                                \
.POS 23 12
.WRT 3. Boot Windows 95                                       \
.POS 23 14
.WRT 4. Boot RedHat Linux                                     \
.POS 23 17
.WRT Your choice :                                            \
.POS 37 17
.KEY 1 :bphdboot
.KEY 2 :linux.PX
.KEY 3 :win31.P
.KEY 4 :win95.P
       ______________________________________________________________
     
  Կ
  
    DHCP 趨мĿͻ. 趨ӰΪ
   /tftpboot/XXXclean. Ҫ DHCP ŷʹıЧ.
   
   Ŀͻ. ѶٵĿ bpclean, ͳѶϢ, 
   ķָĴС, ȻῴѡӪĻ. 
   üϵ pause  ͣԱȡոյѶϢ, ܻᵼ TFTP
   ʱ.
   
   ° 1, յһѶϢ"ָһЧĿ
   " (the boot partition contains not valid boot sector). δʽ
   Ŀָ.  ΪڻδκοӰ
   İʧЧ...
   
   Ҫʼװҵϵͳ. Ҫһ. κ
   һҵ ϵͳ, ҪȴʼĶ. ڿ TCP/IP
   Bootprom ı־ ̰ space .
   
   ЩҵϵͳҪ¼ (master boot record). ر Linux
   kernel loader (lilo)  .ֱ䶯 bpcleanʽ޷
   , øıͻ˵ DHCP 趨 ʹӰֱ
   /tftpboot/XXXmenu (Ķ). ҪʹĸıЧ,
    DHCP ŷ.
   
3.2 趨 Linux

   Ŀͻ˼ [15]RedHat Linux 4.1 ֧Ԯ·, kernel ԭʼʽ뼰
   Ҫ׼. ׼δҪĵ ( /mnt/tmp Ƚ), 趨
    X server, ȵ.  /usr/src/linux-2.0.27 Ŀ¼,  kernel
   2.0.27 ԭʼʽ.
   
   ҪһЩ, ʹ 2.0.30, ֧Ԯ TCP/IP Bootprom
   ȡ . ȡһ  "δȷ" NFS Ӳ
   Ľṹ, Խ· . TCP/IP Bootprom ֧ԮѾɡMarc
   Vuilleumier Stuckelberg ,  David Clerc תƵ kernel 2.0 . 
   ȡѾ Unifix GmbH ,   Unifix Linux 2.0 һ.
   TCP/IP Bootprom ȡ֧ԮѾǵѵɢ.
   
   ֵע Linux  NFS-Root ֧Ԯֻܼܹ BOOTP ͨѶЭ, 
   DHCP ͨѶЭ .  DHCP ֻ BOOTP , Linux Ҳ DHCP ŷ
   ¹ (û  DHCP ŷܾ BOOTPҪ).
   
   Kernel
  
   ,  /usr/src Ŀ¼, ʹָ
   
   patch -p0 < :
     * [16]patch-2.0.28: һʽ kernel , һҪ
       
     * [17]patch-config-sound: һЧ趨,  Unifix
       Linux 2.0
     * [18]patch-PCSP: һϴʹ PC ģЧ, 
       Unifix Linux 2.0
     * [19]patch-bootprom: һСر kernel image, ʹ
        TCP/IP Bootprom 
     * [20]patch-filecache: һСʹ kernel һЩر, 
       Unifix filecache.  Unifix Linux 2.0
     * [21]patch-penguinlogo: һСʹߵȵ Linux ϵͳ
       ȫ
     * [22]patch-2.0.29: һСʽ kernel µ, Ҫ
        kernel ü
     * [23]patch-2.0.30: һʽ kernel µ, . һ, 
       Ҫ ( TCP/IP ͨѶ Э). Ļ 
       û alpha ԭʼʽ (пܷ), αԹ
       뵵ڵѶϢ. Ҫ, ֻҪشҪЩȱٵĵ,ᷢ
       κ
       
   ִ make mrproper  make xconfig,  kernel. ס⽫ǿͻ˵
    Linux ʱ, Ψһյ,  Ҫҵϵͳ
   Ķ. ʹģ鷽ʽ, ǲ·ģ. Ϊ·һҪ
    kernel . ֮,  kernel Ҫ Щ
   
     * ֧Ԯ·
     *  BOOTP ͨѶЭ,֧Ԯ NFS-Root
     * ֧Ԯ filecache
     * ֧Ԯͻ˵ԵӲģ
       
   ʹǵ [24].config . Ҫû Bootprom ״
   ², ȷ Ѿ kernel ڰӲ֧Ԯ.
   
   ѡ, ճ make clean; make dep  make zImage,
   make modules  make modules_install. Ứһʱ... ׼ȥ
    kernel,  lilo. װ kernel (ο lilo ļ),
   ĵ (Ӳ). κδ, ǲһ. ִ
   depmod -a  modules dependencies. ȫʱ, ִ make bpImage 
   һ bootimage  TCP/IP Bootprom ʹ.
   
   Root ϵͳƵ NFS
  
   ŷҪ㹻Ŀռ Linux ϵͳ (
   Megabytes). һ Ŀ¼ NFS , ͽ rootfs, нһ
   Ŀ¼ͽ runtime. ʹ /export/linux/rootfs/runtime. 
   ֻ Linux ͻ˿ɶд,  root ĴȡȨ ( annon=0). ,
   ǵ NFS  Solaris ִ, ָ:
   
   share -F nfs -o rw=pc7971,anon=0 /export/linux/rootfs/runtime.
   
    Linux ͻ˹ָGNU tar  Linux ϵͳ
   ȥ (Ԥ RedHat Linux). Ҫǵʹ GNU tar ָ,Ϊе
   tar ָ޷ȷش block device  special nodes . Ȼ༭
   /export/linux/rootfs/runtime/etc/fstab Ŀ¼ 趨,ʹĿ¼
    nfs mount ȡԼӲ. 㻹Ҫȥ ( Ҫ)
   /export/linux/rootfs/runtime/etc/sysconfig/network-scripts/ifcfg-eth0
   Ϊ·װý NFS-root ʼܱʼ.
   
    /etc/lilo.conf һ linux, : linux-nfs Ϊ, 
   µĲ:
   
   append="root=/dev/nfs nfsroot=/export/linux/rootfs/runtime nfsaddrs=
   -ip:ŷ-ip:բ-ip:· :"
   
   (-ip  Linux ͻ˵ IP λַ,ʮλеķʾ, ŷ
   -ip  NFS ŷ IP λַ, բ-ip  Linux ͻ˵Ԥբ
   , ·  Linux ͻ˵ ·   Linux ͻ˵
   ). ִһ lilo , ĵ (ȻӲ), ѡ
   linux-nfs 趨. ĵԽǰһ, ʹһ. 
   ĳЩ, ֻҪ¿ԭ local linux 趨
    . 󲿷ݵ״,  NFS root 趨. κζ
   ˽, һ /usr/src/linux/Documentation Щ... Կ
   [25]NFS-Root-Mini-Howto.
   
   һ,ֻ append="root=/dev/nfs" ȷ Linux kernel 
   ͸ DHCP/BOOTPҪ趨 IP .  Ҫ, 
    DHCP 趨м Щѡ (ȻҪ趨Լ·̬), 
   ĻӲ弰 IP λַ:
       ______________________________________________________________
     
option subnet-mask 255.255.252.0;
option routers 129.194.68.1;
option root-path "/export/linux/rootfs";
       ______________________________________________________________
     
    Linux kernel Ҫټָ,  option
   option-177 .
   
   һҪʹǵϵͳ Ψ NFS ϵͳ¿Թ.
   
  Ψ NFS Root ϵͳ
  
   ȻҪǵ root ϵͳڴ󲿷ݵ Linux ͻΨķʽ,
   ǾҪʹ ϵͳЩ΢Ĳͬ, ǽҪдȨ޵ĵط ramdisk
    filecache ȡ. ǰ ϵͳ /export/linux/rootfs Ŀ¼
   , ׼İ汾ֱӷŵ /runtime/ .   NFS ŷ
   /export/linux/rootfsĿ¼,µĿ¼:
   
     * bin -> cache/bin
     * dev -> ramdisk/dev
     * etc -> ramdisk/etc
     * lib -> cache/lib
     * root -> ramdisk/root
     * sbin -> cache/sbin
     * tmp -> ramdisk/tmp
     * usr -> cache/usr
     * var -> ramdisk/var
     * cache/
          + bin -> /runtime/bin
          + lib -> /runtime/lib
          + sbin -> /runtime/sbin
          + usr -> /runtime/usr
     * mnt/
          + cdrom/
          + floppy/
          + tmp/
     * proc/
     * ramdisk/
          + dev -> /runtime/dev
          + etc -> /runtime/etc
          + root -> /runtime/root
          + tmp -> /runtime/tmp
          + var -> /runtime/var
       
   ,  root filesystem, ٲݼָ
    /ramdisk,  Щָ cache Ŀ¼. Ψ NFS filesystem 
   , ǽһѳʼ ramdisk  /ramdisk . ͬ ԼӲ
   ķָ /cache  NFS ȡʹ. Ե ˵,ȡԭ
   ǵthe principle of the filecache is that whenever a symbolic link
   from the cache subdirectory is followed, it is replaced by its target.
   ĿԼһĿ¼, ÿһ Ŀ¼תһᲢᵽ
   ϵͳԭʼλ. ע⵵ȡʹþ ԷǱ, ʹ
   NFS ŷ. ϲ,   NFS ŷ,
   һ /runtime  /export/linux/rootfs/runtime .
   
   ΨĿͻ˼һЩ趨ĶǱ, ˲ſԹ ramdisk, 
   ȡ ӲԱ趨. Щ򵵺һ̬
   , ԰Ƶ NFS ŷ:
   
     * [26]runtime/etc/rc.d/rc.ramdisk, Կ趨 ramdisk:
       ______________________________________________________________
     
#!/bin/sh
#
# 趨һ ramdisk Ϊ root ͸ NFS Ψʽ
#
modprobe rd
gzip -c -d /runtime/lib/ramdisk.gz | dd of=/dev/ram bs=1k > /dev/null 2>&1
mount -n -t ext2 /dev/ram /ramdisk
       ______________________________________________________________
     
     * [27]runtime/etc/rc.d/rc.sysdetect, еĻԶ趨,
       ⼰ Ӳķָ ȡʹ. Ϊ˿ռ
       ǲڴ˷ļӡİ汾а˵, ڳ İ汾ҵ
       ;
     * [28]runtime/etc/rc.d/init.d/filecache.init ϵͳ:
       ______________________________________________________________
     
#!/bin/sh
#
# filecache:    ȡ:    ȡ ( NFS root )
#
# Դܺ.
. /etc/rc.d/init.d/functions

# κйܺ.
case "$1" in
  start)
        if [ -e /cache -a -r /etc/filecache.conf ]; then
                echo -n "Starting NFS filecache: "
                #  var  tmp ƵԵӲ
                rm -rf /cache/var /cache/tmp
                (cd /ramdisk; tar cf - var tmp) | (cd /cache; tar xf -)
                (cd /ramdisk; rm -rf var tmp;ln -s /cache/var;ln -s /cache/tmp
)
                chmod 777 /cache/tmp
                # ȡ
                daemon filecache -d on
                echo ""
                touch /var/lock/subsys/filecache
        fi
        ;;
  stop)
        filecache off
        rm -f /var/lock/subsys/filecache
        ;;
  *)
        echo "*** Usage: filecache.init {start|stop}"
        exit 1
esac

exit 0
       ______________________________________________________________
     
     * [29]runtime/etc/filecache.conf, ȡ趨
       ______________________________________________________________
     
Max 100 MB 50 % #
Cache /runtime /cache
       ______________________________________________________________
     
   ǰӦ÷ǰӦ÷ [30]runtime/etc/rc.d/rc.sysinit,
   ǰλ, ʾ:
       ______________________________________________________________
     
# 趨  ramdisk  ( root NFS ΨĻ)
if [ -e /ramdisk -a -r /etc/rc.d/rc.ramdisk ]; then
        /etc/rc.d/rc.ramdisk
fi

# 趨ӲԶĲ (ÿ root NFSʹ)
if [ -r /etc/rc.d/rc.sysdetect ]; then
        /etc/rc.d/rc.sysdetect
fi
       ______________________________________________________________
     
   Ӧ be bound as usual to the System V init directories: we
   use links named S35filecache in the rc3.d and rc5.d directories, and
   K80filecache in the rc0.d, rc1.d, rc2.d and rc6.d directories.
   
   һ rc.sysdetect , ʹӲ豸. رҪע
   , һû ʹͬʾөĻ (ܷܿ :-), 
    /proc/pci ĻӦ޸. ÿ̨ ʹõĴλ
   ,  rc.sysdetect ֮һΪ, Զ趨 ( printcap),
   aΪÿ ̨, Ҫŷ dhcpd.conf , رı
   option-132 趨ÿ̨ʹõλ . װ֮ǰ, ҪȽ
   ļ [31]runtime/etc/fstab.ref  [32]runtime/etc/hosts.ref
   , Щ rc.sysdetect ʱ͸趨, Ϊ˶̬
    X servver, ʹ RedHat ׼, һȱ: 
   /usr/X11R6/bin  /usr/X11R6/lib/X11 Ŀ¼, һЩص 趨
   Ŀ¼Ӧøĳɾ.  X server °װҲҪ編.
   
    [33]filecache װ runtime/bin Ŀ¼, ʹ˵ [34]man
   page װ runtime/usr/man/man8 Ŀ¼.  [35]bootptag 
   [36]dhcptag װ  runtime/usr/local/bin Ŀ¼,  [37]bootptag.c
   ( [38]dhcptag.c)  runtime/usr/local/src Ŀ¼: һ
   BOOTP/DHCP Ҫ,  shell ı׼ʽӦ BOOTP/DHCP ݵ
   Сʽ, µġʾ:
       ______________________________________________________________
     
bootp_your_ip='129.194.71.32'
bootp_server_ip='129.194.77.31'
bootp_filename='XXXclean'
bootp_subnet_mask='255.255.252.0'
bootp_routers='129.194.68.1'
bootp_domain_name_servers='129.194.69.200 129.194.8.7 129.194.4.32'
bootp_host_name='pc7132'
bootp_domain_name='unige.ch'
bootp_root_path='/export/linux/rootfs'
bootp_broadcast_address='129.194.71.255'
bootp_nis_domain='cuisunnet.unige.ch'
bootp_nis_servers='129.194.69.200'
bootp_option_132='dufour'
       ______________________________________________________________
     
   ǵ RFC 2132 . ʹ dhcptag, õһЩ dhcp_
   ͷı, Щ DHCP-ѡ; Ϊ˹˼, ѶȻ
    bootp_ Ϊ. ʹʽԶ  rc.sysdetect. , 
   runtime/lib װ [39]makeramdisk script . ǽԶ ramdisk Ӱ
   . Щ ڳļİ汾.
   
   ɿͻ read-write NFS  (ȻӲ). ͻ
   ˵ĸ̬,  ʵĵ  /etc/fstab, /etc/hosts,
   /etc/sysconfig/network Ƿ趨ȷ. Ĳ,  ˹
   ģʽһ, ҳ rc.sysdetect Ĵ.
   
   ȵ,  /lib Ŀ¼ִ ./makeramdisk. Ứ, 
   һ ramdisk Ӱ񵵸Ψ  NFS ͻ. Ѳ ramdisk
   image  /lib/ramdisk.gz, ̬!
   
   Bootprom 
  
   δ, 밲װ TCP/IP Bootprom-ݵ kernel Ӱ (
   ҵ /usr/src/linux/arch/i386/boot/bpImage) ŷϵ
   /tftpboot/linux.PX . rc.sysdetect ʼ Linux swap
    Linux Ϸָ. ΪҪ, ʱ༭ŷ XXXclean.tab 
   ıָ ̬ hex 82 Ϊ hex 28,  hex 83 Ϊ hex 38. һ
   δ֪ķָ̬, ǰװܰԤָ ʶ.  DHCP
   趨, ѿ趨Ϊ XXXclean , ʹ ָ. 
   趨Ҫ DHCP daemon.
   
   , unexport ɶд runtime Ŀ¼,  export Ψ
   /export/linux/rootfs Ŀ¼. ͻ, һʹ ÿʹ Linux ѡ
   ѡ. ϵͳ remote-boot Linux.
   
  ϵͳά
  
   ,װһЩȫ, 밴в:
     * Unexport rootfs Ŀ¼
     * Export runtime Ŀ¼Ϊɶдÿͻ
     * 趨ͻ˵ nfsroot Ŀ¼Ϊ runtime ( /etc/bootptab 趨)
     *  Linux ͻ, װ밲װĶ. Ҫʹ rpm, 
       úܺ (ֻҪСĵ װκ׼ʱ,ҪעһЩ
       ЩҪ޸).
     * » export
       
   ָ,  local װ״̬, ܸ server-based 趨
   .
   
3.3 趨 DOS 6  Windows 3.1

   Ŀͻ˵, ʹϲ dos  (ǵÿʱ, հ׼ȡ
   BootPROM ). ʽ Ӳе dos ָ /S , ʹ
   ҵϵͳ. һΪ DOS Ŀ¼,  DOS  ȥ. װϲ·
   ͻ˳ʽ ( Microsoft LanManager), Windows 3.1, ȵ. ʹ DHCP ͨ
   ѶЭ趨 IP ̬.
   
   ָԭ BootPROM ʹõļռ ( DOS Щ
   Ҫõ) һе config.sys ڵĵһ:
       ______________________________________________________________
     
device=\util\bputil.sys -r
       ______________________________________________________________
     
   (bputil һ TCP/IP BootPROM ߴƬеĳʽ). ʹ EMM386 
   ѻʹõļ, ԰· ROM ռ, Ϊ
   ʱѾò. Ҫǵð·ʹ  RAM 鲻, 
   ޷ӵŷ.
   
   Ŀͻ˻ʹЧĵ, ǵ [40]nobreak.sys
   pseudo-device ʽ config.sys ĿͷЩŵ
    autoexec.bat:
       ______________________________________________________________
     
rem -- ʹ c:\logged Ϊһ
del c:\logged >nul
:loginneeded
cls
echo Please type in your login name and password
echo.
net logon *
rem -- the login script Ѿ c:\logged
if not exist c:\logged goto loginneeded
del c:\logged
rem -- ʹ break Ч
echo Yes >NOBRK
       ______________________________________________________________
     
   ¿ڿѡѡ Boot from local hard-disk ѡ, ȷԿ
   .
   
  ̬趨Ƶŷ
  
   صŷ, һΪ admin , һЩϵͳõĶ.
   ŷ Unix,  /tftpboot Ŀ¼ softlink һݵ
   admin , ֱɿͻ˴ؿӰ.  admin Ŀ ¼, һ
   /utils Ŀ¼µĹ:
     * [41]mrzip.exe, һѹͻӲӰ񵵵ĳʽ.
     * [42]mrunzip.exe, һشӲӰ񵵵ŷĳʽ.
       
   ҲҪһЩӲѹӰεŵͬĿ¼,Щ
   ε:
       ______________________________________________________________
     
@echo off
if "%1"=="" goto error
echo >c:\lanman.dos\lmuser.ini
l:\utils\mrzip l:\tftpboot\%1
goto end
:error
echo Usage: MAKEIMG {image-name-without-extension}
:end
       ______________________________________________________________
     
   ڻصĿͻ, ½ admin mount Ϊŵ L: Ϊ˵ִ
   ε,  ûǿ԰еִָ (һҪþ·
    )
       ______________________________________________________________
     
        L:\util\mrzip L:\tftpboot\win31
       ______________________________________________________________
     
   һӹ, ŷϵ /tftpboot Ŀ¼½µ, Ϊ
   win31.imz, Ӳݵѹ Ӱ쵵win31.chk, صļ鵵 (
   partition boot record ϸ޸Ŀ). Ŀ¼, ֻ Ҫһ
    bpunzip  symbolic link (ÿ) Ϊ win31.P.
   
   ӲΪԶ˿趨һо.
   
  Զ˿ͻ
  
   Ŀͻ˲ڿѡѡ DOS and Windows 3.1 ѡ.
   bpunzip ʽһ ЩӰıѶϢ, ·Ӱ
    (ǵһӰ).  Ứһ. 
   ѹӰ DOS ָ, . Ҫ, Զ˿
    !
   
   һ¿, ֻѹӰ,  30 .
   
  ת趨
  
   ҪΪÿ̨һЩ趨 (Ԥӡ), ҪһЩ
   ͸  DHCP ͨѶЭ޸ĵ·趨, ʹ [43]unzipreg.exe ʽ
   , ŵͻ˵ autoexec.bat (ԭʼʽ [44]). ʽ
   ȡһ bpunzip ص, Ϊ BOOTP.ANS, 
   ͸ BOOTP/DHCP ͨѶЭش. , ȡһָĵ
    ,  BOOTP/DHCP ĻӦ,  UNZIPREG: ǩ : ָʽȡ
   еִ, ѽд ڶָĵ. , и
   Ϊ input.bat Ϊ:
       ______________________________________________________________
     
set hostname=UNZIPREG:HOSTNAME:
set domainname=UNZIPREG:DOMAINNAME:
set gateway=UNZIPREG:ROUTER:
set subnetmask=UNZIPREG:SUBNET:
set printer=UNZIPREG:T180:
       ______________________________________________________________
     
   ִָ
       ______________________________________________________________
     
        unzipreg input.bat output.bat
       ______________________________________________________________
     
   õһΪ output.bat :
       ______________________________________________________________
     
set hostname=pc7179
set domainname=unige.ch
set gateway=129.194.76.1
set subnetmask=255.255.252.0
set printer=laserwriter1
       ______________________________________________________________
     
    DHCP 趨̨Ϊ pc7179, Ϊ unige.ch, 
   ,  option-180  laserwriter1.
   
   Ҳ͸ֵ޸ Windows . дһСʽ [45]simple
   program  PROGMAN.INI , Ϊһ Ⱥʹ趨ͬ.
   
   Ϊκһ̨ͻ˻趨, ʹ mrzip ½ŵӰά
   б.
   
3.4 趨 Windows 95

   ڴ˷ļǰİ汾, ʹù΢˾ Windows 95 server-based
   installation, ̫ⷽ ʹֲмֵ:
     * Ƿǳ
     * 󲿷ݵ׼֧Ԯȥװͨʧܵ. 
       , Microsoft Internet Explorer, OnNet 32, Novell's Protected-mode
       client ( Microsoft Client for Netwareȫ).
     * Ϊ΢˾ṩ Windows 95 ʵģʽµ TCP/IP ݵʽ
       ޷ʹ Microsoft Network client over TCP/IP Ҳζ
       ʹ Samba
     * ΪͻһͻסһЩ̬ᵵʽ޷,
       ȥ Υ(sharing violations)Ĵ.
       
   ˼ǰǷݴٳ (Ȼҵ
   [46]http://cuiwww.unige.ch/info/pc/remote-boot/win95old/win95old.html)
   Ȼỻµ disk-based Զ ĸ. ,  Windows
   95 װ͸װ DOSһ.
   
  һ̨Ŀͻ
  
   ڿͻ DOS , Ѿ趨 DOS/Windows 3.1 Ǿɿѡ
   ѡһ,  һ ( space  BootPROM). ʹõ
   һַŵѾһ̨ʹ· Ŀͻ, ֻҪ Windows
   95 İװƬŵŷϵĳط.
   
   , ĵһǰװҵϵͳ, ǸʽӲ DOS
   ָ /S ѡ . ʹ DOS/Windows 3.1 ̬, Ҫ
   һЩװ Windows 95 ʱҪĵ ԼһЩĿӰв
   Ҫĵ (, WINDOWS Ŀ¼).
   
   ʼװ Windows 95, װ local . װ, ʽ
   Ŀͻ˵, һЩ 趨һ. ⼸ε¿, 
   Ŀѡѡ Boot from local hard-disk ѡ . ȵ趨Ҫ
   ʽ, ִ defrag Ӳ (δʹõ ŵ
   ռ).
   
   ҲҪʹ BootPROM ռļ, ֻҪ config.sys һм
   :
       ______________________________________________________________
     
device=\util\bputil.sys -r
       ______________________________________________________________
     
   (bputil Ƿ TCP/IP Bootprom ߴƬ). ͬ DOS, 
   Windows 95 ʹ EMM386 .
   
   Ҫʹ Windows 95 OSR2 ( MSWIN 4.1,  Windows 95 service
   pack 1,  Windows 95 with Internet Explorer), Ҫ MSDOS.SYS е
   [Options] μһ (ûֵ):
       ______________________________________________________________
     
AUTOSCAN=0
       ______________________________________________________________
     
   ʹ Windows ֪ʱԶ ScanDisk .
   
   е嶼ŷʱ, Ҫ·ŷĸ (⽫
   ϵͳЧ) ,  Կǰװ൱ Shared LAN Cache,
   Measurement Techniques, Inc  (ο [47]http://www.lancache.com).
   ÿ̨ͻ˵ִ, д·ȡõϷ Ե
   Ӳпȡ. ʹ MS-Office ڶִʱҲ... ÿ̨ͻ
   ԶҪһ ݰȨ, Ǻܹ, ҹ˾춴רԺУػݼ۸.
   õԵǵҳ ѵ.
   
  趨Ƶŷ
  
   ŷ, ĿǰûнһΪ admin Ŀ¼, Ǿͽһ. ⽫һ
   ЩϵͳҪõĶ . ŷ Unix Ļ, ڰ admin Ŀ¼
   softlink  /tftpboot Ŀ¼, ɿͻ ֱӰӰ񵵷ŵ.
    admin Ŀ¼, һ /utils Ŀ¼й߷Žȥ:
     * [48]mrzip.exe, һͻӲѹӰĳʽ.
     * [49]mrunzip.exe, һѹӰ񵵴ŷش浽ͻӲĳ
       ʽ.
       
   Ŀͻ˿ MS-DOS Ӵ, ԰ admin ·ŵ L: ִ
   еָ (һ Ҫʹþ·, 򼸸޺ :-)
       ______________________________________________________________
     
        L:\util\mrzip L:\tftpboot\win95
       ______________________________________________________________
     
   ⽫ŷ /tftpboot Ŀ¼, µ, Ϊ win95.imz, һ
   ͻӲѹӰ  win95.chk, õĵ (ʵǰѿ
   Щı䶯). Ŀ¼, ֻҪΪ win95.P ķᵽ
   bpunzip (߿һ) .
   
    Windows 95 Զ˿̬.
   
  Զ˿ͻ
  
   Ŀͻ˵Բӿѡѡ Windows 95 . bpunzip ʽ
   һЩ ӰѶϢ, Ҵ·Ӱ (
   һοӰ). ԼỨ. ѹӰ񵵵
   DOS ָ, . , Զ˿ͻ˾! һ¿
   , ֻ⿪Ӱ, ŻỨ 40 .
   
  תΪ趨
  
   Windows 95  Windows 3.1 ĲͬǼ˼弴õĳʽ, Զ
   Ӳ豸.  ỵ, ǳ̫, ʱ
   .
   
   ͬĿӰȥһ̨ͻ˻, յһ
   Windows  µӲ 豸ѶϢ: һƬµЧ, һµӲ, һ
   Ƭµ·, һֻµĻ... ԭ ж:
   
     * Щ豸ʹòͬӲԴ (, ǽͬӲ, 
       Чǽͬ  - û, ᱻ⵽)
     * Щ豸֪ͨ Windows 95 ǵ (, ÿ̨ Windows 95 
       ·,  ̫·λַÿ̨һ)
       
   ʵ ,  Windows 95 ļ弴ùܿĻ, Զ
   Ӳ豸 , 弴ùʧЧʱ, . ,
   Windows 95 ǵ޼ PS2 ʱͲ ܼ弴, ǻʧ
   . Ҫⷽ, ʹȫͬ豸.
   
   ޷ÿ̨Ե·. ܲҵ, ǵ SMC EtherEX ʹ
   ļ弴õĳʽ ʹԵ. ΨһĽⷨʹ Windows 95 Ѿ֪
   Ƭ·, Ҳ败弴 . ɾ͸Զִе
   autoexec.bat , ԶİѹƬ·趨ֵ Windows 95 ϵͳע
   Ѷ. Ҫעʹ PCI ·Ҫ.
   
   Ŀͻ˵, ༭Զִе autoexec.bat м:
       ______________________________________________________________
     
rem ---  Windows ϵͳעѶԱ⼴弴ù
cls
unzipreg c:\lib\smc.reg c:\temp\smc.reg
regedit /L:c:\win95\system.dat /R:c:\win95\user.dat c:\temp\smc.reg
echo.
del c:\temp\smc.reg
       ______________________________________________________________
     
   regedit Ǳ׼ Windows 95 ĳʽ.  Windows 95ִ,԰
   ϵͳ¼Ѷ,   DOS ִ, Զϵͳ
   ¼ѶһЩ򵥵. [50]unzipreg.exe һƵСʽ, Է
   ·µκεط (ԭʼʽ [51]). ȡһ bpunzip 
   رص,  BOOTP.ANS, ŷԭʼ BOOTP/DHCP
   ӦѶ. Ȼ, ȡһĵ(c:\lib\smc.reg), Ȼ
   BOOTP/DHCP Ӧȡ UNZIPREG:tagname: Ϊʽ,
   дڶĵ(c:\temp\smc.reg).
   
    lib Ŀ¼, иΪ [52]smc.reg ĵ:
       ______________________________________________________________
     
REGEDIT4

[HKEY_LOCAL_MACHINE\Enum\ISAPNP\SMC8416\UNZIPREG:MACID:C0]
"HardwareID"="*SMC8416,ISAPNP\SMC8416"
"HWRevision"="1.0.10"
"DeviceDesc"="SMC EtherEZ (8416)"
"Class"="Net"
"Driver"="Net\\0001"
"CompatibleIDs"="*SMC8416"
"Mfg"="SMC"
"ConfigFlags"=hex:10,00,00,00

[HKEY_LOCAL_MACHINE\Enum\ISAPNP\SMC8416\UNZIPREG:MACID:C0\Bindings]
"MSTCP\\0001"=""

[HKEY_LOCAL_MACHINE\Enum\ISAPNP\SMC8416\UNZIPREG:MACID:C0\LogConfig]
"0000"=hex:00,04,00,00,00,20,00,00,10,00,00,00,04,00,00,00,00,00,00,00,a8,0e,\
  00,00,20,00,00,00,02,00,00,00,01,00,0c,00,00,00,00,00,00,00,00,00,e0,ff,20,\
  00,40,02,ff,03,00,00,04,03,2c,00,00,00,01,00,00,00,01,00,14,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,e0,ff,ff,00,20,00,00,00,00,0c,00,ff,ff,0f,00,00,\
  00,00,00,2c,00,00,00,01,80,00,00,01,00,14,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,e0,ff,ff,00,80,00,00,00,00,0c,00,ff,5f,10,00,00,00,00,00,00,00,00,\
  00

[HKEY_LOCAL_MACHINE\Enum\ISAPNP\SMC8416\UNZIPREG:MACID:C1]
"HardwareID"="*SMC8416,ISAPNP\SMC8416"
"HWRevision"="1.0.10"
"DeviceDesc"="SMC EtherEZ (8416)"
"Class"="Net"
"Driver"="Net\\0001"
"CompatibleIDs"="*SMC8416"
"Mfg"="SMC"
"ConfigFlags"=hex:10,00,00,00

[HKEY_LOCAL_MACHINE\Enum\ISAPNP\SMC8416\UNZIPREG:MACID:C1\Bindings]
"MSTCP\\0001"=""

[HKEY_LOCAL_MACHINE\Enum\ISAPNP\SMC8416\UNZIPREG:MACID:C1\LogConfig]
"0000"=hex:00,04,00,00,00,20,00,00,10,00,00,00,04,00,00,00,00,00,00,00,a8,0e,\
  00,00,20,00,00,00,02,00,00,00,01,00,0c,00,00,00,00,00,00,00,00,00,e0,ff,20,\
  00,40,02,ff,03,00,00,04,03,2c,00,00,00,01,00,00,00,01,00,14,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,e0,ff,ff,00,20,00,00,00,00,0c,00,ff,ff,0f,00,00,\
  00,00,00,2c,00,00,00,01,80,00,00,01,00,14,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,e0,ff,ff,00,80,00,00,00,00,0c,00,ff,5f,10,00,00,00,00,00,00,00,00,\
  00
       ______________________________________________________________
     
   һʼ Windows 95  regedit . ǰѹ·趨
   һ ( HKEY_LOCAL_MACHINE/Enum/ISAPNP/SMC8416) Ȼ
   UNZIPREG:MACID: Ǻȡ·Ӳλַ.  ⵵ִ
   unzipreg , Զ·ʵӲλֵַȡ趨ļǺ. ע
    и MACID ֮ʱ C0 ʱ C1. ʹһڵ·
   ¼в , ǻǰŽȥ.
   
   ҪһΨ, ɶ PCI ·ԲҪ. ˳һ, ǿ
   ͬķԶ ,  Windows 95 ͸ DHCP ȡ趨
   ʱ. ֻмеǵ smc.reg :
       ______________________________________________________________
     
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
"ComputerName"="UNZIPREG:HOSTNAME:"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP]
"HostName"="UNZIPREG:HOSTNAME:"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ComputerName\ComputerName]
"ComputerName"="UNZIPREG:HOSTNAME:"
       ______________________________________________________________
     
   ҲʹͬĻջ̬λ趨Ļ. ,
   һԲο DOS/Windows 3.1 һε.
   
   ڱκοͻ˻趨, ǧ mrzip ½ŵӰ, 
   е趨᲻ .
   
   ʹϵͳ¼ѶС, 趨ѶתƵеĻ
   . ޷ Windows ȥһЩϵӲ, ̨
   ŵӰ. ̨ 趨ĵ¼ѶҲҪŵӰ, 
   ˳ĻԽ.
   
   ŵӰ񵵽ѹʱỨһЩʱ (ͨ 20-30 .), ԸʹһЩ
   ѶϢ߾ͷƯƯ ͼǿ. Ժܼ򵥵 (һƪ
    BPUNZIP ).
   
   õ趨 Samba Ѷ빤߸Զ˿ĵʹ, ǻд
   һļ.   [53]http://cuiwww.unige.ch/info/pc.
   
4. TCP/IP Bootprom ع߳ʽ

   һνΪ TCP/IP BootPROM дĳʽһЩ˵.
   
4.1 MENUEDIT

    DOS ִеĳʽ, ༭ TCP/IP Bootprom Ŀѡ.
   ܼ, ԭ ṩĿѡķ. ԰ F1 һ
   Щ˵. ҪǿĹ (  ), һⷢ
   °汾.
   
   ԭʼʽΪ Pascal ﷨ [54]ȡ.
   
4.2 BPHDBOOT

    boot image Ӳ master boot record ִ.
   
    boot image ЩҪ¿趨ҵϵͳ൱
   . Ҳ ҪǿӲʱ.
   
   ԭʼʽΪ Assembler ﷨ [55]ȡ.
   
4.3 BPCLEAN

    boot image дӲ master boot record, Ӳķָ. 
   , Կٸʽ DOS (FAT16) Ϸָ (޷ʹɿ). Ϊ
   ȨĹϵ, Ǳ¹滮ǵ master boot record  FAT16 ,
   һЩԶ˿ѶϢ, ׼ķָһ. Ϊ ʹ
   ʽܹ, Ҫص BIOS  master boot record ı (Ϊÿ
   һ).
   
   ʽʽͬķָ丱Ϊ .tab. 
   ԰, ע ɼǺſʼó 512 Ԫ.
   
   ǰĸհ׼עļӦðĸӲָ. հ
   עһӦ һҪĿӰ.
   
   ָɿո tab ָ, ָʽ:
       ______________________________________________________________
     
type  boot?  1st-cyl  1st-head  1st-sect  last-cyl  last-head  last-sect
type  boot?  1st-cyl  1st-head  1st-sect  relative-size
type  boot?  relative-size
       ______________________________________________________________
     
     * һָʽ, 辫ȷķָ.
     * ڶָʽ, һ sector λж嵫ָĽλҪķ
       СԶ.
     * ָʽ, һ sector ǰһָĽλԶҷָ
       Ľλǿ ҪķָСԶ. ָʽȫӲ
       ĴС.
       
   еֶʮ, гǮֺ, Żᱻ趨Ϊʮ
   .
     * ָ type DOS ָС 32 Mb Ϊ 4, DOS ָ 32Mb 
       500Mb ֮Ϊ 6 . ֵ ʹ Linux fdisk help ҵ.
     * ɿָ boot? һӦ趨 Y ָ趨 N . 
       ǸҪ¼ (master boot record) ʹ.
     * 1st-cyl, 1st-head  1st-sect ǹϵָĵһ. ǧ
       ,ͷǴ 0 ʼ, Ǵ 1 ʼ.
     * last-cyl, last-head  last-sect ǹϵ ָһ
       . ָͨڴı߽.
     * ָռ С еķʾ:
          + + 10 Mb ָָҪ 10 Mb ( 2048 );
          + - 100 Mb ָָԤ 100 Mb ( 20480 ) õ
            ռһָ;
          + + 30 % ָָĿǰλ, ռס 30 perceny Ŀ
            ;
          + - 70 % ָָӦ 70 percent ĿռĿǰλø
            һָ.
       ԴСָʱͨڴı߽, ҳǵһִ
       λȷ, ŻӴͷı߽紦ʼ. ֪, Ϊ˷ϱ
       ׼ʹ.
       
   һǩһָ֮, Ӧķָᱻʽ DOS
   FAT16 ķָ, ԭָʽ. ָʽ 4  6 ݵ, 
   ѧʹõĵʱ൱õ.  ֿٸʽֻҪʮ.
   
   Ԥֵ, bpclean Ǳ֧Ԯ LBA ( 1024 , ɴ 256 
   ͷ). ĳЩֵ BIOS ĳ Щֵҵϵͳϲһ NORMAL ģʽ (
    4096 , ܳ 64 ͷ);  Ҫģʽ,  LBA
   ĶԭʼʽĳעȻ±һ.
   
   Assembler ﷨ԭʼʽ [56].
   
4.4 MRZIP, MRUNZIP and BPUNZIP

   MrZip һ DOS ִеĳʽ, ѹ DOS FAT 16ָ. һ
   , ȷŵʹ ״, Ȼֻʹõѹ, ൱
    (Чʵ) ͳƵѹ ѹ. Ѿ֧Ԯ
   Windows 95 ĳ, ǸΪ .SWP ĵᴢ. ڸʽ ͬ
   ,Ѿ magic numbers, Ѹԭʼ .
   ĸλ ʱ, 봢ڵĵλ
    . ڽѹӰǰ ӲŹ, ʹ
    ׷Ӱ񵵵ĸ´.
   
   Ϊ MrZip ʹֱӴŵȡ, ִǰȰѴŵȡϻ
   . Windows 95 ƺ һԵĹֱӴŵȡ
   
   MrUnzip һ DOS ִеĳʽ,ѹŵӰ񵵵Ӳ, ʹ
   ֱӴŵȡ. Ҫ κξпȡܵĳʽһʹ, Ϊʽ
   Ѿ DOS ĥ... , Ҫָһ޷Ļ
   ǽõ.
   
   BpUnzip һӰѹӲӰ. Ե˵, Ӳ
   Ӱ ͬ, Ϊ .imz.
   
   , ȶȡָ
   
     * һ DOS ָ, ŵӰ񵵻شĵط
     * ָһ, ὫѹӲӰ.
       
   ȡһδõĴĵһǷѾһӰ.
   ,  Ӱеì,  shift ʱ (һ
   ر general-cleaning ź), Ӱ ᱻ.
   
   ӰûаӰ, ͸ TFTP ͨѶЭ벢Ӱ
   . ǰ Ӱ֮, û㹻ĿռžɵӰʱ, 
   ɵӰ񵵻ᱻ. ӰѾ Ӱ, µĿӰ (
   ) ͸ TFTP ͨѶЭ벢ĿǰӰ Ƚ. 
   ȫһ, ѹӰһ.
   
   Ӱᱻѹ, е magic numbers ȷ, ѹ
   . ѹʧ , ߼µĿǺ, Ӱ񵵽
   벢һ. , ʽѿ Ȩ, ҵϵͳͻ
   .
   
    bpunzip ͸ .P  ( win95.P),  TFTP ŷ
   port 59 мǿ͵Ľ (  port 69 ֮ӵ). BpUnzip ͸
   ԽϴķʽӰ, ͨ 1408 bytes  ȡÿ 512
   bytes (תʹôļеTCP/IP Bootpromʹõ).
   
   ͬ,  bpunzip ͸ .G  ( win95.GP), һ
   ͬ GIF ͼ ( win95.gif) ڿʱӪĻ. 
   ʽֻ 800x600, 256 ɫģʽ¹ (ʹ GIF ͼ ԸСʹ
   ٵɫ). Ҫ̼¼, ԰ ESC 
   . ʾ VESA , ʹ. ,Ҫע
   ǵִ ɰʹõɫ̵ ʮɫʾ. ʹ
   , ϣ. ˳һ,  ϲǱǵִɰ,
   ɵĸı ( GIFDATA.ASM), 뱣ǵ ڿԿõ
   ط.
   
   ĿطָҪȫԭʼĴСͬ ; ֻҪ㹻Ŀռŷָ
   ,ʹõĴ . ĿطָСԭʼķָ,  Ӳ
   FAT ˶ή (С򲻱). ĿطָСԭʼָ
   ,  Ӧ FAT ᾡܵ. Ȼ, Ŀطָ ԭʼָ
   ,  65518 ͲеĿռ (ΪС޷ı
   ).  ״, bpunzip ,ʹһЩռʧ.
   
   Ԥֵ, bpunzip Ǳ֧Ԯ LBA ( 1024 , ɴ 256 
   ͷ). ĳЩֵ BIOS ĳ Щֵҵϵͳϲһ NORMAL ģʽ (
    4096 , ܳ 64 ͷ);  Ҫģʽ,  LBA
   ĶԭʼʽĳעȻ±һ.
   
   Assembler ﷨ԭʼʽ [57].
   
   ʹ Solaris 2.5  TFTP server. ڴ 16 Megabytes ʱ, 
   . Ϊ޷ 32768 packets per file һ֪ĳ,
   ֱĿǰ SUN δṩ. ǽʹøЧ ʵļǿ
   [58]extended TFTP server (Ҳ֧Ԯҵϵͳ,  TCP/IP Bootprom 
   ߴƬ).
   
4.5 NOBREAK

   Nobreak.sys ൱С (ֻ 350 bytes ) ʽ, 
   config.sys еĿʼ. ĿǱ , ֱʹߵ. DOS Ϊ
   ṩһ趨 (Ϊ BREAK=OFF), ,  autoexec.bat û
   . ǵʽԭǵжҪʱ޸ļ̵ɨ, ֱ
   BIOS 㹤. ⷽ, еĳʽжδǰղжѶϢ.
   
   ʽ config.sys (ʹ Undocumented DOS 
   devlod ʽ). , ͸  Yes  NOBRK װ, Ҵ
   No  (ʵ, ֻҪһԪ, Y  N Ҫ ).
   
   Ϊʽ BIOS, ֻ DOS  Windows 3.1.¹
   Windows 95 Լ ͽ׼̴.
   
   Assembler ﷨ԭʼʽ [59].
   
5. 

   ⽫۹ܹ.
   
5.1 Bootproms  Ӳ

   Bootproms Ѿ൱, ֻͨʹ޴ŵĵ.
   , Bootproms ھӲĵԽȤ, Ϊǵõ˫
   :
     * һ Bootprom ʹļܹȶ, ΪȷԱض
       ͬһ迪 , ʹ˲ָ. , Ҳ
       , ҵϵͳ֮ǰ Ӳ
     * Ӳʹ̬Ч, Ϊ͸ȡ·,
       Чʵ swap.
       
5.2 ʹһ Bootprom ?

   ˵Կõ Bootproms ൱. ѡ K&ouml;ppen EDV
   GmbH  TCP/IP Bootprom :
   
     *  BOOTP/DHCP ͨѶЭΪ, ЩͨѶЭ RFCs Ķ
       . Ķǵ BOOTP/DHCP ŷյδ֪Ŀͻ˵ҪѶ, 
       κλӦ. ֹж̨ ŷʱ,  MSD
       ŷ. ,  IP ֻ·ڹ㲥,  IPX 
       ϵ͵Ѷ.
     * ʹöҵϵͳ.
     *  API Ͽȡ.
     * Լдʽ (Թ)
     * ĳиı仯. ر, ھʽ AST 
       صĿ, ԭ BIOS .
     * ṩάѡĹ.

References

   1. mailto:yytseng@ms16.hinet.net
   2. http://cuiwww.unige.ch/info/pc/remote-boot/howto.html
   3. http://www.lancache.com/
   4. http://www.katedral.se/system/elevsyst
   5. http://www.incom.de/bp_info.htm
   6. http://www.incom.de/bp_info.htm
   7. http://www.lancache.com/
   8. http://www.katedral.se/system/elevsyst
   9. http://vitoria.upf.tche.br/~fred/
  10. http://www.incom.de/
  11. file://localhost/tmp/zh-sgmltools.3804/soft/tftpboot/bpclean
  12. file://localhost/tmp/zh-sgmltools.3804/soft/tftpboot/bpunzip
  13. file://localhost/tmp/zh-sgmltools.3804/soft/tftpboot/bphdboot
  14. file://localhost/tmp/zh-sgmltools.3804/soft/dos/bin/menuedit.exe
  15. http://www.redhat.com/
  16. file://localhost/tmp/zh-sgmltools.3804/soft/linux/src/kernel/patch-2.0.28
  17. file://localhost/tmp/zh-sgmltools.3804/soft/linux/src/kernel/patch-config-sound
  18. file://localhost/tmp/zh-sgmltools.3804/soft/linux/src/kernel/patch-PCSP
  19. file://localhost/tmp/zh-sgmltools.3804/soft/linux/src/kernel/patch-bootprom
  20. file://localhost/tmp/zh-sgmltools.3804/soft/linux/src/kernel/patch-filecache
  21. file://localhost/tmp/zh-sgmltools.3804/soft/linux/src/kernel/patch-penguinlogo
  22. file://localhost/tmp/zh-sgmltools.3804/soft/linux/src/kernel/patch-2.0.29
  23. file://localhost/tmp/zh-sgmltools.3804/soft/linux/src/kernel/patch-2.0.30
  24. file://localhost/tmp/zh-sgmltools.3804/good.config
  25. http://www.ag.or.at/~andreas/NFS-Root-Mini-Howto.html
  26. file://localhost/tmp/zh-sgmltools.3804/soft/linux/etc/rc.ramdisk
  27. file://localhost/tmp/zh-sgmltools.3804/soft/linux/etc/rc.sysdetect
  28. file://localhost/tmp/zh-sgmltools.3804/soft/linux/etc/filecache.init
  29. file://localhost/tmp/zh-sgmltools.3804/soft/linux/etc/filecache.conf
  30. file://localhost/tmp/zh-sgmltools.3804/soft/linux/etc/rc.sysinit
  31. file://localhost/tmp/zh-sgmltools.3804/soft/linux/etc/fstab.ref
  32. file://localhost/tmp/zh-sgmltools.3804/soft/linux/etc/hosts.ref
  33. file://localhost/tmp/zh-sgmltools.3804/soft/linux/bin/filecache
  34. file://localhost/tmp/zh-sgmltools.3804/soft/linux/man/filecache.8
  35. file://localhost/tmp/zh-sgmltools.3804/soft/linux/bin/bootptag
  36. file://localhost/tmp/zh-sgmltools.3804/soft/linux/bin/dhcptag
  37. file://localhost/tmp/zh-sgmltools.3804/soft/linux/src/util/bootptag.c
  38. file://localhost/tmp/zh-sgmltools.3804/soft/linux/src/util/dhcptag.c
  39. file://localhost/tmp/zh-sgmltools.3804/soft/linux/src/util/makeramdisk
  40. file://localhost/tmp/zh-sgmltools.3804/soft/dos/bin/nobreak.sys
  41. file://localhost/tmp/zh-sgmltools.3804/soft/dos/bin/mrzip.exe
  42. file://localhost/tmp/zh-sgmltools.3804/soft/dos/bin/mrunzip.exe
  43. file://localhost/tmp/zh-sgmltools.3804/soft/dos/bin/unzipreg.exe
  44. file://localhost/tmp/zh-sgmltools.3804/soft/dos/src/unzipreg.zip
  45. file://localhost/tmp/zh-sgmltools.3804/soft/dos/src/addgroup.pas
  46. file://localhost/tmp/zh-sgmltools.3804/win95old/win95old.html
  47. http://www.lancache.com/
  48. file://localhost/tmp/zh-sgmltools.3804/soft/dos/bin/mrzip.exe
  49. file://localhost/tmp/zh-sgmltools.3804/soft/dos/bin/mrunzip.exe
  50. file://localhost/tmp/zh-sgmltools.3804/soft/dos/bin/unzipreg.exe
  51. file://localhost/tmp/zh-sgmltools.3804/soft/dos/src/unzipreg.zip
  52. file://localhost/tmp/zh-sgmltools.3804/soft/dos/lib/smc.reg
  53. http://cuiwww.unige.ch/info/pc
  54. file://localhost/tmp/zh-sgmltools.3804/soft/dos/src/menuedit.pas
  55. file://localhost/tmp/zh-sgmltools.3804/soft/dos/src/bphdboot.zip
  56. file://localhost/tmp/zh-sgmltools.3804/soft/dos/src/bpclean.zip
  57. file://localhost/tmp/zh-sgmltools.3804/soft/dos/src/mrzip.zip
  58. file://localhost/tmp/zh-sgmltools.3804/soft/solaris/in.tftpd
  59. file://localhost/tmp/zh-sgmltools.3804/soft/dos/src/nobreak.zip
