
                         Linux Remote-Boot mini-HOWTO:
                                       
   ʹ Red-Hat Linux, DOS, Windows 3.1  Windows 95/98  Windows NT Զ
   ˿վ趨
   
: Marc Vuilleumier St&uuml;ckelberg, David Clerc [1]mvuilleu@rembo.com
: Ԫ [2]yytseng@ms16.hinet.net

   v3.26,  2000 :  2000
     _________________________________________________________________
   
   ļ˵趨һ, ʹһȺ PC ŷΪȶҰȫ
   ļܹ, ˷ʹÿ̨û PC ڿʱѡʹúҵϵͳ. ּܹ
   ľҪʹ BootPROM Ϊĳʽ, ʹڿʱ, ѡͬĿ
   .  Bootix  TCP/IP BootPROM (ɸ춴󲿷ݵ·), 
    PXE ݵ Boot ROM (ڽڳֵڽ· PC ʹ). ˷
   ļ°汾, ļᵽɹص弰صѶ, 
   ַҵ
   [3]http://cuiwww.unige.ch/info/pc/remote-boot/howto.html.
   [4]Linuxdoc-SGML, [5]DVI, [6]PostScript  [7]PDF Ȱ汾Ŀ¼
   . µķչѶ, һŸ [8]info@bpbatch.org.
     _________________________________________________________________
   
1. Ȩ

2. Щ...

     * 2.1 ... 2.x  ?
     * 2.2 ... 3.0  ?
       
3. 

     * 3.1 BootPROM  Ӳ
     * 3.2 ·
     * 3.3 ι
     * 3.4 صķҵļ
       
4. 趨

     * 4.1 ŷ˵趨
     * 4.2 û˵趨
     * 4.3 趨
     * 4.4 趨 Linux
     * 4.5 趨 DOS 6  Windows 3.1
     * 4.6 趨 Windows 95/98
     * 4.7 趨 Windows NT
     * 4.8 ⼯ (FAQ)
       
5. Զ߳ʽοֲ

     * 5.1 BpBatch, MrBatch  MrZip
     * 5.2 NoBreak.sys
       
6. ͵ TFTP ŷ

     * 6.1 Bootix ǿ TFTP ŷ
     * 6.2 Linux ǿ TFTP ŷ
     * 6.3 Solaris  TFTP ŷ
     * 6.4 ȫբ
     * 6.5 㲥 TFTP ŷ
     _________________________________________________________________
   
1. Ȩ

   ʹЩǰ, ϸĶ.
   
   ڶԱ벻, 벹.
   
   װ, , ʹ嶼ʾѳ, ȨѽЩ.
   
   עݰȨֻԸ˵ʹЧ, ͨĵĵ 1 .
   
   ͨ
   
   1. Ȩִ
   
   BpBatch, MrBatch, MrZip  ع߳ʽ (ָ "") , 
   һ ɶռ, ɴ, Ȩִ, زʹЩ嵫
   Լ.
   
   ִֻȨ˵ʹ. ǷΪ˵ʹ, Ƿڸ
   , ˾ѧУӵеĵ϶.
   
   ɢ, ,  "ԭʽ" 򵱳ɲƷĸ, װ
   춵ߵĵ϶ǽֹ, ǵõȺҵ̬Ȩ
   Ĵ˵Ȩ.
   
   ͸ [9]info@rembo.com ԵõѶ. ṩҵ̬
   Ȩ.
   
   2. 𵣱
   
   Щ涨 "ԭʽ", κֱӻӵĵ. Ҳ޷ԤǷ
   κδ.
   
   ʹƷµĽնе. ر, Ⱥ
   , ûκξ, Ӳ.
   
   Ⱥκ, 㸺. ȨΪԼ, ھϵӰ
   κʽķֱ, δƵ, ϵʧ, ޷
   ʹ, ʧ𺦵ϻж, ʹЩƻ
   ص, ĿܵԤڷ.
   
   3. Ȩ
   
   ЩаȨĲܵʷİȨԼ. ͬκ
   ǾȨ帴. 㲻԰ѰȨרȨ, ȥʹ
   .
   
   㲻κηʽ, , 򹤳.
   
   4. Ŀɷָ
   
   Щͨĵķָ. ЩһĿ涨, Ϊκضʧ
   Ч򲻾Ȩ, ĿȻЧȨ.
   
   5. ÷
   
   ЩйصͨԼеȨ, һʿķ¹
   ,  .
   
   6. ռ˾Ȩ
   
   κ漰е鶼ʿ߷ͥĶռ˾Ȩ, 
   ߵʿ߷ͥ.
   
2. Щ...

2.1 ... 2.x  ?

   ֱӵ˵, ȫ. ֻлĸͬ, йĲȫ
   Կ˷ǰ汾һЩ. ¹ܵص:
     * еĹ (BpMenu, BpClean, BpUnzip) ͬһʽ.
     * ˳ʽֻ BootPROM ִ,  DOS, Windows 95/98 
       Linux ִ.
     * ˳ʽѿԻش FAT16, FAT32  EXT2FS ķָ. д
       ֧Ԯ NTFS Ĳ, ֪... Ŀǰ, NT ʹ߻ǵ FAT16.
     * ˳ʽԻشŵӳ, ԸӻµĵԸı
       ˵Ĺ.
     * ŵӳ񵵲 87 MB . 뵵ϵͳ޹صĳʽ.
     * ǴͬһʱԶķʽشŵӳ񵵵һû (
       ·㲥ļ).
     * ׫дɿĿ, ǰҪ
       .
     * κһ Linux Kernel , ټ. ܼ
       пƼ ramdisk ӳ.
     * Բ Unix, NT  Radius ŷǰʹ֤, 
       ܾǷʹʹ.
     * ѰĹʻϵ֧Ԯ.
     * , µĹ...
       
   ǷǸʽܰѾɵӳ񵵸ʽת¸ʽ ?
          û, ΪĵĸʽͲͬ. ׵ת:
          
         1. Ծɵӳ񵵿 (⵽Ӳ)
         2. Ƶþɵ unzipreg ߳ʽ, ʵ patch ָ (
            µĲ, ൱ʹ)
         3. ִµ MrZip ʽԲһ¸ʽĴŵӳ.
            
2.2 ... 3.0  ?

   3.0 : ԭһ԰汾. ھһµʱ, ȫʹߵʵʲ
   ԼѰҳʽĳṩõ. л˵, ر
   Maciek Uhlig, Dick Velders  Jeff Teeters.
   
   3.01 : ῪʼһЩϸĹ, ޴ŵ Linux  (ɹص
   ȡ).
   
   3.10 : ʼ Intel  Wired for Management 1.1a NetPC ׼. Щ
   ߳ʽֽκ PXE ݵ BootPROM (ֱͨӸϵ
   BootPROM) Ϲ. л [10]Bootix GmbH ṩ PXE BootPROM Էչ
   . Ҳɹɸ߳ʽҵ Dell ϸ·
    (Ϊ LanDesk Service Agent)  PXE BootPROM .
   
   3.11 浽 3.12 :  UNIX ŷ˹߳ʽ ( Solaris  Linux 
   ܵ PXE Proxy DHCP ŷ, һǿ͵ TFTP ŷ Linux ִ),
   ϸѶ˵ŷ˵趨 PXE .
   
   3.13 : Ӷ Advanced Power Management ֧Ԯ (صԴָ).
   
   3.14 : ϸǿ. һ RedHat 5.1 terminal 
   , һ "if" ָ﷨. һЩ Laboratori de C
   cul de la Facultat d'Informica de Barcelona (LCFIB) ¹
   :
   
     * һµ APM ʹ֪ϵͳǷ֧Ԯ Advanced Power Management (
       ֧ԮرյԴָ).
     * "beep" ָ.
     * DrawWindow ², ڲӴͬʱ. 
       DrawWindow 200 200 400 200 "Ӵ".
       
   3.15 :  VESA ֧Ԯ. BpBatch ֧Ԯʾģʽ, Щ
   ʾ 800x600 ͼεľɵҲʹ. InitGraph һ²ָ
   ʹõʾģʽ, µ VESA-Modes ȡõʾģʽ.
   
   3.16 : еĳʽ:
     *  Fullunzip ҸӵӰʱ "Malloc failed" ѶϢ. 
       л Christian Meyer Э.
     *  MrBatch  Linux 汾иʽʹ޷İӳ񵵽ѹ,
       ʽǳ MrBatch ĵײ㺯ʽ, ˻һ
       MrBatch  Linux 汾µ. ൱л Jeff Teeters Э.
     *  codepage תеĴ. ʽ Laboratori de Ccul de
       la Facultat d'Informica de Barcelona (LCFIB) .  BpBatch 
       Ⱥ, ҵ˳ʽı.
       
   3.17 : ϸܼĳʽ:
     * Fullunzip ʽص.
     *  RedHat Ƭ, ѿ.
     * ⿪ӳ񵵺̫Ŀ¼ʱ, FAT ϵͳֵ.
     * Ǽ TFTP ͨѶЭʱط. BpBatch  "Could
       not transfer the file" ǰ.
     * Timestamps ȷ FAT ¸. (л Francis Chan)
       
   3.18 :  IncrUnzip ϵĳʽ. л Gary Pike Э.
   
   3.19 :  Ext2fs  delete ָĴʽ,  Linux ¶
   A: Ĳ˴. й:
     * µ if valid Ӳ:ָ ﷨Լָѷ񱻸ʽ
     * FAT32 ŵӳѹ (ѿ).
     * Linux EXT2 ѿ֧Ԯ 2 GB.
     * Linux Swap ָԿ֧Ԯ 128 MB (˹ 2.1.x ϵ
       Kernel).
     * FullUnzip ҲԲÿȡָ, ֻҪ趨 CacheNever Ϊ "ON". 
       ÿ̨û˵İװһʱõ, ͨʹ, Ϊ
       ʹ·ؼ.
       
   л Ruben Schattevoy ЭԴ˰汾Ĺ.
   
   3.20 : Ǽ Peter Schmitt дļ.
   
   3.21 : ޶ĵĲ½Ǻ PXE 2.0 Ĺ. ҪĸĽ
   BpBatch ģʽ²趨 DHCP ѡ 135 ȡԭ 155 (155 
   Ȼ֧Ԯ). 3.22 :µİȨ. ʹ BpBatch ֮ǰ,ϸ
   Ķ.
   
   3.24 :  Tellurian Pty Ltd, [11]http://www.tellurian.com.au , 
   Watchdog 濨֧Ԯ. һƵⷨ, 
   Intel  Bootware TFTP ŷʹ. ο what's new ˽һϸ
   .
   
   3.25 : ǼһЩС ( Windows 98 ʹõĹȡ봫
   ǰܹ)  BpBatch .
   
   3.26 : ӡˢĴ, л Herman Bruninckx ڷ. 
   Ҳһ˵ Solaris TFTP ŷ.
   
3. 

   ļܹǴ 1996 ļʼ ߴѧ, CUI չ. Ѷ
   ϵŷ, һЩ˵, ;Ϊ:
     * ѧʹ
     * о븨ѧ
       
   ǷչּܹĿ:
     * κһ̨Զִ Linux, DOS, Windows 3.1, Windows 95/98, 
       Windows NT. ÿοʱѡҪҵϵͳ.
     * е, ҵϵͳ, Էŷ, 춰װ.
     * û˵, ڲŷд״̬ (Ϊ˰ȫ), 
       ûԼ home Ŀ¼.
     * ܼû˵Ե趨. û˵ԿԶŷȡ IP ̬
       趨, ЩѶһС, ɹҵϵͳʹ.
     * 󲿷ݵĵԶӵӲ, û˵ԿԿŵ·
       ʹߵݴ浵.
     * еʹ߶  ʹõ.
     * Ѷеҵϵͳͬ. ʹ߿Դȡ˵Ŀ¼, 
       ڸҵϵͳһ.
     * ѧ (Լ :-) ʹõĵÿʱһ. Ҳ
       װ.
     * ÿ̨ԿԷ.
       
   Щ, ʹǰе̬ BootPROM ߳ʽΪ. 
    [12]Bootix GmbH  [13]TCP/IP BootPROM չ. ڸ
   preboot execution environments ׼֧Ԯ. Щ߳ʽҲ
    PXE ݵ BootPROM һʹ. PXE BootPROM, ҲΪ LanDesk Service
   Agent, Ѹ󲿷ڽ·һɢ.  PXE  Intel
   Wired for Management ı׼, ͸
   [14]http://developer.intel.com/ial/wfm/tools/index.htm ȡ.
   
3.1 BootPROM  Ӳ

   BootPROM ѳֺܳһʱ, ڴ֮ǰǰ޴ŵĵ(
   ·ΪĴŵģһ ramdisk).  1996 ,  How-to
   ʹ BootPROM Ӳĵʹ, Ȥ. 
   õ˫صŵ:
     * BootPROM ʹô˼ܹȶ, Ա֤ÿ̨Զͬʽ
       . κβڷָѻ״. ɵ, 
       ҵϵͳǰӲ.
     * Ӳ, ʹô˼ܹЧ. ΪԾɿȡʽ
       ·. ܻýЧʵ swap.
       
   , ൱˼еĵѳͬĿ.  BootPROM
   ΪµԱ׼һ.
   
   Ȼ  ķʽ, ʹĹ߳ʽ. Щ߳ʽ޴ŵ
   ĵԶ, ʵһС Kernel/ramdisk . ǲ
   ʹ.
   
3.2 ·

   ߴѧ ӵ B , ָ·. CUI ʹĸ·, 
   ֮һѧʹ.
   
   ԭ,ǵĸ˵ʹ·ͨѶЭ: IPX  IP. IPX һ, 
   һ̨ Novell Netware 3 ŷ DOS  Windows. IP һ, 
   һ̨ SUN ŷ NFS  Linux 弰˵ķָ.
   
   µļܹ, Ѳʹ IPX ͨѶЭ. һ̨ Unix ŷ (
    Linux  SUN) , Linux û˿͸ NFS,  DOS  Windows 
   SMB (NetBIOS) over TCP/IP 弰ʹߵĵ. , Ƕе
   ҵϵͳʹõһ home Ŀ¼.
   
