将 nokaslr 添加到内核命令行

adding nokaslr to kernel commandline

我正在尝试使用 qemu 和 gdb 调试 linux 内核。问题是 gdb 不会在断点处停止。我搜索了一下,发现关闭 kASLR 可能会有所帮助,因为 kASLR 会混淆 gdb。

-- Install that kernel on the guest.

+- Install that kernel on the guest, turn off KASLR by adding "nokaslr" to the kernel command line .

现在我不知道将 nokaslr 添加到命令行是什么意思以及执行此操作的方法。有什么想法吗?

如何将命令行传递给内核取决于您如何启动它。如果您指示 QEMU 使用 -kernel-initrd 选项直接引导特定内核,那么您需要 -append 选项来指定命令行(如果它已经存在,将 nokaslr 与space 并确保根据 shell) 的要求将整个内核命令行用引号引起来。

如果这不是您的情况,那么您的 VM 中很可能是模拟 BIOS 启动加载实际内核的引导加载程序(可能是 GRUB)。根据 this,可能需要在 VM 启动时按住 Shift 键才能进入启动菜单。如果是这样,GRUB 允许用户(据我所知,暂时)编辑引导参数。在带有 GRUB 2.02 的 Ubuntu 17.04 上,我需要在要编辑的菜单项上按 "e"。然后我找到一个 linux 命令,后跟 /boot/vmlinuz... 之类的命令和内核命令行——只需将 nokaslr 放在该行的末尾,然后按 Ctrl-x 启动。