| 
 | 
 
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册 
 
 
 
×
 
这个也是偶翻译的,有错的地方请指出。 
 
 
LOADLIN 用户手册                                                  96-04-28 
于2006年3月2日翻译                   by liufirst  刘一 
============================================================================ 
 
   LOADLIN v1.6 (C) 1996 Hans Lermen (lermen@elserv.ffm.fgan.de) 
 
   本程序为自由软件。这意味着你可以重新发布它或者修改它。它遵守GNU(General Public License),所有版本由Free Software Foundation(自由软件联盟)发行。 
 
   我希望这个程序有用,但是对任何目的的销售没有什么担保,包括暗示 
性的担保,在GNU条款里有更详细的内容。 
 
 
   你会随此软件得到一个GNU条款,如果没有,写信给自由软件联盟 
the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 
 
 
============================================================================ 
 
 
 
      目录 
      ======== 
 
1.    为什么使用LOADLIN 
 
2.    LOADLIN的特点 
 
3.    如何使用LOADLIN 
3.1.  你需要什么 
3.2.  从DOS命令行启动 
3.2.1 快速开始 
3.2.2 帮助 
3.2.3 使用批处理文件(.bat)文件开始linux 
3.2.4 装入Ramdisks一个新的内核 
3.2.5 使用老内核软盘和Ramdisks ( Linux < 1.3.48 ) 
3.2.6 系统规定 
3.3   从CONFIG.SYS启动 
3.3.1 CONFIG.SYS(DOS)的例子 
3.3.2 CONFIG.SYS (Windows 95)的例子 
3.3.3 CONFIG.SYS句法规定 
 
4.    LOADLIN命令行参数 
4.1   命令行的最大长度 
 
5.    如果有问题 
5.1   检测到V86的问题 
5.2.  排错时的输出(-v,-t,-d参数) 
 
6.    参数和错误报告发送到哪里 
 
7.    荣誉 
 
 
                         --------- +++  -------- 
 
 
 
1.    为什么使用LOADLIN ? 
      ================= 
 
如果你在linux之外有可启动的DOS分区,LOADLIN是从硬盘启动linux最安全的方法, 
大多数新学linux的人没有耐心去看完LILO文档,不正确的配置LILO会导致 
      DOS不可启动(MBR被重写了,'fdisk /MBR'通常不能解决),对于没有耐心 
      的人,LOADLIN则是启动linux最好的办法 
 
      LOADLIN不需要安装,内核镜象(images)只要在任何DOS可存取的分区, 
      即使是网络驱动器,这也让LOADLIN成为一个出色的工具,如果在系统崩溃后 
      启动,可从备份的文件系统中恢复(这之后必须要运行LILO,但要先启动,对吧) 
 
很多Cdrom生产商已经看到了从LOADLIN启动linux安装的好处,因为它不从linux 
启动,如果有了DOS或者是WIN95,使用DOS开始linux并不坏。使用LOADLIN 可以 
不需要linux启动盘而直接启动linux 
 
                         --------- +++  -------- 
 
 
2.    LOADLIN的特点 
      =================== 
 
LOADLIN适应不同版本的DOS,很少有限制。它使用extended memory,还可以 
装入很大的内核(bzImages),或者直接使用ramdisk镜象(initrd),  
bzImage+initrd标准是被LILO作者和LOADLIN作者(我)联合开发的,他们也是 
1.3.73以后版本的官方内核作者。 
 
      它也可以适就从UMSDOS-based系统启动的DOS驱动器. 
 
一些选项(-v, -t, -d)产生排错信息,如果有问题,你可以找找看它们是不是由 
LOADLIN引起的 
 
      LOADLIN也可以被虚拟的86模式装入,使用EMS驱动时通常是正常的 
 
 
                         --------- +++  -------- 
 
 
 
3.    如何使用LOADLIN 
      ================== 
 
      注意: 
 
