{"id":653,"date":"2016-02-20T22:27:13","date_gmt":"2016-02-20T22:27:13","guid":{"rendered":"http:\/\/www.pasko.net\/wordpress\/?p=653"},"modified":"2016-02-20T22:27:13","modified_gmt":"2016-02-20T22:27:13","slug":"redhat-6-5-6-7-vs-dell-poweredge-r430-serial-console","status":"publish","type":"post","link":"https:\/\/www.pasko.net\/wordpress\/2016\/02\/20\/redhat-6-5-6-7-vs-dell-poweredge-r430-serial-console\/","title":{"rendered":"Redhat 6.5-6.7 vs Dell Poweredge R430 serial console"},"content":{"rendered":"<p id=\"top\" \/>Situation, normal day at work, need to port a working on a Dell 620r serial console friendly kickstart image to updated hardware, in this case a Dell R430.<\/p>\n<p>I&#8217;m working over the integrated Dell serial console(ssh-&gt;idrac) with no external serial connectivity.<\/p>\n<p>I expect the port\u00a0to take about 2 hours, I am very wrong.<\/p>\n<p>The installation via PXE + kickstart works fine, serial output is seen throughout, BUT upon reboot. The system is bricked and non-bootable. The system POSTs, then fails to show a grub boot menu and hangs indefinitely. \u00a0I PXE netbooted then examined the disks. The installation looks good, MBR looks good. grub.conf looks good.<\/p>\n<p>After digging around on the internet, I found I was not the only person running into this:<\/p>\n<p>https:\/\/access.redhat.com\/discussions\/2136671<\/p>\n<p>This is the postmorten of what I found.<\/p>\n<p><strong>TL;DR<\/strong><\/p>\n<p>Default behavior or Redhat 6.5&#8217;s Anaconda installer leaves a grub bootloader configuration which causes bios\/serial interaction conflict. The result of this conflict is a non-bootable system. Tweaking the installed grub.conf in kickstart&#8217;s post-installation allows for a workaround.<\/p>\n<p><strong>The Longer Version<\/strong><\/p>\n<p>No matter what bios COM settings were selected, it seemed post kickstart, grub.conf would contain serial &#8211;unit=1. The Documentation confirms this &#8211;unit=1 setting on pages 131-132 at: http:\/\/topics-cdn.dell.com\/pdf\/idrac8-with-lc-v2.05.05.05_User&#8217;s%20Guide_en-us.pdf. With &#8211;unit=1, the system would be unbootable with a message of &#8216;Booting from Hard drive C:&#8217; Then nothing regardless of bios serial COM settings.<\/p>\n<p>Further reading suggested grub.conf would be happier with only &#8216;console&#8217; on the grub.conf terminal line, rather than &#8216;serial console&#8217; which was the post kickstart installed option.<\/p>\n<p>https:\/\/wiki.nikhef.nl\/grid\/Serial_Consoles<\/p>\n<p><em>&#8220;Grub essentially should see a single console, called &#8220;console&#8221;, as the BIOS will take care of sending any output also to the serial line. If you would configure grub now to also talk to the serial (SoL) port, they&#8217;ll fight for the input, and you will have to wait for a very, very long time. Actually, you can wait forever, infinitely long.&#8221;<\/em><\/p>\n<p>Tweaking both the &#8216;serial &#8211;unit=&#8217; setting and the &#8216;terminal&#8217; line yielded a working grub.conf. With this tweaked grub.conf, serial console shows boot time output over serial console, the kickstart output over serial console, and an installed r430 which will boot.<\/p>\n<p><strong>Difference between working grub.conf and Kickstart generated grub.conf<\/strong><\/p>\n<p>diff grub.conf.works grub.conf.ORIG<br \/>\n&lt; serial &#8211;unit=0 &#8211;speed=115200<br \/>\n&lt; terminal &#8211;timeout=2 console &#8212; &gt; serial &#8211;unit=1 &#8211;speed=115200<br \/>\n&gt; terminal &#8211;timeout=5 serial console<\/p>\n<p><strong>The working bits<\/strong><\/p>\n<p>&#8211; BIOS config<br \/>\n&#8211; PXE menu config<br \/>\n&#8211; Kickstart append lines<br \/>\n&#8211; Kickstart grub.conf %post tweaking<br \/>\n&#8211; Complete r430 working grub.conf<\/p>\n<p><strong>BIOS config<\/strong><\/p>\n<p>There were a couple of BIOS configurations which in conjunction with kickstart\/pxe menu settings and %post tweaks would work with the r430s, one on COM1, one on COM2. The below config works, and is most similar to our previous Dell configurations.<\/p>\n<p>\/admin1-&gt; <em><strong>racadm get bios.SerialCommSettings<\/strong><\/em><br \/>\n[Key=BIOS.Setup.1-1#SerialCommSettings]<br \/>\nConTermType=Vt100Vt220<br \/>\nExtSerialConnector=Serial2<br \/>\nFailSafeBaud=115200<br \/>\nRedirAfterBoot=Enabled<br \/>\nSerialComm=OnConRedirCom2<br \/>\nSerialPortAddress=Serial1Com1Serial2Com2<\/p>\n<p><strong>PXE menu config<\/strong><\/p>\n<p>label tstr430<br \/>\nmenu label tstr430<br \/>\nkernel media\/rhel6u5\/images\/pxeboot\/vmlinuz<br \/>\nappend initrd=media\/rhel6u5\/images\/pxeboot\/initrd.img ks=http:\/\/192.168.0.240\/r430tstsimple.cfg ksdevice=eth0 console=ttyS1,115200 biosdevname=0<\/p>\n<p><strong>Kickstart append lines<\/strong><\/p>\n<p>bootloader &#8211;location=mbr &#8211;driveorder=sda<\/p>\n<p>This was sensitive. Adding a bootloader &#8211;append with &#8220;console=ttyS1&#8221; per our previous kickstarts put multiple console= lines in the resultant grub.conf&#8217;s kernel append lines. This would net a non bootable system.<\/p>\n<pre># old settings were\n# bootloader --location=mbr --driveorder=sda --append=\"console=ttyS1 biosdevname=0\" \n# ^^^^ This would fail<\/pre>\n<p><strong>Kickstart grub.conf %post tweaking<\/strong><\/p>\n<p>From the %post section of the kickstart, make sure grub.conf had the proper terminal and serial lines.<\/p>\n<p>cp \/boot\/grub\/grub.conf \/boot\/grub\/grub.conf.ORIG<br \/>\nsed -i &#8216;s\/^terminal.*\/terminal &#8211;timeout=2 console\/g&#8217; \/boot\/grub\/grub.conf<br \/>\nsed -i &#8216;s\/^serial.*\/serial &#8211;unit=0 &#8211;speed=115200\/g&#8217; \/boot\/grub\/grub.conf<\/p>\n<p><strong>Complete r430 working grub.conf<\/strong><\/p>\n<p>Important bits in bold and italic.<\/p>\n<p>Having multiple console= lines in grub.conf would result in bios+serial confict and a non booting system.<\/p>\n<p>default=0<br \/>\ntimeout=5<br \/>\n<em><strong>serial &#8211;unit=0 &#8211;speed=115200<\/strong><\/em><br \/>\n<em><strong> terminal &#8211;timeout=2 console<\/strong><\/em><br \/>\ntitle Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)<br \/>\nroot (hd0,0)<br \/>\nkernel \/vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=fd18b121-a814-4b67-8475-96148770db91 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto<em><strong> console=ttyS1,115200<\/strong><\/em> rd_NO_LVM rd_NO_DM<br \/>\ninitrd \/initramfs-2.6.32-431.el6.x86_64.img<\/p>\n<p><strong>For reference, the r430 tested<\/strong><\/p>\n<p><strong>Hardware<\/strong><\/p>\n<p>Dell PowerEdge r430<br \/>\nPerc 730 Mini raid controller<br \/>\n2 x 480GB SSDs<br \/>\n4 x 6TB HDDs<\/p>\n<p><strong>Firmware<\/strong><br \/>\nSystem BIOS Version 1.5.4<br \/>\nOS Version Redhat 6.5 (Santiago) Kernel 2.6.32-431.1.2.el6.x86_64<br \/>\nPerc 730 mini<br \/>\nPackage Version 25.3.0.0016<br \/>\nFirmware Version 4.250.00-4402<br \/>\nNVDATA Version 3.1411.00-0019<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Situation, normal day at work, need to port a working on a Dell 620r serial console friendly kickstart image to updated hardware, in this case a Dell R430. I&#8217;m working over the integrated Dell serial console(ssh-&gt;idrac) with no external serial &hellip; <a href=\"https:\/\/www.pasko.net\/wordpress\/2016\/02\/20\/redhat-6-5-6-7-vs-dell-poweredge-r430-serial-console\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[6,1],"tags":[],"class_list":["post-653","post","type-post","status-publish","format-standard","hentry","category-nerd","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.pasko.net\/wordpress\/wp-json\/wp\/v2\/posts\/653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pasko.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pasko.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pasko.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pasko.net\/wordpress\/wp-json\/wp\/v2\/comments?post=653"}],"version-history":[{"count":0,"href":"https:\/\/www.pasko.net\/wordpress\/wp-json\/wp\/v2\/posts\/653\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.pasko.net\/wordpress\/wp-json\/wp\/v2\/media?parent=653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pasko.net\/wordpress\/wp-json\/wp\/v2\/categories?post=653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pasko.net\/wordpress\/wp-json\/wp\/v2\/tags?post=653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}