3.3 ι

    1. û˸˵Կ,  TCP/IP BootPROM  PXE Boot ROM ÿȨ
       ֮ǰҲ.
    2. BootPROM  BOOTP/DHCP Ҫ, ȡ IP ̬.
    3. ŷյ˵ͳҪ, ͻͻ BOOTP/DHCP Ӧ, 
       û˵ IP λַ, ԤͨѶբ, ӳ. , ŷ
       Ҫ.
    4.  PXE Boot ROM Ļ, иѶϢûŷ֮Ӧ
       , Ծװ.
    5. BootPROM  TFTP ͨѶЭŷؿӳ, ӳʵ
       һΪ BpBatch Сʽ, ҲǵĿʱεĽ.
    6. ε֮. ֻڼ.  preboot
       execution environment ( Boot ROM ṩ), ʱҵϵͳδ.
    7. ε BOOTP/DHCP еѡ, ر
       BpBatch Ҫ. BpBatch  DHCP ѡ 155 ȡв. ѡ
       155 ǿյ,  DHCP ѡ 135 ȡò (PXE 2.0 BootPROM ֻ
       յ 128-135 ѡ).
    8. ͸ҵ, ǿһЩ:
         1. ϵ̶Ӧ.
         2. ͸Զŷ (Unix, Radius  Windows NT) ʹ֤.
         3. ʹ߾ʹ, ֿõҵϵͳ.
         4. ҵϵͳ, Զ·ָӲٸʽݷָ.
         5. ӲڵǷѡҵϵͳ趨һ, 
            , ͸ TFTP ͨѶЭӳ.
         6. ѹѡҵϵͳӳ񵵵ָ.
         7. ѡ Linux,  Kernel .
         8. ѡ DOS  Windows, ͸Ӳϲ.
        DOS and Windows 3.1, ʹѵ Microsoft LanManager for
       DOS (Ѱ·ӳվ̨; ӦĸΪ disk1  disk4
       ĵ) Ϊ SMB û. Microsoft LanManager ͸ DHCP ̬趨
       ̬. ڵ, ʹԵ DOS, ֻҪ win ָͿ
       Windows 3.1 . һ, Ҫرע DOS  Windows 3.1 
       ǰװû˵.  Windows 9598  Windows NT/, Ҳʹ
        Microsoft SMB û (Ϊ Client for the Microsoft Network), 
       Ҳ֧Ԯ͸ DHCP ̬趨̬. Ϊ˽·ǲ
       [15]Shared LAN Cache, һǿ·Ӳ֮Ŀȡʽ.
       
   ѧʹõĵԿԺֱܱӹصԴκ, ΪӲ
   ÿοʱ½.
   
   춱Ƚ "ȫ"  ( ̵ĵ), ϵͳһ
   , 򿪻űֻɱӲ, Ӳ. ʹ
   Ӳ. ܹõ, ʹֻӿѡѡҪϵ
   ͳ, ܵõһȫµİװ.
   
3.4 صķҵļ

   ̬Ѿɹֳϵط. Ѿʼ׭дһЩ
   ʾ How-To. Ҳ, ڱδûӭһ
   e-mail  mvuilleu@bpbatch.org. ؽ̬, 
   ϸһļ !
     * [16]http://www.ph-ludwigsburg.de/nutzer/schmitt\_peter/, ڵ¹,
       Ludwigsburg  Carl-Schaefer-Schule  Peter Schmitt д. 
       BpBatch ʲο, ʺϵʹ.
     * [17]http://www.br.fgov.be/RESEARCH/INFORMATICS/info/bootp.html, 
       ڱʱֲ԰ Alain Empain д. õġű,
       һܰ PERL ʽԶͼλѡ͸߽׵ת
        HTML ļ.
     * [18]http://www.katedral.se/system/elevsyst,  Uppsala ̻ѧУ
        Johan Carlstedt д. , ̬趨ͣھɰԶ˿
       ߳ʽ. , ֻҪһ, еĶ.
     * [19]http://vitoria.upf.tche.br/~fred/, ,  Brasil 
       Passo Fundo ѧ Frederico Goldschmidt.
     * [20]http://www.etse.urv.es/~larinyo, , , Escola
       Tecnica Superio d'Enginyeria  Lluis Arino д.
       
   ҲԼĸ BpBatch ű,  [21]ű
   ѡ.
   
4. 趨

   , λʹֱ̨:
     * ŷ, һ̨ Unix  Windows NT.
     * û, һ̨Ѿ BootPROM ĸ˵, ӲڲҪҪ.
       
   Ҫ̬趨û BootPROM, Ե
   [22]http://www.bootix.com ز԰Ƭ. ƬʹĵԾͺ
   ǲ TCP/IP BootPROM һ.
   
    Boot ROM, Ҫ. ʹ Bootix  TCP/IP
   BootPROM, ·ṩʽ.  PXE
   BootPROM, ֻҪ BIOS 趨, ıԤĿװ (default boot
   device) Ϳ.
   
   ѧʹõĵ, 趨·, ͸Ӳ. ̵
   , 趨·, ҲӲ.
   
4.1 ŷ˵趨

   ŷ, ֻҪеķ:
    1. һ BOOTP/DHCP ŷ.
    2. ҲҪһ Proxy DHCP ŷ.
    3. һ TFTP ŷ.
       
   ʹ PXE Boot ROM ע: Ҫȷʹ° PXE. дĵʱ
   , µİ汾 PXE 2.0  PXE 0.99x bootrom Ҳ֧Ԯ, вݵ
   DHCP ѡ͸ DHCP ŷͳ. ر,  DHCP ѡ 135 
   BpBatch ʧЧ (BpBatch ʱ, ʾ "Cannot load file"), Ҫ
   PXE 2.0 . · Intel EPRO100 ϵ, ȡµ
   Intel PXE Product Development Kit (PDK) , һ
   BootPROM Ŀ幤߳ʽ.  PDK 
   [23]http://developer.intel.com/ial/wfm/tools/pxepdk20/index.htm.
   
  趨 DHCP ŷ
  
   DHCP ŷݵĽɫǴ IP λַû˲ TFTP ŷ,
   Ϊ bpbatch.P ĵ. DHCP ص BOOTP ͨѶЭ.  Bootix
    TCP/IP BootPROM, Բ DHCP ŷ (þɵ BOOTP ŷ).
   
    Windows NT, ҲҪƵԭ DHCP ŷ.  Bootix 
   TCP/IP BootPROM, ҪһСɿĵ ( Bootix 
   WWW ҳøѶ).  PXE BootPROM, 㻹Ҫһ DHCP ѡ
   67 ɿĵ. Ҫ趨 VendorClass (DHCP ѡ 60) Ϊ
   "PXEClient"  VendorOptions (DHCP ѡ 43) Ϊ 01,04,00,00,00,00,ff (
   ).
   
    Linux, ѵѡ ·Э (Internet Software
   Consortium) ı׼ DHCP ŷ.  PXE BootPROM, ڳ趨
   , 㻹Ҫ趨:
     * option dhcp-class-identifier "PXEClient".
     * option vendor-encapsulated-options 01:04:00:00:00:00:ff;.
       
   ʹ ISC DHCP 3.0, ﷨Щ΢.  DHCP 3.0 ݵ趨
   :
   
# DHCP ISC 3.0 & BpBatch õ DHCP 趨
#

# ȫѡ
option subnet-mask 255.255.255.0;
default-lease-time -1;

#  PXE ѡ
# Code 1: ָλû IP λַ
# Code 2: û˵Լ MTFTP Ӧ UDP 
# Code 3: MTFTP ŷ MTFTP Ӧ UDP 
# Code 4: û˵һµ MTFTP ֮ǰĵȴ
# Code 5: û˵һµ MTFTP ֮ǰĵȴ
option space PXE;
option PXE.mtftp-ip    code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;

