精華區beta Linux 關於我們 聯絡資訊
※ 引述《kenduest@pagans.org (小州)》之銘言: > 小凡凡 撰寫於文章 <3S2hPh$Hrt@csie.nctu.edu.tw>... > >Dear Sir: > > 請問一下!如果 PC 上的記憶體超過 64M 的話!在 RedHat > >5.0的 OS 下要如何設定呢或是如何安裝?謝謝.... > 假設你有 128M 的 RAM : > boot: mount root=/dev/hda1 ro mem=128M > 建議你更改 /etc/lilo.conf 檔案,加入 append="mem=128M" 的敘述, ^^^^^^^^^^^^^^^^ > 然後執行 lilo -v -v -v 做更新即可. 直接設成mem=128M可能會有問題,詳細資料列於下方。 以下是從 http://www.linux.org.tw 的 BootPrompt - how to 中文版 剪一段下來 3.3 與記憶體管理有關的參數 下列參數會改變 linux 偵測或處理系統實體及虛擬記憶體的方式。 `mem=' 參數  這個參數有兩個目的:原先的目的是指定機器所安裝的記憶體數量 (如果你想 限制 linux 能使用的記憶體數量可以指定一個較小的值)。 第二個(很少用)目的 則是指定 mem=nopentium 以便告訴 linux 核心不要使用 4MB 分頁表(page table)這個 效能特性。 在個人電腦規格中, 原先定義回傳安裝記憶體數量的基本輸出入呼叫被設計成最 多只能回報最多 64MB。 (是的,另一個缺乏遠見的設計,就像 1024 磁簇的磁碟 限制...哎。) Linux 在啟動時會使用此基本輸出入呼叫以確定安裝的記憶體數 量。 如果你安裝的記憶體超過 64MB,可以用這個啟動參數告訴 Linux 你有多少記 憶體。 下面引用 Linus 對 mem= 參數的說明。 ”核心會接受任何你所給予的 `mem=xx' 參數,而如果它發現你騙它, 那它遲早一 定會當的很難看。 這個參數指示可以定址的最高記憶體位址,所以, 例如 `mem=0x1000000' 表示你有 16MB 的記憶體。 對擁有 96MB 的機器而言此值為 `mem=0x6000000'。 注意注意注意: 某些機器可能會使用最上層(top)的記憶體作為基本輸出入系統的快取等等一類用 途, 所以你可能並非實際擁有 96MB 的可定址空間。反之亦然: 某些晶片組會將基本輸出入系統涵蓋的實體記憶體區域對應(map)到最上層記憶體 後面, 所以記憶體最上層實際上可能是 96MB + 384kB。 如果你告訴 linux 的記憶 體比它實際上擁有的還多,那就會出狀況:也許不會立刻出事, 但最後一定會發 生。” 注意,此參數並非一定得是十六進位型態, 而且可以使用 `k' 與 `M'(大小寫無 關)字尾分別指定千位元組以及百萬位元組。 (`k' 會把你給的值旋轉(shift) 10 位 元,而 `M' 會旋轉 20 位元。) 上述警告依然沒變,沿上例, 一台 96MB 的機器也 許可以設 mem=97920k 而無法使用 mem=98304k 或 mem=96M。 -- ※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: g864322.CHING.AB.nthu.edu.tw