将nokaslr添加到内核命令行

时间:2017-10-13 10:53:53

标签: linux debugging linux-kernel gdb qemu

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

  

- 在访客上安装该内核。

     
    

+ - 在访客上安装该内核,通过添加" nokaslr"关闭KASLR。至      内核命令行。

  

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

1 个答案:

答案 0 :(得分:2)

如何将命令行传递给内核取决于您如何启动它。如果您指示QEMU使用-kernel-initrd选项直接启动特定内核,则需要-append选项指定命令行(如果已存在,则将nokaslrlinux分开如果需要,请根据shell的要求确保用引号括起整个内核命令行。

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