# ѡ
subnet 192.168.1.0 netmask 255.255.255.0 {
  option routers 192.168.1.1;

# ѡ
  host pctest {
        hardware ethernet 00:01:02:03:04:05;
        filename "bpbatch.P";
        next-server 192.168.1.2;
        fixed-address 192.168.1.100;
        # BpBatch в: -i == ̸ʽ
        # ҲԶһűʽ (ҪѸ .bpb дȥ)
        option option-135 "-i";
        # PXE ѡ
        class "pxeclients"
        {
         match if substring (option vendor-class-identifier, 0, 9) =
                "PXEClient";
         option vendor-class-identifier "PXEClient";
         # 趨һ vendor-specific ѡ.
         # 趨 MCAST IP λַΪ 0.0.0.0 Ҳ͸ BootPROM ʹ
         # TFTP ͨѶЭ (λַ 0.0.0.0 ν "ûλַ")
         option PXE.mtftp-ip 0.0.0.0;
         vendor-option-space PXE;
        }
  }
}

    Solaris , Ȼʹ ·Э  DHCP ŷ (
   Web ҵ), ʹ Solaris  DHCP ŷ (Solaris 2.5 ᶼи).
   Ȼ,  Solaris DHCP ŷƺ޷ DHCP 趨ṩ, ûıʶ
   . 밲װһ Proxy DHCP ŷ. ,  Proxy DHCP ŷ
   װһ̨, Ϊ Solaris DHCP ŷס DHCP .
   
   ǽ趨û˵Ե DHCP ΪƵʹ. 
   BOOTP/DHCP ҪѶڴ. ûŷͬһ
   ͱ밲װһ BOOTP/DHCP Relay ʽ֮. 
   , ȼ̨ͬһ.
   
   ʹ PXE 2.0 BootPROM, ֻʹ site-specific ѡ 128 
   135 ԴѶϢ BpBatch.  135 ѡᱻ PXE 2.0 BootPROM Ե.
   ѡ 135  BpBatch в. 㻹 6 ѡ
   .
   
  趨 Proxy DHCP ŷ
  
   Proxy DHCP ŷݵĽɫ˷ DHCP ŷƲṩ PXE 
   ѶϢ. Proxy DHCP ŷֻΪ PXE BootPROM ʹ. ,
   Proxy DHCP ŷǱҪ.  DHCP ŷܻӦ PXE
   BootPROM Ҫѡ,  PXE BootPROM ͲȥѰ Proxy DHCP ŷ
   (aka BINL). ˵ " PXE BootPROM Ҫѡ", ָ IP ѡ
   (IP λַ, բ, , ,...) Լ PXE vendor-specific ѡ
   (vendor-class -- ѡ 60 -- 趨 "PXEClient" 
   vendor-encapsulated-options 趨һЩѶ PXE BootPROM. 
    01:04:00:00:00:00:ff 㲻֪ PXE BootPROM һѶ
   ). 뿴˵.
   
   BpBatch ܾͺ, 㲻ʹκ PXE  DHCP  (ѡ
   , .). Ȼ,  DHCP ŷṩ޶ȵ PXE , 
   Ҫһ̨ Proxy DHCP ŷ,  PXE BootPROM ޷ʹ. 
   ȵ, ָ趨 VendorClass  VendorOptions (ѡ 60  43 ).
   
    Windows NT ,  Intel WfM PDK (ǵҳҵ), 
   ײ. ǽһ̨,  Linux ĻװǵС
   Proxy DHCP ŷ. ǵ Proxy DHCP ŷ BpBatch ŵ, 
   Զѡ 155 vendor ǩ BpBatch Ϊ.
   
    Linux  Solaris , ʹǵ Proxy DHCP ŷʽ, ֻ
   趨 TFTP ŷ IP λַ, ɿӲ, Ϳ
   еĹ. ŷϵ DHCP ͨѶѱŷʽʹ,  Proxy
   DHCP ŷ 4011 ִ. ״, ʹ DHCP ͨѶĳʽ
   Ӧ PXEClinet  client class.  PXE û˲Ż֪Ҫȥ
   4011 ͨ.
   
   ˽ PXE  DHCP 칦,  Intel ҳҵ˵
   . Щеֵֹ, ͨѶЭȻ趨ڶλú, 
   Եõĵ. ΨһĽ PXE ûҪ ǿ͵
   DHCP Ӧ. ֻյ׼ DHCP Ҫ, һֱȵյͣס.
    1. һ client class (T60) 趨Ϊ PXEClient.
    2. vendor encapsulated options (T43). (ǿյִ, Ϊ
       16 Ƶ 01:04:00:00:00:00, Ա PXE BootPROM )
    3. һǿհ׵Ŀɿ.
    4. һЧ.
       
   PXE ЭĹеѶȡŽ, ȱĳһݵ
   Ѷ, ൱ӵҵ (ѰҰװŷ, .).
   
  趨 TFTP ŷ
  
   TFTP ŷ൱򵥵ĵŷ. İ汾, TFTP ͨѶЭǲ
   ÿ 512 λԪ, ൱ûЧ. Bootix  TCP/IP BootPROM 
   PXE BootPROM ʹýϴ (1408 λԪ), ˷Դٴ
   ٶ. , ֻǿ͵ TFTP ŷϹ.
   
    Windows NT , ǽ Intel  TFTP ŷ,  Intel
   PXE Product Development Kit for Windows ҵ. ҵ PDK
   [24]http://developer.intel.com/ial/wfm/tools/pxepdk20/index.htm. Ҫ
   : ƻ Windows NT ʹ Intel  TFTP ŷ, Ǳ
    BpBatch ,  bpbatch.P Ϊ bpbatch.B. ⽫֪
   BpBatch  Intel ݵ TFTP ѡ.
   
   Intel  PXE PDK  PXE BootPROM ʽ,  Intel 
   EPRO100 ϵ·ʹ, ¿Ĺ߳ʽΪ
   BootPROM Ϊ° PXE.
   
    Linux , ʹô󲿷׼ tftp daemon, ߱ǿ
    TFTP ģʽ (1408 λԪķ). ǽʹ Bootix ǿ TFTP 
   , ǵĿ¼ҵ (
   [25]http://cuiwww.unige.ch/info/pc/remote-boot/soft/), Ϊ
   incomtftpdlx.tar.gz.
   
    Solaris , ʹ Bootix ǿ TFTP ŷ, Ҳǵ
   Ŀ¼ҵ (Ϊ incomtftpdsun.tar.gz). һֿõѡ: John
   Martin (j.martin@abdn.ac.uk) Ѱ Linux ϵ tftpd ֳ Solaris .
   ҵ [26]http://www.csd.abdn.ac.uk/~jmartin/tftpd.tar.gz.
   
   ϲʹñ׼ TFTP ŷ, пɿӳ񵵵ĸ P 
   , Ը֪ BootPROM ñ׼ TFTP ͨѶͨѶ. (С
   Bootix  TCP/IP BootPROM ʹ. Ҳ򵥵ķѡ Ԥ
   TFTP ͨѶ PXE BootPROM ʹ).
   
   ժҪ˵, ƻʹñ׼ TFTP ŷ,  BpBatch ĸ
    ȥ (ҲǸΪ bpbatch). ƻʹ Bootix ֧Ԯ 59 , 
   1408 λԪ TFTP ŷ, и .P . ,
   ƻʹ Intel  TFTP ŷ ( Bootware Ǹŷ), 
   Ϊ bpbatch.B.
   
4.2 û˵趨

   , ǰҵϵͳͬĲ趨. : εĽ. Ȼ, 
   Ըҵϵͳ, ҪеĲ:
    1. 趨һû.
    2. 趨ŷ.
    3. ǷΪԶ˿û˵ʹ.
    4. 趨Ӳ䱸Ƶû˻.
       
   Щ, Ҫһ̨û, ֻҪ Boot ROM (̨
   Wired for Management ĵ...) Ȼټһ趨 DHCP ŷ趨
   . ע: Wired for Management Ӧָ߱ PXE ܵƷƵ.
   
   ǵġǼû˵ԵӲռ 1.4 G . 
   ֵ, ǾҪСָ, סҪ MB ռ䲻Ӧ (Ҳ,
   Ҫһָѻֵһ) ԱռرĿȡָ
   . Ȼ, ȡͨһӦĴʼӦ, 㲻ͬ
   С, 㽫ͬĵ (ȡᱻԶ).
   
   . һֱ޷, Ȳο ⼯ һ, 㲻
   ѱ (ҳȡ°汾). ٲ, һ BpBatch .
   ˸ͬ, ҵ. ַ:
   [27]http://cuiwww.unige.ch/info/pc/remote-boot/forum/. ޷
   , ǿһ·Ƿ· ( Linux , 
    tcpdump  Solaris ,  snoop ). Ȼ޷
   , һ E-mail  support@bpbatch.org. Զ˿趨
   йϵ, ǻ.
   
4.3 趨

   ȡ BpBatch ,  .zip  .tar.gz ʽ. ִе
     * [28]http://cuiwww.unige.ch/info/pc/remote-boot/soft/bpb-exe.zip.
     * [29]http://cuiwww.unige.ch/info/pc/remote-boot/soft/bpb-exe.tar.gz
       .
       
   ŷϵ /tftpboot Ŀ¼, رĿɿӳ. 
   ɿǰε빦 ( bpbatch.P Ϊĵ. 
   㲻 Bootix  TFTP ŷ, Ϊ bpbatch (׼
   TFTP ŷ)  bpbatch.B (Intel/Bootware  TFTP ŷ):
     * bpbatch.P, ̬ (עСдο 趨 TFTP ŷǽ, ѡ
       ʵĸ).
     * bpbatch.ovl, жص
     * bpbatch.hlp, ˵
       
   ȻΪû˼һЩ DHCP 趨, : ɿ趨Ϊ
   "bpbatch.P".  vendor ѡǩ 155 (ʮ) Ϊ "-i" (ڱ׼͵
   DHCP ŷ, µָ: option option-155 "-i";). ᱻ
   bpbatch Ϊ,  -i ν "̸ģʽ".
   
   û˵. Ӧÿ
     * BootPROM İȨ.
     * ûڵȴ DHCP Ӧʱ,  DHCP ִ.
     * ûڵȴһ TFTP ʱ,  TFTP ִ.
     * ؽʱ,  Loading BpBatch ִ.
     * ǵ, һ  ʾ.
       
   ϲ ! Ծε... ܼ֪⻷
   , ǾͼĶһ. 㲻, ֱӰװѡҵϵͳ.
   κι춽ָ,  help.
   
   ס DOS  Linux ִͬĽ, ֻҪִ MrBatch ʽ. ֻ
   һĲ (Linux 汾֧ԮͼλĹ,  DOS 汾
   BootPROM δҵϵͳ֮ǰ, ֻͳ BOOTP  TFTP ҪѶ).
   
   Ķ BpBatch ﷨ ʱ,  ο  ȡϵͳ 
   . ⽫˽.
   
   еҵϵͳ趨, ҪһѡʹȥѡҪһ
   ҵϵͳ. ̽ȥѡ. ָڱĩ.
   
  ̽ BpBatch
  
    LogVars. ӦÿԿԼʮг. ˵, 
    BpBatch ı趨, Ȼ BOOTP/DHCP ͨѶЭȡõĻӦ, 
   ӲСı, ԰λԪΪλ.
   
    GetPartitions part,  LogVars һ. ӦÿһӲ
   ڵķָѶ. һָ BIGDOS, FAT32  LINUX-EXT2,
    LogDir "{:1}" ȡøĿ¼, Ȼ LogDir "{:1}/usr" 
    usr Ŀ¼Ļ. Ҳ LogTree "{:1}/etc" ȡ״Ŀ¼.
   
   һ GIF  (ʽ GIF-87a, ǽĶ,  GIF-89a) 
    TFTP ŷ. Ǽ赵 image.gif. еָ
   κεط: copy "image.gif" "{:1}/temp/image.gif". , ŷ
   ֱʹ.  Logvars "V*"  VESA ֵ. ʾ On,
   Ǿ൱ν, ʾ VESAݵĹ.  Echo
   "$VESA-Modes" гЧʾģʽ. ҪͼֻҪµָ
   : DrawGif "image.gif". ͼӦʾөĻϽ. ڵ
    X  Y , ط. Ҳ DrawText 200 200 "Hello
   world" yellow .  DrawWindow 200 200 300 150 һյ
   . ҪڲӴʱ,  DrawWindow 200 200 300 150
   "My Window". ͼλģʽеֻᷳҪ CloseGraph.
   
   ͼλģʽҪע: Ԥ, еͼι 800x600 VESA ģʽ
    ( 256 ɫ),  VESA-Modes µĵһλ. Ҫʹ
   ͬʾģʽ, һλΪҪʾģʽ.
   
   ֱ༭,  tftpboot Ŀ¼, һΪ test.bpb ĵ
   :
       ______________________________________________________________
     
:again
DrawWindow 150 200 400 160 "Identity check"
TextAttr Black LightGray
At 15,20 Print "Username : "
Input username 8
At 17,20 Print "Password : "
Getpasswd userpass 8
if "$username" != "smith" goto again
if not "$userpass" match-passwd "BpR8oiIlRR9bo" goto again
#
clear
DrawWindow 200 200 150 100 green blue "Congratulations"
DrawText 220 250 "You got it !" yellow
WaitForKey 3
CloseGraph
interact
       ______________________________________________________________
     
    BOOTP/DHCP ŷ趨,  ѡ-155  "-i" Ϊ "test", 
   û˵¿. С͵ĽűԶִ, Ѱʹ
    (username)   (password). 㲻 smith 
   justdoit, ͲʹԿ. 㽫ѧ Unix, NT  Radius 
   Ա֤Чʹ.
   
4.4 趨 Linux

   Ϊ˰װ Linux, Ҫ RedHat Linux ׼ṩĿɿ. BpBatch 
   һָָ: FloppyBoot.
   
   װ [30]RedHat Linux û˵, ߱·֧Ԯ. Լ
   Ҫ׼. Ҫ±һ Kernel ԺӲ䱸, 
   Ǳ.
   
  趨û˵
  
    Kernel м BOOTP ͨѶЭ֧Ԯһ, Ͳ
   ȥ趨û˵ IP λַ.
   
   Ϊ˽·, Ӧðװ file cache Կȡ NFS ĵӲ
   . 򵥵˵, file cache Ĺǵ cache Ŀ¼µķγ
   ʱ, ᱻĿȡ. Ŀ걾Ŀ¼, Ŀ¼µж
   ɷ, ָڵϵͳԭʼ.  file cache 
   Unifix GmbH д, ѳΪ Unifix Linux 2.0 һ. ɢ, 
   
   [31]http://cuiwww.unige.ch/info/pc/remote-boot/soft/filecache.tar.gz ȡ
   ñҪĵ. Ϊʹ file cache, Ҫ
     *  Kernel һЩ ( patch-filecache), ͸ make config
       ϲķʽ, ± kernel.
     *  file cache Ŀִе /sbin.
     * һԹϵĵ /mnt/nfs (ʹ mkdir ָ).
     *  filecache.conf  /etc. ˵ݰ¼:
Max 100 MB 50 % #
Cache /mnt/nfs/usr /usr
Cache /mnt/nfs/opt /opt
     *  /usr  /opt ڵϵŷ,  anon=0 (root ȡ) 趨
       ΪΨԵķ /mnt/nfs  (һе /etc/fstab)
     *  /usr Ϊ /usr.orig.
     *  /usr ָ /mnt/nfs/usr.
     *  /opt Ϊ /opt.orig.
     *  /opt ָ /mnt/nfs/opt.
     * ȷ /usr  /opt Ŀ¼ǿյĲӦðȷĿ¼.
     * ԵݻصķʽƳ /usr.orig  /opt.orig.
     *  filecache.init  /etc/rc.d/init.d.
     * Ὠ /etc/rc.d/rc3.d/S35filecache ָ
       /etc/rc.d/init.d/filecache.init.
       
   Ĳ, Ӧ´οʱѾ߱ file cache , ֻҪ
   û Kernel.
   
  趨
  
   ѹ Kernel ӳ (zImage, bzImage, vmlinuz ) 
    /tftpboot Ŀ¼, Ϊ linux.krn. Ѿ BootPROM 
   PC , ڱزȥ.  BpBatch ,  LinuxBoot
   "linux.krn" "root=/dev/hda1 BOOT_IMAGE=linux" (  ext2 ϵͳ
   ڵһָ). һ״, Ҫ BootPROM ĵ趨
   ̬, ֻҪװ (lilo, ...) Ϳ. ,
   Ҫʹ file cache , ͱ file cache ֧Ԯȷ
   װ Kernel.
   
   ȵϵͳ. Ѱװ file cache, Լ /usr Ŀ¼, Ѿ
   ֱӱһЩĿ¼ʽķᵽѻֺõĿ¼. ʹ߳õĳ
   ʽ, ǰصӲ.
   
   㻹Ե趨,  Linux վ.
   
  ŵӳ
  
   趨ܰ, Ϳ root ,  /tmp Ŀ¼, ִ
   ǵ mrzip ʽ. MrZip һ BpBatch , ˽
    BpBatch . ر, ˽е:
       ______________________________________________________________
     
showlog
filter -"tmp/*"
filter -"var/log/*"
fullzip "/" "/tmp/linux.imz"
       ______________________________________________________________
     
   ⽫һŵӳ񵵵 /tmp/linux.imz. Ƶŷ /tftpboot Ŀ
   ¼. ȻḴеִе /tftpboot/linux.bpb:
       ______________________________________________________________
     
hidelog
setpartitions "linux-ext2:992 linux-swap:32"
fullunzip "linux.imz" 1
clean 2
linuxboot "linux.krn" "root=/dev/hda1 BOOT_IMAGE=linux"
       ______________________________________________________________
     
    BOOT_IMAGE ʾ RedHat 5.1  lilo ֮
   rc.sysinit.
   
    Linux Զ˿趨̬Ѿ! ֻҪ趨 BOOTP-option-155 Ϊ
   "linux",  BpBatch  include "linux.bpb" ͿԲ.
   
  ϵͳά
  
   Ҫ, װʽȫԵ, :
     * Զ˿ʽһ̨û˵Եõһȫµ Linux.
     * Ҫĸı.
     * ƴŵӳ.
     * µĴŵӳ񵵵ŷȡɵ.
       
   ν, Ծʹһ̨ͨĵһŷΪ
   ̬趨.
   
4.5 趨 DOS 6  Windows 3.1

   û˵, ϲõ DOS Ƭ (ȥ BootPROM 
   BpBatch ,  FloppyBoot ).  /S ѡ, ʽŵе DOS ָ
   , ԰װҵϵͳ. ָĴСҪ. Ϊ MrZip ŵӳ񵵰
   ʱ, Ե϶. ָС޹.
   
   һ DOS Ŀ¼,  DOS ƽȥ. װϲõ·û (
   Microsoft LanManager), Windows 3.1, Ҫĳʽ. Ҫ
   Microsoft LanManager, ǧʹ DHCP ͨѶЭ̬ IP 趨, Ϊ
   ʵ൱, ·, ҲпʧЧ. Ҫõͬ
   Ч, Լ¼е protocol.ref ,  tcptsr ͬʱ (
   xxx ȷ IP ֵȡ):
        IPADDRESS0 = xxx xxx xxx xxx
        SUBNETMASK0 = 255 255 xxx xxx
        DEFAULTGATEWAY0 = xxx xxx xxx xxx
        DISABLEDHCP = 1

   ʹ EMM386 ѻʹõļ, ԰· ROM ռ
   , ΪʱѾò. Ҫǵð·ʹõ RAM 鲻
   , ޷ӵŷ.  NOEMS .
   
   Ҫȷû˵ֻϿɵʹʹ, ԰ǵ nobreak
   װʽ (
   [32]http://cuiwww.unige.ch/info/pc/remote-boot/soft/nobreak.zip) 
   config.sys Ŀͷ, Щŵ autoexec.bat:
       ______________________________________________________________
     
rem -- we use the dummy file c:\logged as a flag
del c:\logged >nul
:loginneeded
cls
echo Please type in your login name and password
echo.
net logon *
rem -- the login script should have created c:\logged
if not exist c:\logged goto loginneeded
del c:\logged
rem -- now enable break again
echo Yes >NOBRK
       ______________________________________________________________
     
   ؿ, ȷû˵һ,  BpBatch Ľ̸ģʽ
   ָ:
        HideBootprom
        HdBoot

   û BpBatch  PC Ӳ.
   
  ŵӳ
  
   صŷ, һΪ admin Ŀ¼, һЩϵͳõ
   . ŷ Unix,  /tftpboot Ŀ¼ʽ᷽ʽһ
   ݵ admin Ŀ¼, ֱû˴ؿӳ.  admin Ŀ¼
   , һ /utils Ŀ¼µĹ:
     * mrbatch.exe, DOS  BpBatch.
     * mrzip.exe, DOS Ĺ߳ʽŵӳ.
     * bpbatch.hlp, ˵.
       
   ҲҪһЩ MrZip űΪ zipdos.mrz ĵ, ں
    DOS ŵӳ񵵵ָ, :
       ______________________________________________________________
     
showlog
filter -"lanman.dos/lmuser.ini"
filter -"temp/*"
filter -"*.swp"
fullzip "c:/" "L:/tftpboot/dos.imz"
       ______________________________________________________________
     
   ڻصû˵,  admin ҵ L:,  utils Ŀ¼, 
   ָ:
        mrzip -b zipdos

   һ֮, ŷ /tftpboot Ŀ¼¿һΪ dos.imz ĵ
   , û˵Ӳѹŵӳ. µεݸƵ
   /tftpboot/dos.bpb:
       ______________________________________________________________
     
hidelog
setpartitions "bigdos:1024"
setbootpart 1
fullunzip "dos.imz" 1
hideBootprom
hdboot :1
       ______________________________________________________________
     
    DOS Զ˿趨̬Ѿ ! ֻҪ趨 BOOTP-option-155 Ϊ
   "dos",  BpBatch  include "dos.bpb" ͿԲ.
   
  趨
  
   ҪĳһЩһЩض趨, ͵ IP λֵַ趨
   Ϊ Micro$oft  DHCP ĺ,  BpBatch ڿʱһЩ.
   ȵ lanman.dos Ŀ¼²ִ
        copy *.ini *.ref

   ༭Ϊ .ref , й̶Ĳ BOOTP ıȡ, 
   :
        computername = ${BOOTP-Host-Name}
        ipaddress0 = ${MS-IPAddress}
        subnetmask0 = ${MS-IPSubnet}
        defaultgateway = ${MS-IPRouter}

   ǰķʽؽŵӳ. עһ IP , ǲֱʹ
   BOOTP  LanManager ʹ, ΪҪԿոָԵָ
   .  dos.bpb ĳµ:
       ______________________________________________________________
     
hidelog
setpartitions "bigdos:1024"
setbootpart 1
fullunzip "dos.imz" 1
set MS-IPAddress="$BOOTP-Your-IP"/.= /
set MS-IPSubnet="$BOOTP-Subnet-Mask"/.= /
set MS-IPRouter="$BOOTP-Routers"/.= /
patch "{:1}lanman.dos/protocol.ref" "{:1}lanman.dos/protocol.ini"
patch "{:1}lanman.dos/tcpputils.ref" "{:1}lanman.dos/tcputils.ini"
patch "{:1}lanman.dos/lanman.ref" "{:1}lanman.dos/lanman.ini"
hideBootprom
hdboot :1
       ______________________________________________________________
     
   ϲ, Ҳ԰ .ref ĵŷϵ /tftpboot Ŀ¼, 
   ڴŵӳ.
   
   ǿڲؽӳ񵵵״̬, ɵıԵ趨. , 
   autoexec.bat  config.sys Ϊ autoexec.ref  config.ref ŷ
   /tftpboot Ŀ¼, мӵε:
        patch "autoexec.ref" "{:1}autoexec.bat"
        patch "config.ref" "{:1}config.sys"

   ͸ BOOTP ͨѶЭ, ɵı. ʹһЩݻ
   ⻯趨.
   
   ڶû˵Ե趨κ޸, ҪԤ. 
   MrZip ŵӳ.
   
  ϵͳά
  
   Ҫ, װʽȫĳʽ, 䴦
   :
     * Զ˿ʽһ̨û˵Եõһȫµ Linux.
     * Ҫĸı.
     * ƴŵӳ.
     * µĴŵӳ񵵵ŷȡɵ.
       
   ν, Ծʹһ̨ͨĵһŷΪ
   ̬趨.
   
4.6 趨 Windows 95/98

   ڴ˷ļǰİ汾, ʹù΢˾ Windows 95 ŷΪ
   װʽ, ̫ⷽʹ, ֲмֵ:
     * Ƿǳ.
     * 󲿷ݵ׼֧ԮȥװĽͨʧ
       . , Microsoft Internet Explorer, OnNet 32, Novell's
       Protected-mode client ( Microsoft Client for Netwareȫ).
     * Ϊ΢˾ṩ Windows 95/98 ʵģʽµ TCP/IP ݵ
       ʽ޷ʹ Microsoft Network client over TCP/IP, Ҳζ
       ʹ Samba.
     * ΪûһͻסһЩ̬ᵵʽ޷,
       ȥ Υ (sharing violations) Ĵ.
       
   ˼ǰ, Ƿݱ (Ȼҵ
   [33]http://cuiwww.unige.ch/info/pc/remote-boot/win95old/win95old.html)
   ȻỻµӲΪԶ. , ֻ
   Windows 95/98 װ͸װ DOS һ.
   
  һ̨û
  
   װһ̨Ѱ Windows 95/98 û, ǰ DOS ·
   ̬ģʽ, ͸·װ (Ƕ). ҲѾװ
   Windows Ļ, ӲᶫͱȽϲ˽.
   
   Ϊǰ DOS û.  Windows 95/98 ǲʹ
   EMM386. ʹ Windows 98  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  (ο [34]http://www.lancache.com).
   
   ÿ̨û˵ִ, д·ȡõϷԵ
   Ӳпȡ. ʹ MS-Office ֹ, ڶִʱҲ... 
   ÿ̨ͻ˵ԶҪһݰȨ, ̫, ҹ˾춴רԺУ
   ػݼ۸. , Եǵҳѵ.
   
  ŵӳ
  
   ط, ʹ Samba ŷ, ӦҪȹص Windows 98
   봫ǰܹ. ܰ admin ȥ·ŵ. ֻҪ
   ĵ¼̬ EnablePlainTextPassword ڵ DWORD ֵΪ 1
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]

    MrZip ű򵵿Ϊ zipwin.mrz :
       ______________________________________________________________
     
showlog
filter -"windows/schedlog.txt"
filter -"windows/msimgsiz.dat"
filter -"*/index.dat"
filter -"*.swp"
filter -"*.tmp"
filter -"temp/*"
fullzip "c:/" "L:/tftpboot/win.imz"
       ______________________________________________________________
     
   Ϊ˽ӳ,  admin ҵŵ L:,  utils Ŀ¼²
   ָ:
        mrzip -b zipwin

   ӹ, ŷ /tftpboot Ŀ¼, ҵΪ win.imz ĵ
   , Ӳѹŵӳ. ӳ񵵳 87 MB, ð
   ĵ. ЩҪʱԶһһ.
   ס, ӳ񵵳 87 MB ϵͳڽѹʱᳬһӶ
   ŭʹ. ǵ Windows 95/98 ӳֹ 70 MB , Ϊ󲿷ݵ
   嶼ŷ, ֻҪʱŻ. ֻмٲݵҪװ
   Ӳ. һں, Ӧýѹӳ񵵼
   ش浽Ӳʱһ.
   
   µεݸƵ /tftpboot/win.bpb:
       ______________________________________________________________
     
hidelog
setpartitions "bigdos:1024"
setbootpart 1
fullunzip "win.imz" 1
hide`
hdboot :1
       ______________________________________________________________
     
    Windows 95/98 Զ˿趨̬Ѿ ! ֻҪ趨
   BOOTP-option-155 Ϊ "win",  BpBatch  include "win.bpb" Ϳ
   .
   
  趨
  
   Windows 95/98  Windows 3.1 ĲͬǼ˼弴õĳʽ, Զ
   Ӳ豸. ỵ, ǳ̫, ʱ
   .
   
   ͬĿӳȥһ̨û˻, յһ
   Windows ⵽µӲ豸ѶϢ: һƬµЧ, һµӲ, һƬ
   µ·, һֻµĻ... ԭж:
   
     * Щ豸ʹòͬӲԴ (, ǽͬӲ, 
       Чǽͬ -.- û, ᱻ⵽).
     * Щ豸֪ͨ Windows 95/98 ǵ (, ÿ̨ Windows
       95/98 ·, ̫·λַ ÿ̨һ).
       
   ʵ ,  Windows 95/98 ļ弴ùܿĻ, Զ
   Ӳ豸, 弴ùʧЧʱ, . 
   , Windows 95/98 ǵ޼ PS2 ʱͲܼ弴, ǻ
   ʧ. Ҫⷽ, ʹȫͬӲ豸.
   
   ޷ÿ̨Ե·. ܲҵ, ڴõ SMC
   EtherEX ·ʱ, 弴õĳʽʹԵ. ΨһĽⷨʹ Windows
   95/98 Ѿ֪Ƭ·, Ҳ败弴û. ɾ
   ͸Զִе autoexec.bat, ԶİѹƬ·趨ֵ
   Windows 95/98 ϵͳ¼Ѷ.
   
   ҪעǴ󲿷 PCI ·Ҫ.
   
   û˵, ༭Զִе autoexec.bat м:
rem --- Patch Windows registry in order to avoid plug-and-play detection
regedit /L:c:\windows\system.dat /R:c:\windows\user.dat c:\temp\patch.reg

   regedit Ǳ׼ Windows 95/98 ĳʽ.  Windows ִ, 
   ԰ϵͳ¼Ѷ,  DOS ִ, Զϵ
   ͳ¼ѶһЩ򵥵. Ӵִ regedit, Ѱ·,
   ͨ
        HKEY_LOCAL_MACHINE\Enum\ISAPNP

    ¼ ѡ ¼ . һֵ, ԰
   Ϊ patch.ref ŷ /tftpboot Ŀ¼. ༭ҵ
   ·̫·λַõλ (Ҳ, ڲͬϲ
   , ȽǾͿҵ).  ${MACID} ʽȡ. 
   win.bpb űм¼:
        set macid = "$BOOTP-Client-ID"
        patch "patch.ref" "{:1}temp/patch.reg"

   (ûȷ̫·λַ, ͱ MACID ִ趨ֵҪ
   ). , û˵ԾͲȥԶ·.
   
   һ, ʹ PCI ·ʱ, ǲҪ. ,  Windows
   ڵʱ͸ DHCP ͨѶЭ趨 (hostname), Ҳͬ
   ַﵽ. ֻҪммӵǵ patch.ref :
       ______________________________________________________________
     
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
"ComputerName"="${BOOTP-Host-Name}"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP]
"HostName"="${BOOTP-Host-Name}"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ComputerName\ComputerName]
"ComputerName"="${BOOTP-Host-Name}"
       ______________________________________________________________
     
   ʹõ¼༭ʽС, ̬趨˳תƵ䱸Ļ
   . ޷ Windows ȥĳЩӲ䱸, ǻ
   һŵӳ. ̨ϵ̬趨ӳ, ϣ
   ܽ.
   
  ϵͳά
  
   Ҫ, װȫĳʽ, :
     * Զ˿ʽһ̨û˵Եõһȫµİװ.
     * Ҫĸı.
     * ƴŵӳ.
     * µĴŵӳ񵵵ŷȡɵ.
       
   ν, Ծʹһ̨ͨĵһŷΪ
   ̬趨.
   
4.7 趨 Windows NT

   ǲûʹ Windows NT Զ˿û˵Եҵϵͳ, Ѿ
   Թ, ȷ. û.
   
   ǵĹ߳ʽû֧Ԯ NTFS ϵͳ (ǼûļҲûʱ
   ȥ, Һȥκζ⹤Ȥ)  NT
   װ FAT16 ϵͳ (ֻҪڰװʱ, ķָתΪ NTFS ϵ
   ͳͿ).
   
    win.bpb űƵ winnt.bpb. ı winnt.bpb 
   setpartitions һΪ:
        setpartitions "BIGDOS:512 BIGDOS:512"

   űʹ Windows 95/98 ,  NT û˰װ C . 
   ܵڶָ. װ̫ණȥ, Ȼһִѹ
   ӳ.  Windows 95/98  C Ƴ, Windows NT ӳ񵵲Ҫ
   (ѡ BootPROM ,  NT Ŀ).
   
   ڲдӲ״, ĵ, ǧȥִ winnt ű
   . ֻҪ:
        hideBootprom
        hdboot

    NT վͿȷ. ȻͿ.
   
  ŵӳ
  
   Windows NT 鷳ĵطǳ: ŵֱӴȡĹܻᱻ Kernel ֹ. ν
   , MrZip ޷ȡ. ӳ񵵵ѷʽ Windows 95/98 
   ,  DOS Ӵ, ִ MrZip. ҪҪ winnt.bpb ű
   . ʹ Windows 95/98 ӳ񵵲ش浽һָ, ǵڶ:
       ______________________________________________________________
     
hidelog
setpartitions "BIGDOS:512 BIGDOS:512"
setbootpart 2
fullunzip "win.imz" 2
hidebootprom
hdboot :2
       ______________________________________________________________
     
   (, ڰ "{:1}" Ϊ "{:2}"). ű򿪻;
   Ӧû Windows 95/98 ִ, ´ŵ D: ۻ, ͷŵľ
   Windows NT.
   
   ķʽĴŵӳ (ֻǸĶ D: , Ȼ), Ϊ
   winnt.imz ŷϵ /tftpboot Ŀ¼. ༭ winnt.bpb ű
   򵵸ĳ:
       ______________________________________________________________
     
hidelog
setpartitions "BIGDOS:512 BIGDOS:512"
setbootpart 1
fullunzip "winnt.imz" 1
clean 2
#fullunzip "win.imz" 2
hidebootprom
hdboot :1
       ______________________________________________________________
     
    Windows NT Զ˿趨̬Ѿ. Ȼ, 㲻ָ
   , 趨ɵһָ. Ҫؽӳʱ, 㻹Ҫ趨
   ָ Windows 95/98 .
   
  ϵͳά
  
   Ҫ, װʽȫԵ, :
     * Զ˿ʽһ̨û˵Եõһȫµİװ.
     * Ҫĸı.
     * ༭ winnt.bpb:  clean  winnt fullunzip ĳע,  win95
       fullunzip ĳɿִ.
     * ƴŵӳ.
     * µĴŵӳ񵵵ŷȡɵ.
       
   , 㶨
   
4.8 ⼯ (FAQ)

   гͳ.
   
   ͣӳ
          ΪʹõǱ׼ TFTP ŷ, ܴ
          65535  512 λԪСķ ( Solaris ŷ, ڳ 32767
          ). Ϊ, ӳ񵵱
           30 MB (Solaris Ļ,  15 MB). ο Ƶ(CopyArchive)
          Ļ, ηָѴڵӳ. Ŀǰʹñ׼
          TFTP ŷ, ӦؿǸ Bootix  Intel  TFTP ŷ.
          οһ̽ЩŷĹ.
          
   BpBatch ʾ "Fragment is not complete" ĴѶϢ
           TFTP ͨѶЭ. ĸһҪ (ο
          TFTP ŷǽ).  Bootix  TFTP ŷ -s 1408
          59 ѡ, Ӧ bpbatch.P.  Intel 
          Bootware  TFTP ŷ֧Ԯ blksize  TFTP ѡ, 
          Ϊ bpbatch.B. , ñ׼ TFTP ŷ, 
          Ϊ bpbatch (ûи). ״
          BpBatch  512 λԪСķȡ 1408 λԪС. ʱ
          ĴС 32MB (TFTP ڲ)  87MB. οһ
          , ̽ 512 λԪСķ.
          
   ѹʱֱʧЧ
          ֿԭ. ŷϵӳ񵵸ƨ ( MrZip 
          ǲ),  TFTP µʧ, ͨ
          ѶЭ.
          
          ·̫, ͻᷢ TFTP ״ (, һΰһ
          ӳص̨û˵). ,
          BpBatch һֱظ. Ϊô. ص̨Բ
          ڲ̨û˵ͬʱĻ² (̨߲). 
          㳣Ҫӳ񵵵̨, ʹõ
           TFTP ŷ (οһ).
          
          ׼ TFTP ŷ (ͨڽ UNIX ŷ) µͨѶЭ
          . Ϊ BpBatch Ҫǿ͵ TFTP Эʱ, ŷ
          ׼ TFTP ЭӦ. Ҫñ׼ TFTP ŷ, Ӧȥ
           .P (οһĽ˵).
          
    / ѹʱ(1) Ե
           Bootix  TFTP ŷ, ʱϼ
          -s 1408 59 . 㲻ǲǿ TFTP ŷ, ȥŷ
          BpBatch  bootptab еĸ .P .
          
          ϸ˵: ⷢûмǿ TFTP ŷȴʹ
          bpbatch.P Ϊ DHCP/BOOTP Ŀɿıǩ. ɿ
          .P Ϊʱ, BpBatch ȥӵһ̨ Bootix  TFTP ŷ
          . Ҫ, ȥɿеĸ .P (͵
          춸 BpBatch ñ׼ TFTP Э) ߰װһ̨ǿ TFTP 
          . ѡ, ԰װ Intel  TFTP ŷ
          Ϊ bpbatch.B. ס: Ҫʹ Bootix  TFTP ŷȷǿ
          TFTP ¹, м -s 1408 59.
          
    / ѹʱ(2) Ե
          ĵԶ VESA ֧Ԯ. вм -v 
          趨 VESA Ϊ "OFF".
          
   VESA ҳܹ
          ʹ VESA 1.1 ľҳ. ʾ֧Ԯ VESA 1.1, 
          . ֻһҳ, ͻֵᷢ, . һ
          ֪ĳʽ, ҽпʱ (VESA ҳܲҪ
          ...).
          
   ȡлĵ
          һ춿ȡеĵ, ڵĳʽŪ. Զشӿȡ
          бƳ. һдȡĵûд (ǵڵ
          бػ), ҲᱻԶ. ŷһ
          ĵ. ߷ŷϴȡ. ѻĵȻ
          ڿȡ. ֻҪ BpBatch һδȡȡʱ, ͬʱ
          shift , Ϳ԰ѿȡڵ. һ, ڽ̸ģʽ
           clean -1 .
          
   εе EXIT ָʧЧ
          ⲻһʽ. Exit һָ. û exit  quit ָ
          Ϊ, ӿű˳Ǻ. 
          MrBatch ȫ BpBatch һͬһ֧ʽ. ɸԽ HdBoot ȡ
           exit. ,  DOS , Ļȡؿȫ˳.
          ס DOS κ° Ctrl-Break Ȼ˳. ⽫
          ǰ, شбصж.
          
   Print ָʧЧ
          ҪӡһЩֱӽ뽻̸ģʽ, пЩ
          . Ϊӡʾ ִʱ ʾĻ Interact ָ
          л ¼ ʾĻ. ֻҪһ GetKey ָ print ָ֮
          ͿԿҪ.
          
   MrZip ʾ Malloc failed
          MrZip ҪĴͳִ. , ȷ
          Ѿ HideBootprom ָ Bootix  bputil ж BootPROM ռ
          ļ. ڵ MS-DOS ִ ( Windows 95/98 DOS 
          ), Ӧʹ EMM386 ·ʽص߲ȡø
          Ĵͳ.  Windows  DOS Ӵִ, ͨû (ֻ
          Ҫڰװ Windows ʱ, ûκ 16 λԪĶ
          autoexec.bat ).
          
   MrZip ڶȡĿ¼ʱʧЧ
          ʽ. ȡ° MrZip. , ڰ
           Trace Ϊ "ON" (Ұ PauseLog Ϊ "OFF") , ؽӳ
          ; 㷢ֵԭ. شϸĳʽ.
          
   MrZip ޷ȡĳЩ
          MrZip ȥȡס, ѿرĵ,  Windows
          swap . ൵ӦòӳвӦ˳ (ʹ
          filter ָ). ȻҲҵϵͳˣ.  MrZip û
          , ѱ Trace Ϊ "ON" (Ұ PauseLog Ϊ
          "OFF") , ؽӳ. ҲֱӴŵȡ (Ҳ,
          Դָ "C:"  "/"  "{:1}" ʾ). ʹֱӴŵ
          ȡͨȽ, ΪǵĻҵϵͳ, ЩʱȽϿ
          .
          
   ŵӳһֱŷ
          ŵӳ񵵱ȡ, ŷϵû, ˵Ӧ
          һ. , 춿ȡһʹõķָ֮
          ʼ, ָĴСƶȡλò. һʹ
          ԿȡʧĿǰĵѾñԭĴһ. 
          Ӧñдһ. Ӧòᷢ. 
          ǿȡС. ָʣĿÿռСѹӳ
          һ, ֻʹõӳ񵵻ڿȡ, ľͱ
          һ.
          
   Red Hat Linux 5.1 
          ׼ Linux  lilo  BOOT_IMAGE в
          ( /etc/rc.d/rc.sysinit). ֻҪ linuxboot , ߱
           rc.sysinit.
          
   㲥 TFTP  ramdisk  (Got in bound state)
          Linux  dhcp ûʽ͸ DHCP Ӧ, ̬ظıû˵ IP
          λַ. ṩλֵַõ (ʹʱ),  DHCP û
          ʽֻ趨λֵַͽ (). , λ
          ַʹʱ, û˳ʽһֱڲÿһӾѰµ
          λֵַ.  DHCP û˳ʽûн,  MrBatch Զ
          ᱻ... Ľⷨ趨ڵλַʹʱ (ʱ͵
           -1).
          
    BpBatch »ᵵȡ,  MrBatch 
          ⷢ AMI BIOS Ϊ 94/07/25. о, ޽.
          Ϊ BIOS гʽ (ݴλû
          ٻ).
          
   ԷָĵѹʧЧ (Malloc failed)
          Ƿ PXE , ѱ. ȡ°.
          
   MrBatch  MrZip  RedHat 5.x  terminal
           MrBatch/MrZip ·ݵ 9 汾.  RedHat 5.1
          һе° ncurses ʽ.
          
    Linux ³ "libncurses.so.3.0: cannot open shared object file"
          MrZip Ѹ libncurses 3.0 . ֻʹ 3.0 
          µ libncurses . Ҫý° libncurses, Ҫȥ
          ֻǽһЩ libncurses.so.3.0 µ
          libncurses.so.xx .  RedHat 5.1, ʹеָ : cd
          /usr/lib ; ln -s libncurses.4.2 libncurses.3.0 Ҳ
          mrzip/mrbatch µİ汾.  10/25/98, MrBatch  RedHat 5.1
          ±.
          
   MrBatch  MrZip  Linux ִ(file not found)
          ǰһ෴. ׼Ԥ libc6 , 
          Ѳ libc5 һʹ. , ֻҪ
          Linux (Ȼ, ̫౧Թ, ǻ
          ...).
          
   Ԥ 800x600 VESA ģʽ, Ҳʹģʽ
          Ӧȼ VESA-Modes , Ӳ豸Ƿ֧Ԯ
          Ҫʹõģʽ. Ȼ, ַ֮һѡҪ VESA ģ
          ʽ :
          
          + InitGraph "mode":  InitGraph "1024x768", Ȼִϲ
            õĳʼͼ ( DrawGif ָ).
          + VESA-Modes: VESA-Modes ĵһԤģʽ. ı
            VESA-Modes , еĳʼͼλѭ趨ģʽ.
            
   ڻشָӳʱ, BpBatch ʾ "Malloc failed" ѶϢ
           BpBatch һԷ. Ӧȷʹõ
          BpBatch 汾 1998  22 ֮.
          
   Linux  MrBatch ʹ Fullunzip ܻʧЧ
           09/22/1998 İ汾, .
          
   Scandisk ʾҵӲ
          10/25/98 İ汾һӳйص. ȥ°
           BpBatch.
          
   ҵ RedHat ŵƬ FloppyBoot 
          Ѿ 10/25/98 汾.
          
   ҵ FAT32 ŵӳ޷
          Ѿ 02/09/99 汾.
          
    BpBatch ǳ "Cannot load file"
           DHCP ŷͳЧ option-135 û. BpBatch ʹ
          option 135 Ϊв. Ҫ뽻̸ģʽ, 
          趨Ϊ "-i". ԰趨Ϊһű, Ҫ
          BpBatch ѡĽűִ ( .bpb ĸ
          ). ʹ PXE BootPROM, ȷʹ option-135 Ϊв
          . PXE 2.0 BootPROM Ѳ֧Ԯ Option-155.
          
5. Զ߳ʽοֲ

   ڽṩ ߴѧ, CUI ΪԶܹ, չĹ߳ʽϸ
   ˵Ѷ.
   
5.1 BpBatch, MrBatch  MrZip

   Ϊ˸ͬһʽֱ仯, ֱе:
     * BpBatch һرĳʽ, ҵϵͳ֮ǰ BootPROM .
       : bpbatch.P, ̬,  bpbatch.ovl, ʽ
       . BpBatch ѿ͸ʵ FAT16, FAT32  Ext2fs 
       ϵͳĴŵȡ, ͸ BootPROM TFTP API ﵽԶ·
       I/O ȡ. BpBatch  DOS  Borland C 5.0  Turbo
       Assembler 3.2 .
     * MrBatch  BpBatch  DOS/Linux µİ汾.  BpBatch Աʶָ
        MrBatch ʹ. Ҫ DOS/Linux ²ε
       , ൱.  DOS , MrBatch ҵϵͳΪ, ģԶ
        I/O ,  BootPROM ڵĻ.  Linux , BootPROM ޷
       ⵽,  MrBatch  Linux  IP ֧Ԯģ, 
       ҵϵͳΪĵȡģ. MrBatch  Linux ,  GCC 2.7.2.1
       ;  DOS , Borland C 5.0  Turbo Assembler 3.2.
     * MrZip һʶ MrBatch Ե, ܽŵӳ
       .  MrZip, ԭƵԶ˵ I/O ҵϵͳΪĵ
       ȡȡ. MrZip ֧Ԯ VESA. MrZip  Linux ,  GCC
       2.7.2.1 ;  DOS ,  Borland C 5.0  Turbo Assembler
       3.2.
       
  в
  
   еĳʽԽͬĲ÷. MrBatch  MrZip ȡò
   ,  BpBatch ɲο BOOTP ͨѶЭ option 155 (ʮ) ȡ. 
   ǲ÷ :
        [-x] [-l] [-b] [-v] [-w] [-i] [script-basename]

   ˵:
     * -x ʹ.
     * -l ʹ ISO-latin-8859-1 ΪԤԪ.
     * -b ȡ BootPROM  ( DOS , Ѱ).
     * -v ȡ VESA  ( Windows 95/98 , лȫөĻ).
     * -w ֱӴŵд ( DOS  Linux , Ԥǲʹ).
     * -i ý̸ģʽ, ʹ趨űҲһ.
       
   script-basename Ǹӵѡ. 趨, MrBatch  BpBatch 
   .bpb Ϊĵ,  MrZip  .mrz Ϊĵ. û
   , MrBatch  MrZip ִ춽̸ģʽ,  BpBatch  BOOTP ɿ
   ͬ,  .bpb Ϊĵ.
   
  ﷨
  
   µĹ BpBatch .
     * ָһһн. м CR / LF Ϊָ.
     * ÿΪ 255 Ԫ.
     * ؼּҪִСд.
     * " ԵִʶԪ
     * ʹ ${}  $, Աֵȡ, δһ
       ִ. Ҳִʹ. , ִֵʱ, 
       ִǰ˫ (  ޼ʽ ȳ  
       ).
     *
          + \a Ǵᷢ  (bell) Ԫ (ASCII 7).
          + \b Ǵ ˼ (backspace) Ԫ (ASCII 8).
          + \n Ǵ  (newline) Ԫ (ASCII 10).
          + \r Ǵ λ (return) Ԫ (ASCII 13).
          + \t Ǵ λ (tabulation) Ԫ (ASCII 9).
          + \v Ǵ λ (vertical-tab) Ԫ (ASCII ...).
          + \nnn n λʮλֵ 000  377  ascii 趨
            ֵ.
          + \X X κûгԪ X . ر:
               o \" Ǵ ˫ (double-quote) (ִʶ
                 Ԫ).
               o \$ Ǵ Ǯֺ (dollar sign) (Ǳʾ).
               o \\ Ǵ б߷ (backslash) (Ԫ).
     * Ԫ "end of string" (ASCII  0) κεطʹ. ǳʽ
       ִʶԪ.
     * Ԫ "floating diaeresis" (ASCII  ʮ 249, ʮ F9, ˽
       371) ܱκִ. ΪǳʽڲʶƵʶ
       Ԫ.
     * Ԫ "block space" (ASCII  ʮ 255, ʮ FF, ˽ 377)
       ܱκα. ΪǳʽڲʶԪ.
       
   лᱻ.  (#) ʼᱻע, κν.  (:)
   ʼᱻɱǩ, κν.
   
   ִʾ
          ִ˫Ŀɱʶ:
          
        "Hello world"

          Ҫִз˫, , б߷ (backslash) :
          
        "I said: \"Hello world\""

          ִһЩԤ.
          
          + Ԫȡ:
        "Hello world"/o=u/      ==      "Hellu wurld"
        "198.76.54.32"/.= /     ==      "198 76 54 32"
          + ѡ (Ϊʼ):
        "Hello world"{0}        ==      "Hello"
        "198 76 54 32"{1-3}     ==      "76 54 32"
          + ִѡ (Ϊʼ):
        "Hello world"[4]        ==      "o"
        "Hello world"[4-7]      ==      "o wo"
            
          ӿһʹִʽ. ִ֪
          ָ, Բο "ֵʾ" һ.
          
   ֵʾ
          ֵʾ 32 λԪ ( -2,147,483,646 
          2,147,483,647). ʮ, ˽,  ֵ޷. 
          һֵʾ, Ҫıʶ:
          
          +    
          + (expr1 op expr2) ʽ op  +, -, * (), / () 
            % ()  expr ֵʾ. Ҫעÿ㶼ҪŰ
             :
        ((3 * 5)+2)             == 17
          + ִ (@), һִ :
        @"Hello world"          == 11
          + ּ (#), һִ :
        #"Hello world"          == 2
            
   ӳ
          ָҪӳ. ӳʱΪλ, ȵʮ֮һ
          :
          
        Delay 3                 ȴ 3 
        Delay 0.3               ȴ 3/10 

   ɫ
          Ҫ趨ɫʱ, ֵɫ (ִСд) ɫ. 
          ʹɫ:
          
        Black           0
        Blue            1
        Green           2
        Cyan            3
        Red             4
        Magenta         5
        Brown           6
        LightGray       7
        DarkGray        8
        LightBlue       9
        LightGreen     10
        LightCyan      11
        LightRed       12
        LightMagenta   13
        Yellow         14
        White          15

   ο
          һִ. Ǳ˫. ڴСдбĵ
          ϵͳʱ, дСдķֱ; ֮, ޴Сд֮ĵϵͳʱ, 
          ޴Сдķֱ. б߷  б߷ ɵһʹ. 
           ҪõλԪ б߷  ˫б ʾ.
          
          ͵ĵο:
          
          + ֱӲοŵϵĵ.
          + ⲿĵ.
            
          ֱӲοŵϵĵ÷:
          
        "{ŵ:ָ}/·/"

          ʡԴŵԤֵ. , "{:1}/usr/bin" ָڵһ
          ָ /usr/bin Ŀ¼. ֱӲοŵϵ I/O 
          ȫʵ (ǲʹҵϵͳṩĹ).
          
           ر ָ. ָ ָŵϵ¼ (MBR) 
          ṩһ⵵ϵͳװȡʶ. ָһ (-1) 
          ָȡϵͳ (ο).
          
           BpBatch/MrBatch ,  BootPROM , ⲿĵ
          ָԶ TFTP ŷ:
          
        "help.bpb"           ָ /tftpboot µ help.bpb 
        "images/MyImage.pcx" һ /tftpboot/images µĵ

          Ҫο TFTP ŷ:
          
        "198.76.54.32:help.bpb"

          ŷҪƹբ :
          
        "198.70.0.1/198.76.54.31:help.bpb"

          оⲺ TFTP  :
          
        "198.76.54.32@89:getpasswd/smith"

          ͬһʱֻһ̨Զ˵.  BootPROM , Զ
          ĵ͸ҵϵͳĵ I/O ģ, ͬȻ
          .
          
           MrZip , Զ˵ĵ͸ҵϵͳȡõ. û
          κ, Զ˵ĵɱֱӲοŵһʹ. 
          Զ˵ĵֱͨӲοŵ, Ϊҵϵͳ
          ϶ݴ. ҵϵͳ֧Ԯ, Զ˵ɱ·ϵĵ
          .
          
        "C:\\autoexec.bat"
        "C:/config.sys"
        "/mnt/net/usr"

  ȡϵͳ
  
   Ϊ˽·زӿ ٶ, ŵȡٶ, Linux Kernel 
   Ӳȡõ. ŵȡӲĩ, 춷ָ
   һӦĴŵһ۴֮ (κζӦҪʹõķָ
   ֮). Ҫʹȡϵͳ, ͱһָŵĩ֮䱣
   ռ. Ҫشһŵӳ, Ҫÿȡϵͳ.
   
   ŵȡһ CRC ȷϼıԵϵͳ: ÿĿ¼ 
   ÿ 32 KB  һ 32 λԪ CRC ȷ. ÿһĿ¼
   Ԥĸı, õԶɿȡƳ; ´δȡҪʱ,
   ٴµǺֿ.
   
   ͸ BpBatch, MrBatch  MrZip ɴȡȡϵͳ, ֱӴȡ
   ŵܴȡرָ "{:-1}" . Ҫӿȡ, ֻ :
        logdir "{:-1}"

   ȡϻҲԶʱ (״Ӧòᷢ), ֻҪ (
   ̸ģʽ) :
        clean -1

    BpBatch һδȡȡʱ, ͬʱ shift .
   
  
  
   Щڳֵ趨ʱر. һǴеĳʽ, һ
   ֻ MrZip ִʱŴ, һֻ BOOTP/DHCP Ӧյʱ
   Ŵ.
   
   ͨñ
          
          + $Program  BpBatch,  "BpBatch",  MrBatch, 
            "MrBatch",  MrZip,  "MrZip".
          + $Basename 趨εʹõĽű򵵵.
          + $HelpFile е Help ʱ, Ҫĵ. Ԥ:
            "${Basename}.hlp".
          + $BOOTP-... Ǿ BOOTP/DHCP Ӧȡõ趨. (ο
            BOOTP/DHCP һ, ȡøϸ).
          + $DHCP-... Ǿ DHCP Ӧȡõ趨. (ο BOOTP/DHCP 
            һ, ȡøϸ).
          + $Disks 趨ŵֵĴСռֲ. ν, 
            #"$Disks" Ӳ;  "$Disks"{0} ָһ̨Ӳ
            С.
          + $Keypressed ָݴ, һ׼ȡֵ (
            Ļ).
          + $LBA Ƿʹ LBA ȡ > 2Gb Ӳ. Ԥ: "ON".
          + $FDA Ƿʹ ٴŵȡ (͸д). Ԥ: "ON".
          + $VESA Ƿʹ VESA ͼλģʽ. Ԥ: "ON" ϵͳд˹
            .
          + $VESA-Modes гпɹʹõ VESA ģʽ. һмΪԤģʽ,
            춲κβ InitGraph ָʱ, ѡ. ס: 
            VESA="OFF", ˱ǿյ.
          + $APM ĵ֧Ԯ Avanced Power Management  "ON". 
             $APM  "ON", Ϳʹ PowerOff ָصԵԴ.
            Ԥ: Ӳ豸й.
          + $Trace Ƿִǰ, ʾÿָ. ҲԿǷҪʾ
            µ. Ԥ: "OFF".
          + $AutoShowLog Ƿ ESC , Զлּ¼. Ԥ
            : "ON".
          + $PauseLog Ƿʾ¼ʱҳͣ. Ԥ: "ON".
          + $CacheDisk 趨ŵǷпȡԶ˵Ĺ. Ԥ: empty
            == 0, һ̨Ӳ.
          + $CacheAlways ǷԶȡԶ˸ƹĵ,  
            Ƴӳ. Ԥ: "OFF".
          + $CacheNever ֹκεȡ. ޴ŵ Linux ʱ
            . Ԥ: "OFF".
          + $CacheReserve ֹڿȡָ, ʹռİٷ֮
            25. Ӳռ, ص. Ԥ: "ON".
          + $ExtMemory Ƿʹ (Ϊ XMS). һѡ, 
            Ͳܱ. Ԥ: "ON" Ļ.
          + $IsoLatin ں뵵, ߲ ASCII Ľͷ
            ʽ.IsoLatin 趨ڵŴ, ڵ֮.
            Ԥ: "ON".
          + $ProgressX  $ProgressY Ƶѹڴе
            ,  VESA ͼģʽµʾλ. Ԥ: 200 200.
          + $EXT2-Backup  Linux Ext2 ϵͳ superblock ݵĸ
            . Superblock 軨е Kernel вʹ (
            ֻ e2fsck).
          + $WatchdogPort 趨 I/O  (ʮֵ) Դȡ watchdog 
            . Ԥ˱ 0, Ҳǹص watchdog ֧Ԯ. 趨Ϊ
            ֵʱ,  watchdog ֧Ԯ.
          + $Security-Gateway Ƿʹ ȫ֤բŷ ʹ
            ֤. ǵ֤բĿִв. Ԥ:
            "${BOOTP-ŷ-IP}@89". (. TFTP ŷ,  89 ).
          + $Security-Check ں ȫ֤ŷ һμĽ, 
             PASSED  FAILED. Ԥ: "FAILED".
          + $Security-Passwd, $HelpTopic, $OnExit, $OnKey-.... ֻڲʹ
            .
            
          ο BOOTP   MrZip-ı.
          
   MrZip-ı
          ֻ MrZip ʹõı.
          
          + $TempPath ݴ浵ŵĿ¼λ Ԥ: <empty> == Ŀ
            ¼.
          + $DumpFormat ֱҪʱ, Ƶӡ¼ķʽ. һ
            ݵִ
               o "h"/"H" ʾͷ.
               o "b"/"B"  ܽ(summarize)/ӡ(dump) .
               o "s"/"S" ʾһ / ĶӦժҪ.
               o "d"/"D" ʾһ / Ŀ¼б.
               o "f"/"F"  ܽ(summarize)/ӡ(dump) .
            Ԥ: "hbD".
          + $FragmentSize ƷָĴС. 㲻ʹ Bootix  
            ǿ TFTP ŷ, Ӧ趨Ϊ "30 MB". Ԥ: "87 MB".
          + $SourceArchive, $DestArchive, $Filter... ֻڲʹ.
            
   BOOTP 
          µ BOOTP-...  DHCP-...  BOOTP/DHCP Ӧʱžʵ
           (ǰ TCP/IP BootPROM ѱ⵽):
          
        $BOOTP-Client-ID
        $BOOTP-Your-IP
        $BOOTP-Server-IP
        $BOOTP-Gateway-IP
        $BOOTP-Bootfile
        $BOOTP-Server-Name
        $BOOTP-Subnet-Mask
        $BOOTP-Time-Offset
        $BOOTP-Routers
        $BOOTP-Time-Servers
        $BOOTP-Name-Servers
        $BOOTP-Domain-name-Servers
        $BOOTP-BOOTP-Log-Servers
        $BOOTP-Cookie-Servers
        $BOOTP-Lpr-Servers
        $BOOTP-Impress-Servers
        $BOOTP-Resource-Location-Servers
        $BOOTP-Host-Name
        $BOOTP-Boot-Size
        $BOOTP-Merit-Dump
        $BOOTP-Domain-Name
        $BOOTP-Swap-Servers
        $BOOTP-Root-Path
        $BOOTP-Extensions-Path
        $BOOTP-IP-Forwarding
        $BOOTP-Interface-MTU
        $BOOTP-All-Subnets-Are-Local
        $BOOTP-Broadcast-Address
        $BOOTP-NIS-Domain
        $BOOTP-NIS-Servers
        $BOOTP-NTP-Servers
        $BOOTP-Font-Servers
        $BOOTP-X-Display-Manager
        $DHCP-IP-Address-Lease-Time
        $DHCP-Message-Type
        $DHCP-Server-Identifier
        $DHCP-Message
        $DHCP-Renewal-Time
        $DHCP-Rebinding-Time
        $BOOTP-NIS+-Domain
        $BOOTP-NIS+-Servers
        $BOOTP-Server-Name
        $BOOTP-Bootfile
        $BOOTP-Mobile-IP-Agent
        $BOOTP-SMTP-Servers
        $BOOTP-POP3-Servers
        $BOOTP-NNTP-Servers
        $BOOTP-WWW-Servers
        $BOOTP-Finger-Servers
        $BOOTP-IRC-Servers
        $BOOTP-StreetTalk-Servers
        $BOOTP-STDA-Servers

           BOOTP/DHCP µƴ
          
        $BOOTP-Option-n

          n ʮֵ BOOTP ѡ.
          
           BOOTP-Gateway-IP ,  TFTP ͨѶЭբ, 
           TFTP ŷͬһ, ӦΪ 0.0.0.0 , 
          BOOTP-Routers, ں Ԥ IP բ. TCP/IP BootPROM ʱ͸
          BOOTP-Routers 趨 BOOTP-Gateway-IP ֵ, Ϊÿ TFTP ack 
           ·. Ϊ˱Ϊ,  TFTP ŷ
          ͬһ, ǿȰ BOOTP-Gateway-IP  0.0.0.0 (л
          Maciek Uhlig ָ).
          
  ָ
  
   гϵͳ״ָ̬. ĲҲ (ұȽϲʹ 
   ע,  LaTex ϲ⿴...)
   
   Interact
          ʾ¼ϲ뽻̸ģʽֱ QUIT  EXIT . 뿪̸ģʽ
          ֮ǰHideLog, Էֹ¼ѶϢεִ.
          
   Help ()
          ˵ (bpbatch.hlp) ʾ. û趨
          , Ҳ, ʾ˵.
          
   Log "ִ"
          ʾִ¼.  α / Ԫ.
          
   Echo "ִ"
          ʾִ¼һ. ͬ
          
        Log "text\r\n".

   LogVars ("pattern")
          ¼ (. ʾ¼) кʽı. ʽʹ
          Ԫ (?  *).
          
: LogVars "BOOTP-*"              г BootP 

   LogDir "path/pattern"
          ¼ (. ʾ¼) кʽĵ. ʽʹ
          Ԫ (?  *).
          
: LogDir "/usr/g*p"              геΪ g...p ĵ

   LogTree "·"
          ¼Ը·ΪĿ¼״Ŀ¼ṹ.
          
   LogFile ""
          ¼. СС 64 KB.
          
   ShowLog
          ʹصļ¼ʾ.  "$AutoShowLog" == "ON" ס ESC ״,
          ̸ģʽ, Զ.
          
   HideLog
          ֹ¼ѶϢөĻ.  BpBatch, MrBatch  MrZip ִ
          űʱΪԤ״̬.
          
   CaptureLog
          ¼еļ¼ѶϢ 64 KB ݴֱ EndCapture . ¼
           64KB ݴ. ָʽݵֵ.
          EndCapture ָͬһűг.
          
   EndCapture ("")
          ȡ¼ѶϢ. и, ѽȡִ浽õ. 
          , Ե.
          
   Beep
          һ. ָͬ Echo "\007".
          
  ָ
  
   гִеĿָ. ĲҲ.
   
   Include "filename"
          ĵ﷨. ڴĵִн᷵ش
          . ڴ뵵, ASCII 127 ϵԪ, ˵ʱ
          $IsoLatin ֵ.
          
   OnExit command
          趨һⲿ. εʱԶִ.
          
   Goto label
          Ƶָıǩ (label) ִ (.  :label Ϊʼ)
          
   Eval "ָ"
          ִ "ָ" ָ﷨.
          
   If ...
          
  If (not) <expr1> (==|!=|<|>|>=|<=|=>|=<|<>) <expr2> <command>
  If (not) (ci) "str1" (==|!=|<|>|>=|<=|=>|=<|<>) "str2" <command>
  If (not) (ci) "str1" Match-Expr "ʽ" <command>
  If (not) (ci) "str1" Match-Passwd "unix " <command>
  If (not) (ci) "str1" in "wordlist" <command>
  If (not) (ci) "str1" in-file "" <command>
  If (not) exist "" <command>
  If (not) valid <Ӳ>:<ָ> <command>

          Գ; Щִָָ command; . һָʽ
          Ƚʾʽ. ڶָʽȽִ, ѡ
          ִСд. ָʽ "str1" Ƿʽ (ʹ
          Ԫ). ָʽ "str1" Ƿ Unix ıϵͳ
          ,Ǻ. ָʽ "str1" Ƿб.
          ָʽ "str1" Ƿֵ. ָʽ
          ĵǷ. ڰָʽķָǷ
          Ч (. ǷѸʽ). ʽֻ BpBatch 1999 İ
          .
          
   Set ...
          
  Set variable = "string-value"
  Set variable = <expr>

          趨ֵ. ֵʽ, תΪִʽ. 
          ıκεط $variable  ${variable} ʽοʹ
          . οĽҪִ, ˫Űѱ:
          "$variable"  "${variable}".
          
   Delay ʱ
          ȴֱָʱľ (Ϊλ). οʱʾʽһ
          .
          
   GetTime , GetDate 
          ȡ CMOS ʱѶ浽  , ʽΪ HH:MM:SS. ȡ
          CMOS Ѷ浽  , ʽΪ YY/MM/DD. Ϳ
          ʱĿ.
          
   SetTime "HH:MM:SS", SetDate "YY/MM/DD"
          趨û˵Ե CMOS ʱΪֵ. һ̨ȫ
          ֤բ (security gateway) (ǵ TFTP ŷ), 
          ͸ָÿοʱ, Զ CMOS ʱѶ:
          
        include "$Security-Gateway:gettime"

          ָ֪Щ, ֻ:
          
        logfile "$Security-Gateway:gettime"

   Poweroff
          صԵԴ. ָֻھ Advanced Power Management (APM)
          ݵĵʹ.
          
  صָ
  
   гһЩָԼؼ̵. ĲҲ. ɲο
   ᵽ ʻϵ֧Ԯ һ.
   
   GetKey ()
          һֱȵ̰ĳ浽  .
          
   WaitForKey ʱ (ָ)
          ָ ʱ ڵȴ̰ĳλΪ. ʱû
          κμ, ִ ָ. , ֵڼݴ. ɲοʱ
          ʽһ.
          
   Input ( (ִ))
          Լ̶ȡһ return Ϊβִ,   (
          return ִ). и ִ , ʹ
          Ԫ.
          
          ɲο 밲ȫйصָ һ,  GetPasswd ָ.
          
   OnKey "c" ָ
          趨  "c" ĳһԪʱ, Զȥִ ָ (
          Ϊ ʹõ GetChar  ĳ Input ָ, ϵͳ춵ȴ
          ״̬).  "default" ִȡһԪ "c", ָڰ
          ִ.
          
  ָ
  
   гʽֵָ. ᵽָͼģʽʹ
   , ԵõͬĹ (ֻ¿ṩ 80x25 Ԫģʽ, ͼλ
   ⹩ 100x37 Ԫģʽ, ΪͼλÿԪС 8x16). 
   Ҳ. ɲοĵ ʻϵ֧Ԯ.
   
   Print "ִ"/ʽ
          Ŀǰαָλӡִ/ʽ, ĿǰԲƶ
          α. 뵽ִ "\r\n" Ի.
          
   TextAttr ǰɫ ɫ
          趨. Ҳһֵ趨ɫ 16*ɫ+ǰ
          ɫ.
          
          㻹,  LoadFont ָ. οĵ ʻϵ֧
          Ԯ.
          
   At line,col (command)
          ƶαλõָλòִ. 趨Ļ.
          
: At 10,20 Print "Gnats and rats !"

   Clear (ɫ (ʽ (,,ײ,)))
             (ִʮƵ
          ascii ). ԤΪȫөĻ, ʽΪ ȫ (ASCII ʮ
          ֵ 219) ɫǺɫ (өĻ). Ƶα굽Ͻ.
          
   ɰ BpMenu ݵָ
          
  .ATT (<>)
  .CLS (<>)
  .DEF <ֵ> (<ȴʱ>)
  .KEY <ֵ> <>
  .POS ((< x λ >) < y λ >)
  .PWD <ֵ> <>
  .WLN (<ִ>)
  .WRT <ִ>

          ο Bootix ʹֲԻøѶϢ. ǰдһʽ
          [35]program ༭ѡ. ﷨, ʹµ﷨
          ѡǱȽϺ. ע .PWD ָûʵ. ΪǸ֪
           Bootix ı뷨.
          
  ͼʾָ
  
   ڽгͼģʽ, ͼεөĻ. ½гĹ
   . ȻҲͼģʽ, ʹָ (ο
   ǰ). ĲҲ.
   
   עͼģʽʹõͼصָʱԶ, 趨 VESA 
   Ϊ "OFF".
   
   InitGraph ("ģʽ")
           VESA ͼģʽ. ԭөĻϽ (0 0).  Windows 95/98 
          ʹ VESA ģʽܻᵱ. ʹ MrBatch ʱ,  -v ѡԱ
          .
          
          Ҫʹĳضʾģʽ, и "ģʽ" . 
          Ǹӵ: ûκζ, ѡ VESA-Modes 
          һеʾģʽ.
          
          õģʽ :
          
          + 640x480 => 640  480 , 256 ɫ.
          + 800x600 => 800  600 , 256 ɫ (Ԥģʽ).
          + 1024x768 => 1024  768 , 256 ɫ.
          + 1280x1024 => 1280  1024 , 256 ɫ.
            
          VESA-Modes гӲ豸֧Ԯģʽ.
          
          : InitGraph "640x480"
          
   CloseGraph
          ص VESA ͼģʽģʽ.
          
   DrawBar x-λ y-λ  ߶ ɫ
          VESA ͼ. ԸĴСɫһʵĳͼ.
          
   DrawWindow x-λ y-λ  ߶ (ɫ (ͼɫ)) ("
          " (ɫ))
          VESA ͼ. ԸĴСɫһӴ. Ԥıɫ
          ɫ (LightGray)  ⲿɫ (Blue). һ
          ִɫ, ֻʾ ǲ.
          
   Drawtext x-λ y-λ "ִ" (ǰɫ)
          VESA ͼ. ڸλʾֲִ͸. ԤΪǰ
          ֵɫ.
          
   DrawPcx "pcx-ͼ" ( x-λ y-λ (ɫ÷))
          VESA ͼ.  256-ɫ PCX ͼʾөĻ. Ԥ
          ʾλөĻϽǵ (0 0).
          
          ɫ÷ 嵱ʹó 256 ɫʱ, Ӧĵɫ (Ҫͬʱ
           256 ɫͼ):
          
          + Best-Colors ͼʾɫ
          + Spare-Colors ɫӦ, ֻıʹõɫ
          + Share-Colors ɫӦ, ʹõɫ
          + Reuse-Colors Ӧµɫ, ֻʹڿõɫ
            
          Ԥʹ Best-Colors.
          
   DrawGif "gif-ͼ" ( x-λ y-λ (ɫ÷))
          VESA ͼ.  256-ɫ GIF-87a ͼʾөĻ.
          ǽ,  GIF-87a ʽ ( GIF-89a). ͼ
          СĿǰʹõʾģʽ. 㲻һ 1024x768
          GIF ͼ 640x480 ͼģʽ. ԤʾλөĻϽǵ (0
          0).
          
          Ϊ LZW ר, ҵ BpBatch/MrBatch ṩ. 
           DRawPcx ָ.
          
          ɫ÷ 嵱ʹó 256 ɫʱ, Ӧĵɫ (Ҫͬʱ
           256 ɫͼ):
          
          + Best-Colors ͼʾɫ
          + Spare-Colors ɫӦ, ֻıʹõɫ
          + Share-Colors ɫӦ, ʹõɫ
          + Reuse-Colors Ӧµɫ, ֻʹڿõɫ
            
          Ԥʹ Best-Colors.
          
  밲ȫйصָ
  
   ڽг֤ʹݵָ. Ĳڶ.
   
   ݵĹܿ ȫբ (security gateway) һʹ, Ȱ
   װ. ο  TFTP ŷ һԻøѶ.
   
   GetPasswd ( (󳤶))
          ͸ Input ָһ , ԪʱʾǺ.
          
   Crypt "ִ" "salt" 
           Unix 빦ܶ 8 Ԫ, Ѽִ
          ʽ浽 .  "salt" ͨڼִҵǰ
          .
          
          Ҫע Unix ϵͳǵ. ޷ѱִ뻹ԭ. ֻ
          ͬ salt ȽִǷһ.
          
           BSD ʵ DES ϵͳ.  BSD 汾ıͷ:
          Copyright (c) 1989 The Regents of the University of California.
          This product includes software developed by the University of
          California, Berkeley and its contributors.
          
   DESCrypt "ִ" "ֵ" 
          Ըִø 8 Ԫ ֲ벢ʮƸʽ
           .
          
           BSD ʵ DES ϵͳ.  BSD 汾ıͷ:
          Copyright (c) 1989 The Regents of the University of California.
          This product includes software developed by the University of
          California, Berkeley and its contributors.
          
   DESDecrypt "hexcode" "key" 
          ø 8 Ԫʮִܲѽ浽 .
          
           BSD ʵ DES ϵͳ.  BSD 汾ıͷ:
          Copyright (c) 1989 The Regents of the University of California.
          This product includes software developed by the University of
          California, Berkeley and its contributors.
          
   MD5 "ִ" 
           MD5 ԸִļֵʮƵִʽ浽 . 
           8 Ԫ, ɲõ Unix 빦.
          
           MD5 ׼ʵ. İȨҳͷ: RSA Data
          Security, Inc. MD5 Message-Digest Algorithm
          
   CheckUser "ʹ" "" ""
          ӵ $Security-Gateway ʹǷ
          radius 򲢼ǷǺ.  "Unix", ʹ ȫ
          ֤բ, Unix  ʹ/. , ʹðȫ֤բ
          嵵, ȷ Radius  NT .
          
          趨 $Security-Check ֵΪ "PASSED"  "FAILED". 벻
          ·.
          
  ŵָ
  
   ڽгӲϵָ. ĲҲ.
   
   GetPartitions  (ŵ)
          ȡĴŵķִָʽ浽 . 
          ִӲڿռֲб ʽ:ռС, 
          
          + ʽ  FAT16, EXT, BIGDOS, NTFS, FAT32, FAT32-LBA,
            BIGDOS-LBA, EXT-LBA, LINUX-SWAP, LINUX-EXT2 δ֪ʮֵ
            ϵͳʶ.
          + ռС ָռС megabytes Ϊλ.
            
          ο SetPartitions ԻøָйصѶ.
          
   SetPartitions "ָ" (Ӳ)
          ִ趨ָ. ʽͬ GetPartitions ָ. ָҲͬ
          ʱеĿ (ʾ: ʹ SetBootPart).
          
          ¼ (MBR) еҪָֻĸ. , DOS 
          Windows ָ, ֻһ FAT ָ (Ϊ Ҫָ,
          C:).  FAT ֲָֻܷһָ (ǳΪ߼
          ָ). ǰ MBR ָеķָΪ 1-4 ,  5-8 Ϊ
          춵һָ߼ָ,  FAT ָ:
          ָ 1 Ϊ FAT, ָ 2 Ϊ EXT, ָ 5 Ϊ FAT. ָ
          3,4,6,7  8 Ϊ UNUSED. ͬĻַԲɵݻصķʽ趨
          ϵ FAT ָ: ڷָ趨һָ 6 һ
          FAT ߼ָ 9 .
          
          ڴ󲿷ݽϽ DOS , ָ 3   4 ָʹ
          . ʵ,  DOS 汾ҵϵͳָг
          ָ, û൱ȷĹ涨. ⷽ, BpBatch Է
          нϵԵĽ, ˽ҵϵͳ޷֪Ĳ.
          
          һͨõĹǲҪڷָóָ, ָ
          ŵĻַʽƻ.
          
          һЩȤ趨, Ӿ. ǾͲҪԹҵϵͳ޷
          ֱķָ. ֤ĻַʽҪָҵ
          ϵͳĿָ, ָһڵָ.
          
          ָ趨ġ:
          
        SetPartitions "BIGDOS:100 EXT:400 EMPTY EMPTY BIGDOS:400"

   GetBootPart  (Ӳ)
          ȡþ߿ɿķָ (DOS ˵: õָ) 
          浽  . һָ 1. ûо߿ɿķ
          , Ӧ 0.
          
   SetBootPart ָ (Ӳ)
          趨ɿ굽ķָ. ɿʹ¼
          (MBR) һָԿ. һָ 1 .
          
   Blank ָ (Ӳ)
          ڷָ. ԴķָỨʱ. 
          ʽΪһҵϵͳʹ. ɲο Clean.
          
   Clean ָ (Ӳ) ("ǩ")
          Էָָĸʽٸʽķָ. иǩ
          ϵͳ֧Ԯ, ȥ趨ָıǩ. Ҫ׵ĸʽ, Ǿ
           Blank ָָ.
          
          Clean ֧Ԯ (FAT16) BIGDOS, FAT32, EXT, LINUX-EXT2 
          LINUX-SWAP ʽķָ. Ҫ¼ (MBR), ʹ Clean
          0.
          
          Clean Ϸָ MBR/EXT ָ. ʹ
          FullUnzip ָ֮ǰҪ clean ָ.
          
   FullUnzip "Ĵŵӳ" ָ (Ӳ)
          ѹһĴŵӳ񵵵ķָ, дκѴڵĵ
          ().
          
          FullUnzip ֧Ԯ (FAT16) BIGDOS, FAT32  LINUX-EXT2.
          
          ָ VESA ͼʾʽе,  VESA
          Ϊ OFF.
          
   IncrUnzip "͵Ĵŵӳ" "Ŀ·"
          ѹһ͵Ĵŵӳ񵵵Ŀ·. ȡĿ·
          ӳͬĵ, ĵ᲻ᱻɾ.
          
          IncrUnzip ֧Ԯ (FAT16) BIGDOS, FAT32  LINUX-EXT2 ʽ. 
          ָЧԶ FullUnzip ָ, Ϊܱԭĵϵ
          ͳ, ɽɴӳ񵵵Ĳ촦, ȥŵӳ
          .
          
   FileUnzip "Դ" "Ŀĵ"
          ѹǰ MrZip  FileZip ָѹĵ. ᾭ
          32-λԪ CRC .
          
   Copy "Դ" "Ŀĵ"
          λԪλԪķʽ, ԴĿĵ. 
          FullUnzip ֮ʹԸŷϵ趨½ӳ.
          FileUnzip ָ, ʹڴѹĵ.
          
   Append "Դ-1" "Դ-2" "Ŀĵ"
          λԪλԪķʽ, ƵһԴ, ǵڶ  Ŀ
          . Сĵ. ĿĵɺһԴ.
          
   Patch "Դ" "Ŀĵ" ("" (""))
          ȡԴдĿĵǰ, Աȡ.  ASCII 
          127 Ľ $IsoLatin .
          
          Ԥ, Աʶ "${"  "}" ı. ҿ԰任
          ǿյִ. ס, ҪаǮַλԪ
          ھ޼бʶ. , ҪȷʹԤ
          , ʹ:
          
        Patch "Դ" "Ŀĵ" "\${" "}"

   MkDir "·"
          ݻصزɸĿ¼ʼָ·Ŀ¼. ·Ѵ, ָ
          Ч.
          
   Delete "", Del ""
          Ƴĵ. .
          
   DelTree "·"
          ݻصƳɸĿ¼ָ·еĿ¼, Ŀ¼
          .
          
  ָ
  
   ڽг쿪̵ָ. ĲҲ.
   
   HideBootProm
          ش BootPROM Ӧļж. ڽָ֮
          Ҫʹ TFTP ĹܻʧЧ.  HdBoot ָ֮ǰʹ
          Ǹ,  DOS/Windows »ᵼ¼岻.
          FloppyBoot ֱָӽ.
          
          סȻܻش BootPROM ʹõж (ʽ
          ), ĿǰƺûеĶش.  DOS  Windows
          Ѿ㹻.
          
   LoadRamDisk "ramdiskĵ"
          һĴŵӳ񵵵岢ص BIOS Ĵŵ, ʹ
          йصĺжӳȡ. ֱָӽ
          HideBootProm ָ.  FloppyBoot ָո
          ramdisk .
          
          ʽ ramdisk ܲ TFTPBoot ָȶ. Ψһ
          ǿ TCP/IP BootPROM Ԥ > 64KB , ͵λԪ
          Ĵͳ. ҲҪ,  ramdisk ŵ
          κΰȫ. ҲûκηƳ ramdisk.
          
   LoadZRamDisk "ramdisk ĵ"
           LoadRamDisk ͬ,  MrZip ѹӳ
          . ѹ ramdisk  32 λԪ CRC Էֹϴ (
          ).
          
   TFTPBoot "Զ˿"
          ᵽһɿ ( һ Bootix  BpShell ʽ
          ӳ). οԴȡ TFTP ŷϵĲοתķʽ.
          
   FloppyBoot
           Boot ROM, Ŀ.
          
   HdBoot (ŵ)(:ָ)
          Ŀɿ. ԤŵΪ , һӲ
          , ָԤΪ , Ҳ¼. Դһָ
          , ע Windows 95/98 û趨Ϊɿָ
          ָ (ʾ: ʹ SetBootPart).
          
          ָֱӽ HideBootProm, ҪȽ.
          
   LinuxBoot "Kernel" ("" ("ramdisk ĵ"))
           Kernel  ramdisk ߲ļ, 趨в
           Kernel . ٷŸϵͳλлǸ
          ( "root=dev/hda1"/). ʹõϵͳ൱ lilo ( RedHat
          Linux 5.1), м BOOT_IMAGE=linux ĶȽ
          . ס Kernel ͸ TFTP Э (ԶӲпȡ) 
          ֱĿĸָȡ.
          
          ָС͵Ļ͵ Kernel (zImage  bzImage).
          
  ʻϵ֧Ԯ
  
   ڽгʻϵйصָ. ĲҲ.
   
   RemapKeys "ԭʼ" "¶Ӧļ"
          ʻ֧Ԯ. ¶ӦļΪһԪ. ,  Y  Z
          , ʹ:
          
        Remapkeys "yzYZ" "zyZY"

          ʹõԪС ASCII Ԫʱ, ʹð˽Ƶıʾ, 
           iso-latin ʽ趨.
          
          Թʻļ̶, ڷǶӦģʽ (US) , ּб
          ߷. ǶԸԵ¶Ӧ, Ҫл BpBatch Ƿֱ
          Ӧ ASCII  252 (˽)  ASCII  335 (˽)  shift
          ʱ.
          
          Ҫǹҵļ̶Ӧű, һ
          [36]http://cuiwww.unige.ch/info/pc/remote-boot/soft/sample-scri
          pts Ϊ˰趨ļ̶Ӧ, ҽ㰴δӦ 
           Ԫ.
          
          ǰ ԭʼ һ.  ¶Ӧļ Ҫ㿴
          . ݰ (ԭʼĻ¶Ӧ)  ASCII ʮ
          λ 127, ʹ ˽Ʊʾ.  HelpPC (HelpPC һ
           David Jurgens д, ˵ʽ)  ASCII ,
          ȡԪİ˽λ.
          
   RemapAltkeys "ԭʼ" "¶Ӧļ"
          ʻ֧Ԯ. ¶Ӧļ ALT ʱ, Ϊһ
          Ԫ. , Ӧ Alt-2 ΪС, ʹ:
          
        RemapAltKeys "2" "@"

          ס¿ļ֧Ԯ.
          
   LoadCodePage "cpxxx.bin"
          벢Ķ Codepage . Codepage ת
          Unicode Ԫ ( VFAT Ĵŵǩʵ) Ϊ 8 λԪԪ. 
          ûȷ Codepage, õԪȡϵͳʱ, 
           FAT .
          
          еĶ codepage ҵ
          [37]http://cuiwww.unige.ch/info/pc/remote-boot/soft/codepage.zi
          p
          
          Ԥ codepage  850, мصּ ISO-Latin-1. Ҫ
          һ codepage, Ҫѱ $IsoLatin Ϊ "off" 
          ת. , ҪʾԪ, ʵ
          өĻ (ʹ "LoadFont").
          
   LoadFont "͵"
          벢һ VGA/VESA , ּͼģʽʹ. ͵
          Ƕλ 16 λԪ/Ԫ (8x16 ). ָڹʻ
          ϵʹԵõλõ֧Ԯ.
          
          жλ͵ĵѹ
          [38]http://cuiwww.unige.ch/info/pc/remote-boot/soft/fonts.zip.
          õ codepage µ DOS .CPI е
          ĳʽ.
          
  MrZip ָĹ
  
   Source...
          
  Source (i)archive ""
  Source path "·"

          趨ҪԴ (ʽ) ·.
          
   Dest...
          
  Dest (i)archive ""
  Dest (i)dump
  Dest path "·"

          趨ҪĿĵ (ʽ) , ·,  ӡ. Ҫ
          ӡʱҪʾ,  $DumpFormat .
          
   FileZip "Դ" "Ŀĵ"
          ѹһǰ FileUnzip  ZRamDisk ѹĵ. 
           32 λԪ CRC ʽ.
          
   Filter...
          
  Filter -"ʽ"
  Filter +"ʽ"

          / ʽ (Ԫ) ĵĿ¼ӳ
          . ʽǺ·. Ԥ, еĵӳ
          . ֻҪȷʾЩɹ. ÿĹ
          Ӧ ().
          
           DOS/Windows ӳ, ֻҪ
          
        Filter -"*.swp"
        Filter -"temp/*"

           Unix ӳ, Ҫ
          
        Filter -"var/log/*"
        Filter -"tmp/*"

   CopyArchive
          ṩԴ, Ŀĵ, 趨ʼӳ. ֻ
          , ȻֱͨʹгĿ÷ȡ
           CopyArchive ָ. һõ CopyArchive ǵ
          Ҫָӳ񵵴Сʱ, :
          
        set FragmentSize="30 MB"
        Source archive "original.imz"
        Dest archive "refragmented.imz"
        CopyArchive

   FullZip "·" "ӳ"
          Ŀ÷
          
                Source path "·"
                Dest archive "ӳ"
                CopyArchive

          ͨҪ趨.
          
   IncrZip "·" "ӳ"
          Ŀ÷
          
                Source path "·"
                Dest iarchive "ӳ"
                CopyArchive

   FullDump "ӳ"
          Ŀ÷
          
                Source archive "ӳ"
                Dest dump
                CopyArchive

   IncrDump "ӳ"
          Ŀ÷
          
                Source iarchive "ӳ"
                Dest dump
                CopyArchive

   Xcopy "Դ·" "Ŀ·"
          Ŀ÷
          
                Source path "Դ·"
                Dest path "Ŀ·"
                CopyArchive

5.2 NoBreak.sys

   Nobreak.sys ൱С (ֻ 350 λԪ) ʽ, 
   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/98 Լĵͽ׼̴.
   
   Assembler ﷨ԭʼʽ [39].
   
6. ͵ TFTP ŷ

    TCP/IP BootPROM ֻ֧Ԯ TFTP ͨѶЭ, ǿ͵ TFTP ŷ
   ¹ϢϢ.
   
6.1 Bootix ǿ TFTP ŷ

   Bootix  TCP/IP BootPROM һеǿ TFTP ŷ, Դÿ
    1408 λԪȡԭ׼ 512 λԪ. ǸܰĹ
   Ӧö. ŷʽ TCP/IP BootPROM ߳ʽƬҵ,
    Solaris, Windows  Netware NLM 汾.
   
6.2 Linux ǿ TFTP ŷ

    Linux ,  Bootix/Incom д TFTP ŷ.  Linux ʹõİ
   ѱ,. 
   [40]http://cuiwww.unige.ch/info/pc/remote-boot/soft/incomtftpdlx.tar.g
   z
   
6.3 Solaris  TFTP ŷ

   ԭʼ Solaris TFTP ŷʽϸĵС, Ϊʹ 16-λ
   ԪкС. Bootix ṩĸ Solaris ǿ TFTP 
   , ͿԽ, ṩĴٶ.
   
   , ʹ߻Ӧ (رǴ SMC9432 ʹʱ) ʱ
   lock-ups . , John Martin (j.martin@abdn.ac.uk) Ѱ Linux 
   tftpd ֳ Solaris. ҵ
   [41]http://www.csd.abdn.ac.uk/~jmartin/tftpd.tar.gz.
   
6.4 ȫբ

   дһ TFTP ŷ֤ʹߵİȫբ. ŷ
    Linux  Solaris ִ, ͸ Unix  ͨϿ
   (NIS  shadow ͨ붼֧Ԯ)  Windows NT ( Samba) ŷ 
   Radius ŷ. 
   [42]http://cuiwww.unige.ch/info/pc/remote-boot/soft/stdtpd.tar.gz, ԭ
   ʼʽԤȱõĿִе. ԤȱõĿִе NT ͨ
   ܹΪǲɢ libdes ʹ˱ԹҲһ.
   
   ΪҪʹðȫբ, ֻҪ security domains 趨һЩ趨, 
   ָÿ߼ȫǶӦһ̨֤ŷ ( Unix ֱӶӦ
   Unix ͨϿŷ). һ趨:
       ______________________________________________________________
     
#
# STFTPD 趨
#
# ŷ "security domains".
# ֧Ԯ֤ŷ : Radius  winnt (winnt  NT ŷ  Samba)
#
# Radius ŷ趨ʽ
# radius        <>        <ŷ·λַ>         <secret>
#
# secret ָ /etc/raddb/clients ͷ
#
# SMB ŷ趨ʽ
# winnt         <>        <ŷ·λַ>         <netbiosname>
#
# netbiosname ָŷ NETBIOS ʶ
#
# 
radius         sec-dom-rad     radiusserver    testing123
winnt          sec-dom-nt1     192.168.1.1     NTserver1
winnt          sec-dom-smb     samba           SAMBA1
       ______________________________________________________________
     
   ס ʹ Samba, 趨 security = user.
   
   ҲṩһЩʹֹ߽ (ʹǵ޷ͨ) б
   ȫ֤ŷ.
   
6.5 㲥 TFTP ŷ

   ׫дһ TFTP ŷʵԶ TFTP 㲥. ŷ
   , ǿڸ߸ص 10 Mb ̫·,  6 Mb/s Ĵӳ
    25 ̨û˵ (ȴͳ TFTP ЭЧʶ, Ϊ
   ȫҪÿһյĻӦ). ŷʽ Linux 
   Solaris ִ. ȡ
   [43]http://cuiwww.unige.ch/info/pc/remote-boot/soft/btdtpd.tar.gz, ԭ
   ʼʽ뼰ԱõĿִе.
   
   Ϊ TCP/IP BootPROM ֧ԮͨѶЭ, ǵĽһС
    ramdisk Ϊ Linux ϵͳ, Ȼٴ䱾̸Ĺ߳ʽ:
   Linux 汾 MrBatch, ڽ֧Ԯ㲥 TFTP ͨѶЭ. һ
   εͬʱʹеû˵ڼеĵ. Ҫʹ
   㲢Ҫаװ Linux, ൱صӲ䱸, ޷ֱ
   ʹ׼ṩ Kernel.
   
   . Ҫֶ㲥ŷ, 趨ԤҪ
   ˵ (ס, Ҫ. ֻӳ,
   ȷֱ뵽еû˵ʱҪõ). , е
   ˵Զ, Ǿͻִе BpBatch ű:
       ______________________________________________________________
     
#
# ε BpBatch ִ, һ ڽ ramdisk  mini-linux,
# Ȼڴ Linux ִ MrBatch.
#
# 㲥 TFTP ͨѶЭֻ Linux 汾 MrBatch , Ϊ BootPROM ֧Ԯ
.
#
# 1. 趨һСķָ, ȡ.
setpartitions "BIGDOS:50"
# 2.  MBR.
clean 0
# 3. ִһ initrd (Initial Ramdisk) ֧Ԯ Linux Kernel, 
#    bcastrd.gz Ϊ ʼ ramdisk (ᱻ root ͸ /linuxrc ִ).
#    ο initrd.txt Իø ʼ ramdisk ϸ.
#    㲻Ҫȥ趨 root װ (ڶõ)  Kernel,
#    ʹ ʼ ramdisk.
linuxboot "linux.krn" "" "bcastrd.gz"
# 4. ʼ ramdisk ִ dhcpd ͸ DHCP ͨѶЭ趨·.
#    ִ mrbatch -w bcastlx
       ______________________________________________________________
     
   ʼ ramdisk ں:
     * dhcpcd, һ DHCP û˳ʽ趨·.
     * mrbatch
     * linuxrc, һᱻ initrd ĵ,  dhcpd ֮Ҫ
        MrBatch.
     * usr/lib/terminfo/l/linux,  MrBatch ʹ.
     * dev/*, ִ Linux  MrBatch װ.
       
   еĳʽȥߴݼɾ̬, Աʹõ libc.so Ϊĺ
   .  Gzip ѹ ramdisk С 300 KB.  Kernel õ
   450KB (֧Ԯ· initrd ).  Linux һִ, MrBatch ᱻ
   òеĽű (ҲԸ޸):
       ______________________________________________________________
     
#  MrBatch  ʼ ramdisk bcastrd.gz ִ
# ҪĹ "ɹ㲥ķʽ" ȡͷ
#
# 1. ϸѶ.
showlog
# 2. Ҫ "press a key".
set pauselog="OFF"
# 3. 趨ָΪֵ.
#    ص: ҪƵȡԹĿʹʱ,
#    Ҫõ趨һķָ.
setpartitions "BIGDOS:1024"
# 4.  ȡָ.
clean -1
# 5. ͸ 㲥 TFTP ͨѶЭ ( 99) , Ƶȡ.
#
# дĽű, ٷ֮ȷҪ޸һ !
# ǵġ, صĵ mblinux.imz, ǰװ Linux ӳ.
copy "$BOOTP-Server-IP@99:mblinux.imz" "{:-1}mblinux.imz"
       ______________________________________________________________
     
   , ֻҪصû˵Բǵĳʼű趨
   ϲŵѡ.

References

   1. mailto:mvuilleu@rembo.com
   2. mailto:yytseng@ms16.hinet.net
   3. http://cuiwww.unige.ch/info/pc/remote-boot/howto.html
   4. file://localhost/tmp/zh-sgmltools.10772/howto.sgml
   5. file://localhost/tmp/zh-sgmltools.10772/howto.dvi
   6. file://localhost/tmp/zh-sgmltools.10772/howto.ps
   7. file://localhost/tmp/zh-sgmltools.10772/howto.pdf
   8. mailto:info@bpbatch.org
   9. mailto:info@rembo.com
  10. http://www.bootix.com/
  11. http://www.tellurian.com.au/
  12. http://www.bootix.com/
  13. http://www.incom.de/products_en.shtml
  14. http://developer.intel.com/ial/wfm/tools/index.htm
  15. http://www.lancache.com/
  16. http://www.ph-ludwigsburg.de/nutzer/schmitt\_peter/
  17. http://www.br.fgov.be/RESEARCH/INFORMATICS/info/bootp.html
  18. http://www.katedral.se/system/elevsyst
  19. http://vitoria.upf.tche.br/~fred/
  20. http://www.etse.urv.es/~larinyo
  21. file://localhost/tmp/zh-sgmltools.10772/soft/sample-scripts
  22. http://www.bootix.com/
  23. http://developer.intel.com/ial/wfm/tools/pxepdk20/index.htm
  24. http://developer.intel.com/ial/wfm/tools/pxepdk20/index.htm
  25. http://cuiwww.unige.ch/info/pc/remote-boot/soft/
  26. http://www.csd.abdn.ac.uk/~jmartin/tftpd.tar.gz
  27. file://localhost/tmp/zh-sgmltools.10772/forum/
  28. file://localhost/tmp/zh-sgmltools.10772/soft/bpb-exe.zip
  29. file://localhost/tmp/zh-sgmltools.10772/soft/bpb-exe.tar.gz
  30. http://www.redhat.com/
  31. file://localhost/tmp/zh-sgmltools.10772/soft/filecache.tar.gz
  32. file://localhost/tmp/zh-sgmltools.10772/soft/nobreak.zip
  33. file://localhost/tmp/zh-sgmltools.10772/win95old/win95old.html
  34. http://www.lancache.com/
  35. file://localhost/tmp/zh-sgmltools.10772/soft/menuedit.zip
  36. file://localhost/tmp/zh-sgmltools.10772/soft/sample-scripts
  37. file://localhost/tmp/zh-sgmltools.10772/soft/codepage.zip
  38. file://localhost/tmp/zh-sgmltools.10772/soft/fonts.zip
  39. file://localhost/tmp/zh-sgmltools.10772/soft/dos/src/nobreak.zip
  40. file://localhost/tmp/zh-sgmltools.10772/soft/incomtftpdlx.tar.gz
  41. http://www.csd.abdn.ac.uk/~jmartin/tftpd.tar.gz
  42. file://localhost/tmp/zh-sgmltools.10772/soft/stftpd.tar.gz
  43. file://localhost/tmp/zh-sgmltools.10772/soft/btftpd.tar.gz