LOADLIN是一个逻辑装入系统的工具,它会导致DOS完全被linux取代,当需要返回 
DOS时,需要在linux下使用reboot命令。 
 
 
3.1.  需要什么 
      ------------- 
 
      1. 一个386或者更好的CPU 
         DOS或者WINDOWS95已经装在系统里了 
 
      2. 任何压缩的linux内核镜象文件(zImage, bzImage). 
         注意: zImage是一个古老的内核压缩模式, bzImage 比较新( kernel version >= 1.3.73),  
         它可以压缩到1M大小, 这样未压缩的内核会有2M大 
         下面的例子我们只说zImage,如果是bzImage你可以照样替代。 
 
      3. LODLIN16.TGZ压缩包, 它包括: 
 
          ( 注意:这些是DOS文件 ) 
          LOADLIN.EXE 
          DOC\MANUAL.TXT (this file) 
          参数文件例子 DOC\TEST.PAR 
          DOC\PARAMS.DOC 
 
 
3.2.  从MSDOS启动 
      --------------------------- 
 
3.2.1 开始 
      ----------- 
 
      下面我假定你将LODLIN16.TGZ解压到C:\LOADLIN. 
 
      在DOS提示符下你可以输入: 
 
         C:> CD \LOADLIN 
         C:\LOADLIN> LOADLIN zimage /dev/hdb1 ro vga=ask 
 
      或者想输入一个大内核,而且使用RAM disk: 
 
         C:\LOADLIN> LOADLIN bzimage /dev/ram rw initrd=diskimage 
 
      如果你的参数长度大于128个字符,你可以用文件: 
 
         C:\LOADLIN> LOADLIN @params 
 
      "test.par"是一个例子,看看它吧。 
 
      关于命令行参数的详细说明在PARAMS.DOC文件里,但这个文件有点过时了, 
一个更好的说明在 
          http://sunsite.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html 
      or 
          http://rsphy1.anu.edu/~gpg109/BootPrompt-HOWTO.html 
但这两个链接好象打不开。 
 
3.2.2 帮助 
      ---------- 
 
      可以获得在线帮助,输入: 
 
         C:\LOADLIN> loadlin  
 
      或者,更详细 
 
         C:\LOADLIN> loadlin | more  
 
 
      它输出如下(在我的电脑里) .... 
 
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
      LOADLIN v1.6 (C) 1994..1996 Hans Lermen  
 
      USAGE: 
        LOADLIN @params 
        LOADLIN [zimage_file] [options] [boot_params] 
          without any params, LOADLIN displays this help message. 
          @params: 
             params is a DOS file containing all other options 
          zimage_file: 
             DOS file name of compressed Linux kernel image 
          options: 
             -v        verbose, show information on params and configuration 
             -t        test mode, do all but starting Linux, also sets -v 
             -d file   debug mode, same as -t, but duplicates output to "file" 
             -clone    ( Please read MANUAL.TXT before using this switch! ) 
             -n        no translation for root=/dev/... 
             -txmode   switch to textmode 80x25 on startup 
             -noheap   disable use of setup heap 
             -wait=nn  after loading wait nn (DOS)ticks before booting Linux 
             -dskreset after loading reset all disks before booting Linux 
          boot_params: 
             root=xxx  filesystem to be mounted by Linux as "/" 
                       (string passed unchanged to the kernel) 
                  xxx = hex number (e.g. root=201 for /dev/fd1) 
                      = /dev/mmmn (e.g. root=/dev/hda2) 
                             mmm = fd,hda,hdb,sda,sdb... 
                             n   = 1..10.. decimal 
             ro        mount "/" readonly 
             rw        mount "/" read/write 
             initrd=x  (for kernels > 1.3.72) load file x into /dev/ram. If FS in x 
                       contains /linuxrc, execute it, and then remount to root=xxx. 
                       If root=/dev/ram, just load, bypass execution of /linuxrc 
 
          for more boot params see PARAMS.TXT or Paul Gortmakers HOWTO: 
            http://sunsite.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html 
            http://rsphy1.anu.edu/~gpg109/BootPrompt-HOWTO.html 
 
      Your current DOS/CPU configuration is: 
        load buffer size: 0x0082D000 VCPI, setup buffer size:  0x3E00 (reloc setup) 
        lowmem buffer:    0x0006DC00 (part of load buffer) 
        total memory:     0x01000000 
        CPU is in V86 mode 
        SetupIntercept: YES, patching setup code 
        stat4: VCPI_present, physmap=logmap, all OK for switch to realmode 
        input params (size 0x0000): 
 
        LOADLIN started from DOS-prompt 
 
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
      NOTE: All LOADLIN options (such as -t,... ) MUST come before 
            the Linux command_line params 
