{"id":200,"date":"2008-12-03T21:39:17","date_gmt":"2008-12-04T01:39:17","guid":{"rendered":"http:\/\/www.timelordz.com\/blog\/?p=200"},"modified":"2008-12-04T18:06:45","modified_gmt":"2008-12-04T22:06:45","slug":"cobalt-xtr-my-evil-server","status":"publish","type":"post","link":"https:\/\/www.timelordz.com\/blog\/2008\/12\/cobalt-xtr-my-evil-server\/","title":{"rendered":"Cobalt XTR &#8211; My Evil Server"},"content":{"rendered":"<p>Whilst cleaning out a rack of derelict servers in our data center the other day I happened across an old box which had dual 1Ghz PIII coppermine CPUs. Ahh I thought &#8211; how nice would it be to upgrade my Cobalt XTR from a single to a dual CPU system.<\/p>\n<p>Opening up my XTR I quickly removed the &#8220;Single CPU Only. Warranty Voided if removed&#8221; sticker and slapped in both CPUs. Silly sticker.<\/p>\n<p>And so it began . . .<\/p>\n<p>Let me save you some time, if you have an XTR, don&#8217;t bother trying dual CPUs, the bottom line is it will not work. In my case it wouldn&#8217;t even POST. But the fun did not simply end there.<\/p>\n<p>After failing to get it to do other than kernel panic or freeze with both CPUs I returned to using just one. Only to discover it was now apparently bricked &#8211; it would not really power on and the LCD display would illuminate, and flicker weakly, but that is where the show ended. Great.<\/p>\n<p>I put the original CPU back in and removed the CMOS battery &#8211; thinking clearing any nonvolatile settings might be good. This did unbrick it and it would now power on at least.<\/p>\n<p>The next little discovery was it would boot the stage one Linux kernel, but then end with the error:<\/p>\n<p><span style=\"color: #3366ff;\">Kernel panic: <em>VFS<\/em>: Unable<em> <em>to mount <\/em><\/em>fs on 03:10 (some time given)<br \/>\n<\/span><\/p>\n<p>(You have to connect to the XTR via serial connection, 11500 bps &#8211; no video card. My trusty new Acer Aspire One came in quite handy for this!)<\/p>\n<p>Now this was perplexing. You see, the Cobalt does not use Grub &#8211; it actually uses an embedded Linux method which acts as the boot loaded. A Linux kernel, embedded in firmware, boots first and then boots the user OS. So why was this happening? Using the front panel controls I tried to ensure the correct boot device was specified. I just got more of the same or perhaps &#8220;missing superblock&#8221; if trying an incorrect volume, etc.<\/p>\n<p><!--more--><\/p>\n<p><a class=\"submitdelete\" onclick=\"if ( confirm('You are about to delete this post \\'Cobalt XTR - My Evil Server\\'\\n  \\'Cancel\\' to stop, \\'OK\\' to delete.') ) { return true;}return false;\" href=\"post.php?action=delete&amp;post=200&amp;_wpnonce=9fd3e632ee\">Delete\u00a0post<\/a>Perhaps the drive was bad? (We had just had a power outage so there was a possibility.) However smartctl showed the drive health to be fine. I cleaned it up with an fsck and tried again. Same result.<\/p>\n<p>Now, this was getting a bit frustrating. I Googled around and saw a post where a guy said he passed an init option to the first stage kernel. How? You can&#8217;t edit anything as that kernel is in ROM. But then I discovered  there is an option to enter a mini terminal session during the first stage Linux boot process! Who knew?<\/p>\n<p>Lo and behold &#8211; this menu offers a series of modes you can enter to configure various boot type options. By going into the &#8216;boot&#8217; menu and typing &#8216;help&#8217; I found the settings I needed:<\/p>\n<p>read_root_dev, read_boot_dev, set_root_dev and set_boot_dev were what I needed.<\/p>\n<p>I was able to set my root and boot devices to hde1 (Strongbolt calls hda hde for some strange reason) and then issue a bfd (boot from disk) and it then correctly found and loaded my OS kernel! Happiness at bringing my little Cobalt back to life!<\/p>\n<p>Wow, how esoteric! Using a serial connection and terminal emulator (putty) to access the embedded Linux console to specify the boot options so it would find my OS. Sure makes a grub.conf look like a welcome site.<\/p>\n<p>Well, the end of the story is that I did upgrade the memory using two 512MB sticks I pillaged from the derelict server in addition to the CPUs, upping it from its impressive 512MB to a grandiose 1.5GB &#8211; a nice 300% increase. And I bumped up from a 933Mhz to a 1Ghz PIII. Wow, it&#8217;s almost nearly cutting edge for 10 years ago.<\/p>\n<p>The memory will certainly come in handy. I find it amazing how we offer dedicated servers to clients with 2.8 Dual Xeons, or dual Quad Core P4s with 8 and 16GB memory and terrabyte drives, etc. People always want the latest and greatest technology. But I rather like being a technological anacronist &#8211; using &#8220;ancient&#8221; technology today and what do you know &#8211; it actually works great. It&#8217;s amazing how many services I run on this little box &#8211; and it runs them fantastically well, and that was with 512MB &#8211; now with 1.5GB, let the big MySQL queries roll! Some day, I may upgrade to a sever with fancy things like a video card and a Quad Core CPU &#8211; but for now, I am glad I got the old Cobalt back up &#8211; may it live another 10 years.<\/p>\n<p>Oh, I even put the &#8220;Single CPU Sticker&#8221; back on the slot. You know, for the next guy . . .<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Whilst cleaning out a rack of derelict servers in our data center the other day I happened across an old box which had dual 1Ghz PIII coppermine CPUs. Ahh I thought &#8211; how nice would it be to upgrade my Cobalt XTR from a single to a dual CPU system. Opening up my XTR I [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-200","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/posts\/200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/comments?post=200"}],"version-history":[{"count":3,"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/posts\/200\/revisions"}],"predecessor-version":[{"id":202,"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/posts\/200\/revisions\/202"}],"wp:attachment":[{"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/media?parent=200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/categories?post=200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.timelordz.com\/blog\/wp-json\/wp\/v2\/tags?post=200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}