Linux 版 (精华区)

发信人: howdoit (教练让我上场!!!), 信区: Linux
标  题: 只能使用128MB内存中的64MB
发信站: 哈工大紫丁香 (Tue May 18 08:49:56 1999), 转信

《Linux公报》……让Linux更富魅力!

                 The Answer Guy 

               By James T. Dennis, answerguy@ssc.com

          Starshine Technical Services, http://www.starshine.org/

                    翻译:立宇[xuliyu@263.net]

          只能使用128MB内存中的64MB

来自:Terry Singleton  1998年12月17日 星期四 

        当我使用admin工具”top”时系统显示出内存只有64MB,top显

示结果如下: 

      11:00 am  up 4 days,23:39,2 users, load average: 0.07,0.03,0.00 

      40 process :39 sleeping ,1 running ,0 zombie , 0 stopped 

      CPU states: 0.3% user , 0.1% system ,0.0% nice ,99.6 idle 

      Mem : 64168 K av ,57420 K used , 6748 K free , 19820 K shrd , 19816 K

buff 

      Swap:104384K av, 24 K used ,104360 K free  23932K cached 

  

     我的系统有128MB内存却只显示了64MB?在其他两台内存大于64MB

的Linux服务器也是这样,运行的系统是Red Hat Linux5.1,我该做些什么

以告诉系统内存大于64MB? 重整内核? 

  

             这是一个常见的问题,BIOS标准不支持大于64MB内

      存申请(Int 12h?),对于不同的芯片组实现的机制也很不一

      样,并且某些是”危险的”(由于不同的API/BIOS会使某些

      系统挂起). 

      所以,直到最近的版本(2.0.36?)为止,Linux在大多数系统

      中并不支持自动检测大于64MB的内存.你可以越过内核参

      数,如同我早些的文章或LILO的man手册所指出,你可以在

      /etc/lilo.conf加入append=directive来向Linux kernel

      传输参数,或在LILO提示符 (或在LOADLIN.EXE命令行上)手

      工加入这些参数. 

          在lilo.conf中加入以下命令行: 

                append=”mem=128M” 

          用更新的2.0.36或2.1.x kernel你就用不着做这个工

      作了(新的代码可以自动检测所有的芯片组).给程序员的小

      诀窍----如果你想确定你的代码能够在有限的内存里运行,

      可以使用mem=更小的参数来使kernel运行在更小的内存里 

      注意: 

      如果在参数表达式里忘了加”M”,kernel将按照bytes进行

      RAM值的设置.(后果可怕)

          只能使用128MB内存中的64MB

来自:Terry Singleton  1998年12月17日 星期四 

         谢谢Jim .我加入了以上建议的命令行,但内存仍旧为64MB. 

  

              抱歉,我应当提供更多的信息.你应当将

      append=directive加入到每次的应用前.(如果你是一个程

      序员,代码测试员或复查员,你就应当准备两套lilo.conf以

      备小内存架构之需,这样你就可以在不同内存范围里测试你

      的包) 

       

         以下是我的命令行: 

     boot=/dev/sda 

     map=/boot/map 

     install=/boot/boot.b 

     prompt 

     timeout=50 

     append=”mem=128M” 

      image=/boot/vmlinuz-2.0.34-0.6 

            label=linux 

            root=/dev/sda1 

            initrd=/boot/ibitrd-2.0.34-0.6.img 

            read-only 

应当为: 

     boot=/dev/sda 

     map=/boot/map 

     install=/boot/boot.b 

     prompt 

     timeout=50 

     image=/boot/vmlinuz-2.0.34-0.6 

            label=linux 

            root=/dev/sda1 

            initrd=/boot/ibitrd-2.0.34-0.6.img 

            read-only 

     append=”mem=128M” 

              (记住重新运行 /sbin/lilo来读取这个config文

      件并建立新的启动模块和映象). 

      随之这些新的命令行就会起作用,你的问题也就解决了. 

      我可以理解人们对于修改启动模块和分区表(一种数据结构

      同MBR,也就是开机启动模块)的犹豫不决,因为如果出现错

      误就会导致系统根本不能启动.无论如何, 在你对

      /etc/lilo.conf作修改之前,备份好自己的工作,准备好一

      张rescue软盘并练习使用是十分明智的. 

       

                       版权所有 (C) 1999 NJLUG

           出版于第36期《Linux公报》1999年1月 中文版第三期

  

                             


--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.968毫秒