我试图研究使用 QEMU 调试内核。我最初尝试过,但由于没有虚拟文件系统而失败。这篇文章的答案表明应该有一个虚拟文件系统。但是它没有讨论如何创建用于内核调试的虚拟 FS 以及如何将其传递给 qemu。你能帮我吗?
我正在尝试使用自定义内核在虚拟磁盘映像中运行发行版,以便我可以试验和调试内核。我按照这个制作了一个磁盘映像,然后将 Debian 安装到它上面。现在我尝试使用以下命令运行发行版:-
qemu-system-i386 -hda debian.img -kernel ../linux-3.6.11/arch/i386/boot/bzImage -append "root=/dev/sda1"
Run Code Online (Sandbox Code Playgroud)
令我失望的是,它只是给了一个内核恐慌-不同步:VFS:unable to mount root fs on unknown-block(8,1)。我该如何解决这个问题?就内核调试而言,我是否走在正确的道路上?
我正在尝试记录由于limits.conf
. 我最初的计划是使用审计系统来完成。这个想法是在limits.conf中跟踪与限制相关的系统调用失败的地方。
然而,这种方法的问题在于,无法跟踪 CPU 时间的违规,因为该违规不涉及系统调用的失败。在 CPU 时间的情况下,会发生一件事是违反 CPU 时间的程序将被交付一个 SIGXCPU。
所以我的问题是: