{"id":363,"date":"2010-06-21T12:50:46","date_gmt":"2010-06-21T20:50:46","guid":{"rendered":"http:\/\/www.outflux.net\/blog\/?p=363"},"modified":"2010-06-21T12:50:46","modified_gmt":"2010-06-21T20:50:46","slug":"kvm-kernel-console","status":"publish","type":"post","link":"https:\/\/outflux.net\/blog\/archives\/2010\/06\/21\/kvm-kernel-console\/","title":{"rendered":"kvm kernel console"},"content":{"rendered":"<p>I know there are a lot of ways to do this, but I just wanted to note what works for me to catch early boot Oopses in the kernel.  In virt-manager, I set up a serial device, as a &#8220;pty&#8221;.  After the VM boots, I pause in Grub, and check the VM details for the serial port (it&#8217;ll show something like &#8220;\/dev\/pts\/13&#8221;).  In another terminal, &#8220;sudo cat \/dev\/pts\/13&#8221;, and I boot the kernel with &#8220;console=ttyS0&#8221;.  When the Oops happens, I get it in the terminal instead of having it scroll off the VM&#8217;s screen.<\/p>\n<p style='text-align:left'>&copy; 2010, <a href=\"https:\/\/outflux.net\/blog\/\">Kees Cook<\/a>. This work is licensed under a <a rel=\"license\" href=\"http:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/\">Creative Commons Attribution-ShareAlike 4.0 License<\/a>.<br \/><a rel=\"license\" href=\"http:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/\"><img decoding=\"async\" alt=\"CC BY-SA 4.0\" style=\"border-width:0\" src=\"https:\/\/i.creativecommons.org\/l\/by-sa\/4.0\/88x31.png\" \/><\/a> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>I know there are a lot of ways to do this, but I just wanted to note what works for me to catch early boot Oopses in the kernel. In virt-manager, I set up a serial device, as a &#8220;pty&#8221;. After the VM boots, I pause in Grub, and check the VM details for the [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,18,14,19],"tags":[],"_links":{"self":[{"href":"https:\/\/outflux.net\/blog\/wp-json\/wp\/v2\/posts\/363"}],"collection":[{"href":"https:\/\/outflux.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/outflux.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/outflux.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/outflux.net\/blog\/wp-json\/wp\/v2\/comments?post=363"}],"version-history":[{"count":2,"href":"https:\/\/outflux.net\/blog\/wp-json\/wp\/v2\/posts\/363\/revisions"}],"predecessor-version":[{"id":365,"href":"https:\/\/outflux.net\/blog\/wp-json\/wp\/v2\/posts\/363\/revisions\/365"}],"wp:attachment":[{"href":"https:\/\/outflux.net\/blog\/wp-json\/wp\/v2\/media?parent=363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/outflux.net\/blog\/wp-json\/wp\/v2\/categories?post=363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/outflux.net\/blog\/wp-json\/wp\/v2\/tags?post=363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}