注意,所有的loadlin参数必须在linux参数前面 
 
3.2.3 从批处理启动loadlin 
      -------------------------------------------- 
 
大多数MSDOS用户开着smartdrv,如果"write-behind"写缓存开着, 
      在LOADLIN运行前程序要把该写的写到硬盘里。 
 
      例子: 
 
       C\LOADLIN> smartdrv /C    这句可以让缓存内容写入硬盘 
       C\LOADLIN> loadlin .... 
 
 
      用批处理是个聪明的方法: 
 
      +-------------------- start of LINUX.BAT 
      | 
      |  SMARTDRV /C 
      |  C:\LOADLIN\LOADLIN C:\LOADLIN\ZIMAGE root=/dev/hdb2 ro vga=3 
      | 
      +-------------------- end of LINUX.BAT 
 
 
      这样你可以输入: 
 
       C> linux 
 
      ... 这样就开始了 
 
      这个例子随机就有 
 
 
 
3.2.4 将新的内核载入到内存虚拟盘(ramdisks)中 
      ----------------------------------- 
 
如果你使用1.3.72版之后的内核, LOADLIN可以直接将内核载入到内存虚拟盘中, 
并且让Linux把内存虚拟盘(ramdisk (/dev/ram))mount成根文件系统。这个文 
件必须包含linux支持的文件系统,比如minix或者ext2,这个技术叫做'initrd',它可以 
更灵活的从软盘载入。可能会有以下情况: 
 
      A) 你只想载入ramdisk并把它mount成root FS. 
 
         C\LOADLIN> loadlin zimage root=/dev/ram rw initrd=imagefile 
 
         你将会看到两个LOADING....过程,一个是内核,一个是ramdisk. 
 
B) 你想载入并且mount ramdisk,只是想解压一个大一点的系统,内核只支持很 
少的设备。这样,ramdisk镜象的内容必须包括一个可执行的'/linuxrc',它可以通过 
(via insmod)载入内核模块。/linuxrc运行完后, root FS重新通过root=/dev/...为设备 
mount后使用,或者对于那个设备,/linuxrc已经选择。这个技术的细节在linux/Documentation/initrd.txt,它是内核资源的一部分,这样可以这样输入: 
 
         C\LOADLIN> loadlin zimage root=/dev/hda1 ro initrd=imagefile 
 
      不用initrd 方法,例如_not_ LOADLIN载入了ramdisk,但是内核从软盘启动, 
在1.3.48版有点修改,它现在是这个样子: 
 
         C\LOADLIN> loadlin zimage root=/dev/fd0 rw load_ramdisk=1 
 
或者,你想在插入软盘前有一个提示: 
  
         C\LOADLIN> loadlin zimage root=/dev/fd0 rw load_ramdisk=1 prompt_ramdisk=1 
 
      Ramdisk的大小是动态分配的。 
      注意: 在所有情况下,ramdisk镜象都是被压缩的 (gziped) 
 
 
 
3.2.5 软盘和ramdisk使用老版linux( Linux < 1.3.48 ) 
      ----------------------------------------------------------- 
 
      如果LOADLIN发现ramdisk=xxxx和root=/dev/fdx一起,它会把内核镜象载入到内存, 
但是,在此之前,Linux会提示插入一张含有内核的软盘,这使你可以让我们用同一张软盘 
启动DOS,也可以开始LOADLIN。 
 
当然,这是两张软盘(a two-floppy boot)启动,当Linux变得越来越大,一张盘可 
能存不下内核文件和root文件系统了,使用LOADLIN,不需要任何想象力或者花招,就可以 
把更多的文件载入。 
 
      例子: 
 
        LST版本只随3.5寸软盘发行,但是你却只有5.25寸的A:盘 
        Slackware 3.0有一个很大的目录树和许多可能用到的驱动 
        使用LOADLIN只需要有内核镜象的盘和一个合适的root盘 
 
 
3.2.6 系统规定 
      ------------------ 
 
LOADLIN-1.6对使用新的内核只有非常少的规定,因为内核现在支持LOADLIN。1.6版改 
善了很LOADLIN-1.5版的问题,以下*开头的部分只在老版本内核中使用(不支持loadlin) 
 
      *  必须有足够内存存放压缩的内核镜象(LOADLIN开始到090000h). 
 
      -  如果是新版内核,只需有足够的extended/XMS/VCPI内存临时存放镜象文件,(和最终的ramdisk镜象) 
 
      -  LOADLIN的"load buffer size"提供(你所有的)详细输出。 
 
      *  setup程序和LOADLIN自身在090000h ... 09B000h之间,因此你必须有640 K基本内存。 
 
      -  使用Linux 1.1.43,setup程序不适合2 K,这样,它会变化大小,随时可能会变大, 
现在的(1.3.91)setup是9 * 512字节长,LOADLIN则有31 * 512字节,它会有点慢。 
 
      -  LOADLIN的"load buffer size"提供(你所有的)详细输出。 
 
      *  剩下的12 Kbyte在640 K的最上面,它最有希望是BIOS和载入到高端的驱动数据 
 
 
      -  DOS程序中可以工作在实模式下,或者是V86模式(虚拟86模式,在386以上机) 
 
         Linux则运行在保护模式下,内核则必须有0级特权(P0,超级用户模式),然而, 
在V86模式下,如果V86服务器不允许的话,不可能切换到P0级(as is the case with DPMI). 
 
         因此: 
         - 必须在86实模式下(没有EMS驱动,没有WINDOWS,没有Windows 95图形模式). 
             或者 
         - 必须在EMS驱动中有VCPI服务,仍就不能运行WINDOWS 或 Windows 95 
           使用EMM386,别加NOVCPI选项, 但NOEMS则没问题。 
 
         VCPI允许P0并且被大多数EMS驱动支持,但别在MS-WINDOWS或Windows 95下 
 
-        物理内存到虚拟内存映射必须同样对第1个640K使用,一般设置都是这样,但也可 
以禁止,典型的EMS驱动选项如下: 
 
           EXCLUDE=1000-A000     (for 386MAX) 
             or 
           B=A000                (for EMM386.EXE, 通常不需要). 
 
 
         看看你的EMS手册 
         别担心,少了什么,LOADLIN会提示的。 
 
         注意: 
 
         或许你的VCPI server在进行保护模式时做了垃圾内存收集,因此要有耐心,特别 
是系统内存很大时。 
 
      -  当然,别在Linux DOSEMU(linux的dos模拟器)里执行LOADLIN,如果这样做,结果自然是DOS模拟器被终止掉,因为它没有VCPI服务,你的文件系统也仍就是完整的。 
 
3.3   从CONFIG.SYS启动 
      ----------------------- 
 
