我仍在努力这个问题。这个新问题是一个不同的问题,所以我认为发布一个新问题会很好。这是正确的协议吗,还是我应该编辑另一个问题?
我在东芝 Satellite 笔记本电脑上运行 Ubuntu 10.04,内核为 2.6.32-22-generic。当我进入 GRUB 菜单时(我还安装了 Ubuntu 9.10),我可以选择要启动哪个内核。我使用向下滚动到我想要的内核,然后按“e”,我希望能够输入mem=1024m
并强制内核使用这么多内存。但是当我cat /proc/meminfo
使用此参数启动后运行或查看进程管理器时,我仍然看到所有 RAM:~2 GB。
我是否错误地使用了此启动参数?启动配置(在我添加任何内容之前)如下所示:
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set 10270f21-1c42-494b-bd3f-813c23f6d\
518
linux /boot/vmlinuz-2.6.32-22-generic root=UUID=10270f21-1c42-494b-b\
d3f-813c23f6d518 ro quiet splash
initrd /boot/initrd.img-2.6.32-22-generic
我这样做的方法是,我在mem=1024m
最后一行后面添加了并按Ctrl+ X(Emacs 保存并启动内核),然后系统启动了。
我尝试将其添加mem=1024m
到此列表的末尾和开头,但似乎并没有改变 RAM 分配。
答案1
对于使用 Grub2 的 Ubuntu 和基于 Debian 的安装,你不应该编辑/boot/grub/grub.cfg直接。该文件通过运行更新 grub命令,它会在不同时间自动发生(例如在安装新的内核映像时)。
相反,您需要将内核命令行选项添加到GRUB_CMDLINE_LINUX或者GRUB_CMDLINE_LINUX_DEFAULT中的变量/etc/默认/grub:
# these options don't get added to recovery boot entry
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
# these options get added to both standard and recovery boot entries
GRUB_CMDLINE_LINUX="var1 var2 mem=1024m"
完成编辑后,请不要忘记生成一个包含更改的新 Grub 菜单:
sudo update-grub
答案2
显然,参数位于Linux的线:
linux /boot/vmlinuz-2.6.32-22-generic root=UUID=10270f21-1c42-494b-b\ d3f-813c23f6d518 ro quiet splash
因此新的启动参数行将是:
linux /boot/vmlinuz-2.6.32-22-generic root=UUID=10270f21-1c42-494b-b\ d3f-813c23f6d518 ro quiet splash mem=1024m
编辑- 我刚刚查看了 Stack Overflow,发现这个帖子。我很抱歉自己回答了自己的问题。我通常在遇到难题时提出问题,然后继续努力,所以有时我会比 SU 先找到答案。我这样做不是为了名誉。只是有时会发生这种情况。
答案3
难道不应该是:
mem=1024M
(注意大写的 M?或者这无所谓?)
或者:
mem=1024mb
我只是好奇,因为我在研究控制记忆的方法时偶然发现了这篇文章。
我一直在使用mem=1024mb
,并将以下内容添加到/etc/default/grub
:
GRUB_CMDLINE_LINUX="mem=1024mb"
然后运行:
update-grub
答案4
这些选项被添加到标准和恢复启动项中:
GRUB_CMDLINE_LINUX="var1 var2 mem=1024m"
上面这一行的正确用法如下:
GRUB_CMDLINE_LINUX="mem=1024MB"