从DOS 6.0启动时,可以配置多重启动,这被CONFIG.SYS指针管理,因此,这个地方设置LOADLIN/Linux启动很好。即使准备启动DOS,也可以以后再启动linux,可以从DOS命令或者是 
批处理文件。 
 
 
3.3.1 CONFIG.SYS文件的例子(DOS) 
      --------------------------------- 
 
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
      SWITCHES=/F 
 
      [MENU] 
      menuitem=DOS, DOS boot 
      menuitem=LINUX_1, LINUX boot 
      menuitem=LINUX_2, LINUX boot via param file 
      menuitem=LINUX_3, LINUX boot via param file, but overwrite root device 
      menuitem=LINUX_4, Create a dump file for bug report 
 
 
      [DOS] 
      device=c:\dos\himem.sys 
      device=c:\dos\emm386.exe 2048 ram 
      DOS=HIGH,UMB 
      SHELL=C:\COMMAND.COM C:\ /e:1024 /p 
      ...   etc.,  etc.,  etc. 
 
 
      [LINUX_1] 
      shell=c:\loadlin\loadlin.exe c:\loadlin\zimage root=/dev/hdb2 ro 
 
 
      [LINUX_2] 
      shell=c:\loadlin\loadlin.exe @c:\loadlin\linux.par 
 
 
      [LINUX_3] 
      shell=c:\loadlin\loadlin.exe @c:\loadlin\linux.par root=/dev/hdb2 
 
 
      [LINUX_4] 
      shell=c:\loadlin\loadlin.exe c:\loadlin\zimage -d c:\dump.txt root=/dev/hda1 
      rem                                            ^^^^^^^^^^^^^^ 
      rem  This writes debug information to a file ---------^ 
      rem  All is set up as usual, but Linux is not loaded and LOADLIN idles. 
      rem  CAUTION: Don't do this if you haven't a [MENU] in CONFIG.SYS, 
      rem           because you then need a DOS System floppy to boot normally. 
 
 
      [COMMON] 
      rem   Here we put any other "common" configuration stuff .... 
 
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
 
3.3.2 CONFIG.SYS例子(Windows 95) 
      ----------------------------------------- 
 
      Windows 95和Linux在同一台电脑中,需要关掉C:\MSDOS.SYS文件中的某些选项, 
 (在Windows 95中这个文件是文本文件)。 
      注意:   别在图形界面下使用LOADLIN 
改变C:\MSDOS.SYS的属性,这样它能被看到,也可以被编辑 
 
      C:\MSDOS.SYS -------------------------------------- 
      BootGUI=0 
      Logo=0 
      ... 
      --------------------------------------------------- 
 
这将避免启动到图形界面,而是进入正常的DOS提示符。 
(想进GUI,输入C:>win    ) 
      Logo=0 关闭开机画面(logo) 
有报告说,显示LOGO会使有些显卡看不到linux的画面,这样只有在它之前就启动linux 
 
      C:\CONFIG.SYS ------------------------------------- 
      [menu] 
      menuitem=W95, Boot W95 DOS 
      menuitem=LINUX, Boot Linux 
      menudefault=W95,10 
 
      [W95] 
      rem all what you need for DOS 
      ... 
 
      [LINUX] 
      shell=c:\loadlin\loadlin.exe @C:\loadlin\linuxpar.1 
 
      [COMMON] 
      rem THERE SHOULD BE NOTHING for COMMON 
      rem move all you have to W95 part 
      --------------------------------------------------- 
 
 
 
3.3.3 CONFIG.SYS句法 
      -------------------------------- 
 
1.        "shell=" 句子会被DOS转换成大写,但是Linux 参数区分大小写,LOADLIN把下面的 
参数转换成小写 
 
           root=... 
           ro 
           rw 
           mem=... 
           no387 
           single 
           auto 
           debug 
           no-hlt 
           reserve=... 
           hd=... 
           xd=... 
           bmouse=... 
           max_scsi_luns= 
 
         而且在CONFIG.SYS使用’shell=loadlin.exe @params more_params'时,所有'more_params'都会被转换成小写 
 
         下面的参数不会写到启动命令行,但会为启动转换成数值 
 
           vga=... 
           ramdisk= 
 
 
2.        可以使用参数文件,以避免大小写问题,CONFIG.SYS的例子如下: 
  
         [LINUX] 
         shell=c:\loadlin\loadlin.exe @c:\loadlin\params 
 
         可以编辑这个指定的文件,比如: 
 
         [LINUX] 
         shell=c:\loadlin\loadlin.exe @c:\loadlin\params root=/dev/other 
 
         "test.par"是这样一个例子.仔细阅读一下。 
 
 
                         --------- +++  -------- 
 
 
 
 
4.    LOADLIN命令行参数 
      =================================== 
 
注意你是否用了一个参数文件,例如 @TEST.PAR,这必须是LOADLIN命令行的第1个 
参数,其它参数,包括zImage文件,都在这个参数文件中。 
 
所有在 @.. 后的参数都在参数文件读完后再读,相同的项值会被后面的取代,参数 
文件中的第1个参数必须是内核镜象文件,如果你想改变它,就用关键字'image=',比如: 
 
         C:> loadlin @test.par image=otherfile 
 
      当Linux启动时,它把运行参数传给setup(这个程序检查最基本的硬件配置,并设定为保护模式)这个字符串命令行,将被一些著名的内置关键字检查,(is then checked for some well known compiled-in keywords.),一些用来改变内核变量,比如(mem=, root=, ro, rw, no387), 一些传给设备驱动,(比如 ether=, hd=, sound=) 一些(比如single and auto)会做为选项传给/etc/init 或者/bin/init或者/sbin/init, 看什么最先被找到). 
 
      "PARAMS.DOC"有更详细的解释。 
 
      所有不能识别的关键字,例如"keyword=value"会被设置到环境变量中("envp_init"),它也传给/linuxrc (如果你有initrd=)和/etc/init.这些环境变量可以在/etc/rc*检查,(/etc/rc.d/rc.*). 这个完整的命令行也可以通过/proc/cmdline查看。 
 
 
4.1   命令行最长有多长 
      ---------------------------------- 
 
      DOS命令行最长可以达到127 bytes (包括程序本身),使用参数文件,则可以达到2047 bytes, 但是这个字符串在一个临时的地方,必须被拷贝到内核的静态缓冲区init/main中,这使最大长度变成了256 bytes. 
      如果需要更长,可以在arch/i386/kernel/setup.c中改变COMMAND_LINE_SIZE的值。 
 
 
                         --------- +++  -------- 
 
 
 
5.    如果有问题 
      ==================== 
 
      对于上千种可能的软硬件配置,没有程序可以没问题,因此,我需要你能把你遇到的问题反馈给我。 
 
 
      但是,如果你看到问题,我需要有详细的信息,就象“我的电脑蓝屏了”就不能使我找到问题。 
      LOADLIN可以为我们产生很多信息。 
      打开-d 或者-t开关 
 
 
 
5.1   在侦测到V86时的问题 
      ---------------------- 
 
      在一些486 clones(486的克隆?),当检查到V86模式时遇到了CR0问题,它会在CPU工作在实模式下时,但有内存分页,这有可能,这即没有文档,也不被INTEL支持。可能是主板的BIOS把影子内存这样映射,或者用了那些老的奇怪的EMM管理器。也可能是不兼容486 clone,-clone开关可以跳过CR0检查,如果找到EMM管理器,就假定是V86模式。当然,EMM管理器不能真的使用分页。 
 
      另外,如果LOADLIN检查到V86,并且你又确定电脑工作在实模式下,你需要使用-f开关,强迫LOADLIN检查实模式。 
      注意: 这个选项只在这里介绍,因为它实在是太危险了。 
 
5.2.  debug信息输出(-v,-t,-d) 
      -------------------------------------- 
 
      根区载入setup被LOADLIN改变时,-v, -t or -d 选项会有输出,这些信息会在linux中看到,但-t 和 ?d,zimage文件并没有被装入, linux还没有开始。 
 
      描述: 
 
      你当前linux内核配置如下: 
        image file:       d:\tmp\1-1-47.0 |   
 
 
 
 |