<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7201361257160129196</id><updated>2012-02-16T15:32:18.768-08:00</updated><category term='Virtual Machine'/><category term='IPv6'/><category term='SNMP'/><category term='Wireless'/><category term='MySQL'/><category term='DNS'/><category term='gonna need a bigger gun'/><category term='LVM'/><category term='Debian'/><category term='VLAN'/><category term='XFS'/><category term='VirtualBox'/><category term='Photography'/><category term='Cisco'/><category term='FreeBSD'/><category term='Perl'/><category term='Windows'/><category term='Kerberos'/><category term='Grub'/><category term='OpenLDAP'/><category term='Apple'/><category term='IPMI'/><category term='Politics'/><category term='CCNA'/><category term='Scripting'/><category term='VPN'/><category term='Netgear'/><category term='NFS'/><category term='OpenSWAN'/><category term='VM'/><category term='Linux'/><category term='Dell'/><category term='Networking'/><category term='bacula'/><category term='Ubuntu'/><category term='Karmic'/><category term='disaster recovery'/><category term='Apache'/><category term='guns'/><category term='raid'/><category term='Squeeze'/><category term='Tricks'/><category term='ZFS'/><category term='raptor hunting'/><title type='text'>Technology &amp; Raptor Hunting</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default?start-index=26&amp;max-results=25'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-1350498949780488571</id><published>2012-01-24T09:19:00.001-08:00</published><updated>2012-01-24T09:30:36.189-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Stupid Cacti tricks</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/-4WjFfyH7m5o/Tx7qgRLQXGI/AAAAAAAAAJ8/2VO_aK8Ox9M/s1600/foobar.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 122px;" src="http://2.bp.blogspot.com/-4WjFfyH7m5o/Tx7qgRLQXGI/AAAAAAAAAJ8/2VO_aK8Ox9M/s400/foobar.png" alt="" id="BLOGGER_PHOTO_ID_5701252018384952418" border="0" /&gt;&lt;/a&gt;I spent some time this weekend consolidating services I have running at home down to one box. I migrated my Cacti installation to its new home (from one FreeBSD jail to another), and moved the mysql server to its own jail. I quickly realized that there was a problem. My graphs weren't working anymore. Some checking and I determined that there was a problem with the rrd files failing because the timestamp of updates was in the past, by six hours, which is precisely the offset of my time zone (CST). I checked all of the time zone configuration on the Cacti jail, and everything was set correctly. I went to bed, frustrated, but figuring that the data would catch up by morning.&lt;br /&gt;&lt;br /&gt;Morning came, and my graphs were indeed logging data again, but offset by six hours. The graph window showed the correct time range, but the end of the data line was six hours behind local time. After too much screwing around, reading through the Cacti php. I finally discovered that Cacti sends its poller results to mysql, before retrieving them to put in the rrd files (and purging the records from mysql). The times I was getting back from the new mysql server were being sent as local time, not UTC.&lt;br /&gt;&lt;br /&gt;Long story longer, I had neglected to set the time zone in the jail containing mysql.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-1350498949780488571?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/1350498949780488571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2012/01/stupid-cacti-tricks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/1350498949780488571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/1350498949780488571'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2012/01/stupid-cacti-tricks.html' title='Stupid Cacti tricks'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-4WjFfyH7m5o/Tx7qgRLQXGI/AAAAAAAAAJ8/2VO_aK8Ox9M/s72-c/foobar.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-7739991934095859074</id><published>2011-12-02T06:14:00.000-08:00</published><updated>2011-12-02T06:24:03.539-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Politics'/><title type='text'>Who has been spamming legislators with my identity?</title><content type='html'>Early this week, I received an email from a Tiffiniy Cheng at fightforthefuture.org. I decided to open the message, despite the subject line being spammy-looking at best. The email essentially thanked me for my work in helping to defeat SOPA, and urging me to contact my legislators regarding PROTECT IP. While I have no love for either piece of legislation, I was fairly certain that I have never heard of fightforthefuture.org before, and I had not made any effort related to SOPA. Looking closer at the email, I noticed that it was sent on the behalf of fightforthefuture.org by Blue State Digital, an organization born from the ashes of the Howard Dean campaign. The email was also sent to an email address I forgot even existed; that I created years ago and set to forward to one of my primary addresses.&lt;br /&gt;&lt;br /&gt;I wrote off the email and carried on. Yesterday morning, I received another email from Congressman Dennis Cardoza's office. The email was a form letter thanking me for contacting him regarding SOPA. I'm pretty sure that Dennis Cardoza is a California Democrat, and that California has not yet acquired Minnesota, where I am, and have always been a resident. The second email was also sent to my long-forgotten email account. That these two emails are the only messages that have been received by this account in as many years, something smells fishy.&lt;br /&gt;&lt;br /&gt;It seems to me that someone has gotten their hands on an email list (I probably supported some democratic cause years ago), and taken it upon themselves to use that email list to spam legislators. While I may have no love for the current generation of intellectual property law, I have even less love for people using my identity without my authorization. As broken as American politics may seem, this seems particularly dishonest, as it undermines one of the core principles of our government; the ability of citizens to correspond with their elected representatives. If legislators think that correspondence from their constituents might be bogus, why bother reading ANY correspondence?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-7739991934095859074?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/7739991934095859074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2011/12/who-has-been-spamming-legislators-with.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/7739991934095859074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/7739991934095859074'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2011/12/who-has-been-spamming-legislators-with.html' title='Who has been spamming legislators with my identity?'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-7254542391404817481</id><published>2011-11-09T07:36:00.000-08:00</published><updated>2011-11-09T07:40:48.099-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='guns'/><category scheme='http://www.blogger.com/atom/ns#' term='raptor hunting'/><category scheme='http://www.blogger.com/atom/ns#' term='gonna need a bigger gun'/><title type='text'>Dry firing a Ruger Mark I pistol</title><content type='html'>From the FYI department...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I contacted Sturm, Ruger support to find out if it is safe to dry-fire the .22 Standard/Mark I pistol. Here is their response. Short answer, yes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Comment / question:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I was given an old Ruger Mark I by my father, and I wanted to know if  dry firing will damage the pistol. Your FAQ mentions that this is a safe  operation on the newer Mark IIIs and .22 pistols generally, but does  not say anything specific about its predecessor.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Response:&lt;br /&gt;&lt;blockquote&gt;The firing pin in the Ruger .22 pistols is of the inertia type and dry  firing should cause no damage to the firearm as long as the firing pin  stop is in place in the bolt (refer to information regarding “To Unload”  and “Reassembly” in the instruction manual).  When handling the  firearm, ensure compliance with all warnings and instructions contained  in the manual and be especially careful to keep your firearm pointed in a  safe direction. If you should need further assistance please call our  Service Department at &lt;a href="tel:928%2F778-6555" value="+19287786555"&gt;928/778-6555&lt;/a&gt; between 8:00 - 4:00, MST Monday thru Friday, at a time convenient for you.  A Ruger Representative will be happy to help you.&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-7254542391404817481?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/7254542391404817481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2011/11/dry-firing-ruger-mark-i-pistol.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/7254542391404817481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/7254542391404817481'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2011/11/dry-firing-ruger-mark-i-pistol.html' title='Dry firing a Ruger Mark I pistol'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-5594519057881567172</id><published>2011-09-06T11:36:00.000-07:00</published><updated>2011-09-06T11:42:00.354-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZFS'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>ZFS Volumes not showing up on reboot?</title><content type='html'>If you're using ZFS on FreeBSD and your ZFS volumes do not appear after rebooting the system, verify that your rc.conf file has zfs_enable="YES". This allows /etc/rc.d/zvol to run, which executes an undocumented 'zfs volinit' command to create the /dev/zvol/... device entries. The script also adds swap space volumes if the ZFS volume has org.freebsd:swap=on set.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-5594519057881567172?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/5594519057881567172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2011/09/zfs-volumes-not-showing-up-on-reboot.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/5594519057881567172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/5594519057881567172'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2011/09/zfs-volumes-not-showing-up-on-reboot.html' title='ZFS Volumes not showing up on reboot?'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-5334876987535084747</id><published>2011-09-02T09:28:00.000-07:00</published><updated>2011-09-02T09:50:36.348-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Apache syslogging on FreeBSD</title><content type='html'>If you need to use Syslog to send Apache log output there are plenty of examples already on the Internet. The first hit on google was the O'Reilly Sysadmin blog, which is very useful. However, the page is a bit old and the perl script they provide for Syslogging access logs is in need of updating. My modified version is below. To summarize the process..&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Put the following script in /usr/local/bin/apache_syslog.&lt;p style="font-family: courier new;"&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;# $Id$&lt;br /&gt;#&lt;br /&gt;# A wrapper script that logs apache access via syslog. Copied from an example&lt;br /&gt;# at http://oreilly.com/pub/a/sysadmin/2006/10/12/httpd-syslog.html&lt;br /&gt;# Script requires sysutils/p5-Sys-Syslog from FreeBSD ports.&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;use Sys::Syslog qw( :DEFAULT setlogsock );&lt;br /&gt;&lt;br /&gt;# Excluded, per the rules of Sys:Syslog&lt;br /&gt;# http://search.cpan.org/~saper/Sys-Syslog-0.29/Syslog.pm#THE_RULES_OF_SYS::SYSLOG&lt;br /&gt;#setlogsock('unix');&lt;br /&gt;openlog('httpd', "cons, pid", 'local2');&lt;br /&gt;&lt;br /&gt;while ($log = &lt;stdin&gt;) {&lt;br /&gt;syslog('notice', $log);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;closelog;&lt;/stdin&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Install sysutils/p5-Sys-Syslog from ports (FreeBSD).&lt;/li&gt;&lt;li&gt;In your Apache config replace your ErrorLog directive with "&lt;span style="font-family:courier new;"&gt;ErrorLog syslog:local1&lt;/span&gt;".&lt;/li&gt;&lt;li&gt;Replace your CustomLog directive (for access logs) with "&lt;span style="font-family:courier new;"&gt;CustomLog |/usr/local/bin/apache_syslog combined&lt;/span&gt;".&lt;/li&gt;&lt;li&gt;Edit /etc/syslog.conf, adding the following lines&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;!httpd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;local1.*                    /var/log/httpd-error.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;local2.*                    /var/log/httpd-access.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;!*&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create the log files with "&lt;span style="font-family:courier new;"&gt;touch /var/log/httpd-error.log /var/log/httpd-access.log&lt;/span&gt;".&lt;/li&gt;&lt;li&gt;Edit /etc/newsyslog.conf, adding the following lines&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/var/log/httpd-error.log        640  14       *    @T00  J&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/var/log/httpd-access.log        640  14       *    @T00  J&lt;/span&gt;&lt;/li&gt;&lt;li&gt;(Re)start syslogd and apache.&lt;/li&gt;&lt;li&gt;Profit.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-5334876987535084747?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/5334876987535084747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2011/09/if-you-need-to-use-syslog-to-send.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/5334876987535084747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/5334876987535084747'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2011/09/if-you-need-to-use-syslog-to-send.html' title='Apache syslogging on FreeBSD'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-2608144717271344646</id><published>2011-08-09T11:10:00.000-07:00</published><updated>2011-08-09T11:14:57.321-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Clearing my mental hang-ups about Perl</title><content type='html'>The script below does some simple things to demonstrate to myself how a number of things work in Perl. Simple things, but ones that I sometimes have to stop and think twice about.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;use Config::Auto;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Test Config::Auto output, which should be a reference&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;my $ca = Config::Auto-&amp;gt;new(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    source =&amp;gt; "test.conf",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    format =&amp;gt; "equal"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;my $config = $ca-&amp;gt;parse;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "\$config is a " . ref($config) . " reference\n" if (ref $config);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "c_one undefined\n" unless (defined $config-&amp;gt;{'c_one'});&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "c_two undefined\n" unless (defined $config-&amp;gt;{'c_two'});&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "c_three undefined\n" unless (defined $config-&amp;gt;{'c_three'});&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "c_one non-existent\n" unless (exists $config-&amp;gt;{'c_one'});&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "c_two non-existent\n" unless (exists $config-&amp;gt;{'c_two'});&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "c_three non-existent\n" unless (exists $config-&amp;gt;{'c_three'});&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Test a non-referenced hash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;my %harsh=(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    'one' =&amp;gt; 1,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    'two',&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "\$harsh is a " . ref($harsh) . " reference\n" if (ref $harsh);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "one undefined\n" unless (defined $harsh{'one'});&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "two undefined\n" unless (defined $harsh{'two'});&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "three undefined\n" unless (defined $harsh{'three'});&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "one non-existent\n" unless (exists $harsh{'one'});&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "two non-existent\n" unless (exists $harsh{'two'});&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "three non-existent\n" unless (exists $harsh{'three'});&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Test array interpolation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;my @array = ("one", "two");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "\@array interpolated is: @array\n\@array not interpolated is " . @array . "\n\$\#array is $#array\n";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The test.conf file referred to above contains the following:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;c_one    = 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;c_two    =&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The following output is generated by the script:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$config is a HASH reference&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;c_three undefined&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;c_three non-existent&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;two undefined&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;three undefined&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;three non-existent&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;@array interpolated is: one two&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;@array not interpolated is 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$#array is 1&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-2608144717271344646?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/2608144717271344646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2011/08/clearing-my-mental-hang-ups-about-perl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/2608144717271344646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/2608144717271344646'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2011/08/clearing-my-mental-hang-ups-about-perl.html' title='Clearing my mental hang-ups about Perl'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-7603453697679862713</id><published>2011-08-04T12:30:00.000-07:00</published><updated>2011-08-04T12:35:56.316-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZFS'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>Renaming user-defined ZFS properties</title><content type='html'>Here is a short script I cooked up to rename the namespace of all the ZFS user-defined properties on a host. Useful if you need to change com.foo:beans to com.bar:beans for more than a couple of properties on a couple of filesystems.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#!/usr/local/bin/perl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# This script looks at the properties for every zfs filesystem and snapshot on&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# a server and changes every occurance of a property in in namespace $old to&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# namespace $old.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;use strict;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;my ($old, $new) = ("com.foo", "com.bar");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;my $overwrite = "yes"; # overwrite existing $new properties&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;my $localonly = "yes"; # do not move inherited properties&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;for my $fs ( `zfs list -Ho name` ) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    chomp $fs;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &amp;amp;do_rename($fs);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;for my $snap ( `zfs list -Ho name -t snapshot` ) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    chomp $snap;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &amp;amp;do_rename($snap);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sub do_rename {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    #print "Renaming $old to $new on $_[0]\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    # get list of properties with $old&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    for my $prop ( `zfs get -Ho property,source,value all $_[0] | grep $old` ) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        $prop =~ m/$old:([a-z._:][a-z.\-_:]*)\t([a-z0-9\/\- ]+)\t(.*)\n/;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        #print "Examining property $old:$1 on $_[0] with value $3\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        my ($suffix, $value) = ($1, $3);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        # local check, if enabled&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        next if (( $localonly eq "yes" ) and ( $2 ne "local" ));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        next if (( $overwrite eq "no"  ) and ( &amp;amp;check_exists($_[0],"$old:$suffix") == 0 ));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        print "Setting $new:$suffix=$value and inheriting (erasing) $old:$suffix on $_[0]\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        ( system("zfs set $new:$suffix=$value $_[0]") == 0 ) or die "Error during zfs set operation";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        ( system("zfs inherit $old:$suffix $_[0]") == 0 ) or die "Error during zfs inherit operation";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sub check_exists {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    # Return 0 if the specified property [1] exists on object [0]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if ( system("zfs get -Ho value $_[1] $_[0] | grep -qE '^-\$'") == 0 ) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        # DNE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        return 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    } else {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        print "$_[1] exists on $_[0]!\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        return 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-7603453697679862713?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/7603453697679862713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2011/08/renaming-user-defined-zfs-properties.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/7603453697679862713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/7603453697679862713'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2011/08/renaming-user-defined-zfs-properties.html' title='Renaming user-defined ZFS properties'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-9217215641637404918</id><published>2011-08-01T07:24:00.001-07:00</published><updated>2011-08-01T07:30:14.139-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZFS'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>Undocumented zfs command</title><content type='html'>In the process of tracking down a ZFS mount problem (btw, a zpool will not mount automatically if the mount point exists), I realized that my ZFS swap volume was not available to FreeBSD. After some poking around, I found the /etc/rc.d/zvol script, which led me to the 'zfs volinit' command. This command is not documented in the man page or command usage, but it seems to be the goo that gets volumes going. Also, set the org.freebsd:swap=on property on your swap volume, to have it started automatically by the rc scripts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-9217215641637404918?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/9217215641637404918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2011/08/undocumented-zfs-command.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/9217215641637404918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/9217215641637404918'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2011/08/undocumented-zfs-command.html' title='Undocumented zfs command'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-1015969331161133884</id><published>2011-07-27T07:58:00.000-07:00</published><updated>2011-07-27T08:08:58.194-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZFS'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Dell'/><title type='text'>I/O errors on zfs import?</title><content type='html'>I've been working on freshening up our backup scripts and I noticed that every time I do a ZFS import, the kernel logs I/O errors on RAID volumes, completely separate from the actual volume I want to import, including already mounted ZFS pools and UFS filesystems. For what it's worth, this behavior was occurring on a Dell r610, with an attached MD1000.&lt;br /&gt;&lt;br /&gt;Jul 25 13:59:54 leopard kernel: mfi0: I/O error, status= 12 scsi_status= 0&lt;br /&gt;Jul 25 13:59:54 leopard kernel: mfi0: sense error 0, sense_key 0, asc 0, ascq 0&lt;br /&gt;Jul 25 13:59:54 leopard kernel: mfid1: hard error cmd=read 0-255&lt;br /&gt;&lt;br /&gt;It was suggested that I should update the firmware on the disks, so this morning I went and updated all the disks, and the PERC 6/E. Voila! No more I/O errors on import.&lt;br /&gt;&lt;br /&gt;For reference, &lt;a href="http://tinyurl.com/3w4yvak"&gt;here is the link to the firmware download I used&lt;/a&gt;.  It is a windows executable that allows you to generate a bootable USB key that contains the firmware updater for the disks. I also used the underlying DOS environment to apply the firmware update for the PERC 6/E, and our brand new PERC H800 that came from Dell with ancient firmware.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-1015969331161133884?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/1015969331161133884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2011/07/io-errors-on-zfs-import.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/1015969331161133884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/1015969331161133884'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2011/07/io-errors-on-zfs-import.html' title='I/O errors on zfs import?'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-1628679447322665107</id><published>2011-06-14T17:18:00.000-07:00</published><updated>2011-06-14T17:30:17.272-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Apple DNS cache, and a bourne revelation [to me]</title><content type='html'>I learned a couple of interesting things today. The first is that Mac OS X, or at least some applications, cache DNS results. This is irritating, but fortunately there is a way to clear out the cache. Run the following command in a terminal to clear out the cache.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;dscacheutil -flushcache&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;On the FreeBSD side of life, I had a minor revelation related to bourne (sh) scripting. I have occasionally wondered if it was possible to build the name of a variable dynamically. When I've wondered aloud, the answer I've received has always been that this is not possible. Today, I was reading through /etc/network.subr and I happened upon this bit of code.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;if [ -n "${static_routes}" ]; then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;         for i in ${static_routes}; do&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                   eval route_args=\$route_${i}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;                   route add ${route_args}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;         done&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Like a beam of light from Heaven, I suddenly realized that this little eval statement is the answer to my hopes. It allows you to build a variable name on the fly!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-1628679447322665107?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/1628679447322665107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2011/06/apple-dns-cache-and-bourne-revelation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/1628679447322665107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/1628679447322665107'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2011/06/apple-dns-cache-and-bourne-revelation.html' title='Apple DNS cache, and a bourne revelation [to me]'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-7905687569911487566</id><published>2011-04-22T08:20:00.000-07:00</published><updated>2011-04-22T08:24:43.601-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='VLAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>FreeBSD CARP+BRIDGE+VLAN=BAD</title><content type='html'>Bridge, good. VLANs, great. CARP, awesome. BRIDGE+VLAN+CARP, pwned.  We decided to purchase a pair of atom-based systems for use as the  office firewalls. The only thing we weren't completely pleased with was  the single Ethernet port. Given that we have been using vlans elsewhere  on the network, we didn't expect that there would be any problems using  vlans for all interfaces. It turned out to be a big box of pain. In  addition to routing problems, we also appear to have aggravated a bug  that hangs the system. &lt;p&gt;VLAN+CARP is a fairly common configuration on firewalls. Our  office and DC LANs use the same subnet and are bridged over an OpenVPN  tunnel. Trying to incorporate VLAN+CARP into into a bridge seems to  cause problems. This diagram illustrates our logical network setup. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-e3Apf0Im1Uo/TbGdEzRVJjI/AAAAAAAAAI8/aoIockBC_yY/s1600/clx%2Bvpn%2Blayout.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-TOJ-gY0Ffrw/TbGdW_nOJBI/AAAAAAAAAJE/ANF0z60lso0/s1600/clx%2Bvpn%2Blayout.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 270px;" src="http://1.bp.blogspot.com/-TOJ-gY0Ffrw/TbGdW_nOJBI/AAAAAAAAAJE/ANF0z60lso0/s400/clx%2Bvpn%2Blayout.png" alt="" id="BLOGGER_PHOTO_ID_5598428830156858386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After a lot of trial and error, a number of conclusions were drawn. &lt;/p&gt; &lt;ul&gt;&lt;li&gt; Routing over the bridge doesn't work the same when using vlans.  The VPN server pushes a route to our production network when clients  connect. When the office firewall was using a physical Ethernet  interface for the LAN, this route would refer to the LAN interface as  the outgoing interface for this connection. This seems  counter-intuitive, but it worked just fine. When the Ethernet LAN  interface was replaced with a vlan, the tap (VPN) interface was  referenced by the route to production. This seemed to be more logical,  except that the Production network became unreachable. &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt; After some troubleshooting, I figured out that access to the  production network could be fixed by adding a static route to the DC  firewall (next-hop to production network) pointing out the tap  interface. This seemed to allow traffic to flow smoothly to production. &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt; Adding CARP into the above configuration caused the firewall to  hang randomly. There seemed to be no indication of a crash, no  excessive resource use or network traffic. &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt; Routing traffic between tagged vlans and the underlying  physical interface may be problematic. This was an earlier configuration  I tried, and it seemed to have issues. However, at the time I had not  identified CARP as the source of the system hangs, so this may be a  non-issue. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The routing issue was reported in a PR that can be found &lt;a href="http://www.freebsd.org/cgi/query-pr.cgi?pr=156408" class="external text"&gt;here&lt;/a&gt;. The routing tables mentioned above can be found here. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-7905687569911487566?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/7905687569911487566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2011/04/freebsd-carpbridgevlanbad.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/7905687569911487566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/7905687569911487566'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2011/04/freebsd-carpbridgevlanbad.html' title='FreeBSD CARP+BRIDGE+VLAN=BAD'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-TOJ-gY0Ffrw/TbGdW_nOJBI/AAAAAAAAAJE/ANF0z60lso0/s72-c/clx%2Bvpn%2Blayout.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-4560459548089554284</id><published>2011-04-17T07:26:00.000-07:00</published><updated>2011-04-17T07:31:40.674-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Tricks'/><title type='text'>Enabling Audigy SPDIF in Windows 7</title><content type='html'>Reinstalled Windows 7 the other day and spent an hour figuring out how to enable digital audio output for my SoundBlaster Audigy Platinum. When you open the Sound properties you will see "Speakers" and "SPDIF Out" listed as playback devices. Futz with SPDIF all you want, but you won't get any audio output from digital. I finally opened the properties for "Speakers" and found the magic option under the "Custom" tab. The only option listed is a check box for "Digital Output Only". Click that box, hit apply, and enjoy digital output.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-4560459548089554284?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/4560459548089554284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2011/04/enabling-audigy-spdif-in-windows-7.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/4560459548089554284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/4560459548089554284'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2011/04/enabling-audigy-spdif-in-windows-7.html' title='Enabling Audigy SPDIF in Windows 7'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-7482503748229293459</id><published>2011-04-06T09:04:00.000-07:00</published><updated>2011-04-06T09:12:49.443-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenLDAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Apache startup problems</title><content type='html'>After spending the better part of a day trying to track this problem down, I figured I'd be nice and share the fix, since google wasn't helpful. I was trying to fix a previously working apache installation and found that I was unable to authenticate using LDAP. With the apache logging set to debug, I received the following messages.&lt;br /&gt;&lt;br /&gt;At apache startup:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;[Wed Apr 06 08:56:30 2011] [debug] mod_authnz_ldap.c(1010): [2999]  auth_ldap url parse:  `ldap://ldap.blissfulidiot.com/ou=people,dc=blissfulidiot,dc=com?uid?sub?(clxEnabled=TRUE)',  Host: ldap.blissfulidiot.com, Port: 389, DN:  ou=people,dc=blissfulidiot,dc=com, attrib: uid, scope: subtree, filter:  (clxEnabled=TRUE), connection mode: not using SSL&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;At authentication attempt:&lt;br /&gt;&lt;div style="font-family: courier new;" class="de2"&gt;[Wed Apr 06 08:57:58 2011] [debug]  mod_authnz_ldap.c(403): [client 10.0.3.6] [5604] auth_ldap authenticate:  using URL  ldap://ldap.blissfulidiot.com/ou=people,dc=blissfulidiot,dc=com?uid?sub?(clxEnabled=TRUE)&lt;/div&gt;&lt;div style="font-family: courier new;" class="de2"&gt;[Wed Apr 06 08:57:58 2011] [info]  [client 10.0.3.6] [5604] auth_ldap authenticate: user tom authentication  failed; URI / [LDAP: ldap initialization failed][Unknown (private  extension) error]&lt;/div&gt;&lt;br /&gt;The solution for me on FreeBSD, rebuild the apr port.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-7482503748229293459?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/7482503748229293459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2011/04/apache-startup-problems.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/7482503748229293459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/7482503748229293459'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2011/04/apache-startup-problems.html' title='Apache startup problems'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-1088060810025376543</id><published>2011-04-01T08:08:00.000-07:00</published><updated>2011-04-01T08:12:41.061-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dell'/><category scheme='http://www.blogger.com/atom/ns#' term='IPMI'/><title type='text'>Multiple Ambient Temp sensors in the Dell R610</title><content type='html'>The Dell R610 servers we have report a status for three different "Ambient Temp" sensors.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;tom@R610:~-&amp;gt; sudo ipmitool sdr type "Temperature" | grep -i ambien&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Ambient Temp     | 07h | ok  | 10.1 | 22 degrees C&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Ambient Temp     | 08h | ok  | 10.2 | 20 degrees C&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Ambient Temp     | 0Eh | ok  |  7.1 | 25 degrees C&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The three sensors appear to be the redundant PSUs (10.1 &amp;amp; 10.2), and the main chassis sensor (7.1). Doing some checking around, it appears that all our Dell boxes list the "main" ambient temp in category(?) 7.1, but the actual sensor address is not always 0Eh. Category 10.&amp;lt;1|2&amp;gt; seems to always refer to the PSUs on the 610s.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-1088060810025376543?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/1088060810025376543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2011/04/multiple-ambient-temp-sensors-in-dell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/1088060810025376543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/1088060810025376543'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2011/04/multiple-ambient-temp-sensors-in-dell.html' title='Multiple Ambient Temp sensors in the Dell R610'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-4569357715331238137</id><published>2010-12-02T12:26:00.000-08:00</published><updated>2010-12-02T12:53:01.526-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SNMP'/><category scheme='http://www.blogger.com/atom/ns#' term='Dell'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Deciphering Dell IPMI SNMP Traps</title><content type='html'>Dell Servers can be configured to send traps when a system even occurs. The following sections discuss how to decipher the SNMP traps. A PowerEdge R300 was used in the examples, and the event discussed is a Chassis Intrusion Alarm.&lt;br /&gt;&lt;h3&gt;Useful links&lt;/h3&gt;&lt;a href="ftp://download.intel.com/design/servers/ipmi/pet100.pdf" class="external text"&gt;PET Specification&lt;/a&gt;&lt;br /&gt;&lt;a href="https://support.ipmonitor.com/mibs/DELL_ASF-MIB/raw.aspx" class="external text"&gt;Dell PET Events (MIB)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;SNMP Trap OIDs&lt;/h3&gt;&lt;p&gt;SNMP Traps from the BMC arrive with the following base OID&lt;br /&gt;&lt;tt&gt;.1.3.6.1.4.1.3183.1.1&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;.1.3.6.1.4.1.3183.1.1.0.x&lt;/tt&gt; defines the Event type, per the Dell MIB above.&lt;br /&gt;&lt;tt&gt;.1.3.6.1.4.1.3183.1.1.1&lt;/tt&gt; defines the PET spec information analyzed below.&lt;br /&gt;&lt;br /&gt;Based on the Event type OID, you can determine much of what you need to know to generate a nagios trap. In our case,&lt;br /&gt;&lt;tt&gt;.1.3.6.1.4.1.3183.1.1.0.356096&lt;/tt&gt; indicates an Intrusion event.&lt;br /&gt;&lt;tt&gt;.1.3.6.1.4.1.3183.1.1.0.356224&lt;/tt&gt; indicates an Intrusion event has been cleared.&lt;/p&gt;&lt;h3&gt;PET Analysis&lt;/h3&gt;&lt;pre&gt;44 45 4C 4C 4B 00 10 4A 80 4B C3 C0 4F 4D 4C 31         1:16    GUID (t3)&lt;br /&gt;00 01                                                   17:18   Seq#                                            0001&lt;br /&gt;18 4A 74 D5                                             19:22   Timestamp (seconds from 0:00 1/1/98)            407532757&lt;br /&gt;FF FF                                                   23:24   UTC offset, minutes (0xFFFF unspecified)        unspecified&lt;br /&gt;20                                                      25      Trap Source Type                                IPMI&lt;br /&gt;20                                                      26      Event Source Type                               IPMI&lt;br /&gt;10                                                      27      Event Severity                                  Critical&lt;br /&gt;20                                                      28      Sensor Device                                   32&lt;br /&gt;73                                                      29      Sensor Number                                   115&lt;br /&gt;18                                                      30      Entity                                          24 (System Chassis)&lt;br /&gt;00                                                      31      Entity Instance (0x0 unspecified)               unspecified&lt;br /&gt;80 01 FF 00 00 00 00 00                                 32:39   Event Data&lt;br /&gt;19                                                      40      Language Code                                   25&lt;br /&gt;00 00 02 A2                                             41:44   Manufacturer ID                                 Dell&lt;br /&gt;01 00                                                   45:46   System ID                                       256?&lt;br /&gt;6C 69  6F 6E 2D 34 2D 69 70 6D 69 C1                    47:(110) OEM Custom Fields&lt;/pre&gt;&lt;h3&gt;Example PET fields&lt;/h3&gt;&lt;p&gt;&lt;i&gt;Pipes denote field bounds&lt;/i&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;                                               |      |           |     |  |  |  |  |  |  |  |      |                 |  |           |     |&lt;br /&gt;44 45 4C 4C 4B 00 10 4A 80 4B C3 C0 4F 4D 4C 31  00 01 18 4A 74 D5 FF FF 20 20 10 20 73 18 00 80  01 FF 00 00 00 00 00 19 00 00 02 A2 01 00 6C 69  6F 6E 2D 34 2D 69 70 6D 69 C1&lt;br /&gt;44 45 4C 4C 4B 00 10 4A 80 4B C3 C0 4F 4D 4C 31  00 05 18 4A 74 EE FF FF 20 20 04 20 73 18 00 80  01 FF 00 00 00 00 00 19 00 00 02 A2 01 00 6C 69  6F 6E 2D 34 2D 69 70 6D 69 C1&lt;br /&gt;44 45 4C 4C 4B 00 10 4A 80 4B C3 C0 4F 4D 4C 31  00 09 18 4A 8E CA FF FF 20 20 10 20 73 18 00 80  01 FF 00 00 00 00 00 19 00 00 02 A2 01 00 6C 69  6F 6E 2D 34 2D 69 70 6D 69 C1&lt;br /&gt;44 45 4C 4C 4B 00 10 4A 80 4B C3 C0 4F 4D 4C 31  00 0D 18 4A 8E F2 FF FF 20 20 04 20 73 18 00 80  01 FF 00 00 00 00 00 19 00 00 02 A2 01 00 6C 69  6F 6E 2D 34 2D 69 70 6D 69 C1&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Decoding the PET fields&lt;/h3&gt;&lt;h4&gt;GUID (16-bytes)&lt;/h4&gt;Dell doesn't appear to follow the specification for this field. The first 4 characters are DELL, followed by a string that incorporates part of the Service Tag (CKJKML1). More clarity here could be useful.&lt;pre&gt;44 45 4C 4C 4B 00 10 4A 80 4B C3 C0 4F 4D 4C 31&lt;br /&gt;D  E  L  L  K        J     K        O  M  L  1&lt;/pre&gt;&lt;h4&gt;Sequence number (2-bytes)&lt;/h4&gt;Increasing counter, doesn't appear to be incremental (! +1).&lt;br /&gt;&lt;h4&gt;Timestamp (4-bytes)&lt;/h4&gt;Odd metric, the number of seconds elapsed since 0:00 1/1/1998 (883612800). Here is some perl that will make a regular timestamp.&lt;pre&gt;$time = localtime(883612800 + 407532757);&lt;br /&gt;print "$time";&lt;/pre&gt;&lt;pre&gt;Tue Nov 30 13:32:37 2010&lt;/pre&gt;&lt;h4&gt;Trap Source Type (1-byte)&lt;/h4&gt;&lt;p&gt;Table 3 (p.9) in PET spec defines.&lt;/p&gt;&lt;h4&gt;Event Source Type (1-byte)&lt;/h4&gt;&lt;p&gt;Table 3 (p.9) in PET spec defines.&lt;/p&gt;&lt;h4&gt;Event Severity (1-byte)&lt;/h4&gt;&lt;p&gt;Table 3 in PET spec defines. 0x10 == Critical, 0x4 == Normal.&lt;/p&gt;&lt;h4&gt;Sensor Device (1-byte)&lt;/h4&gt;&lt;p&gt;Device ID,&lt;/p&gt;&lt;pre&gt;root-&amp;gt; ipmitool sdr list mcloc&lt;br /&gt;BMC              | Dynamic MC @ 20h  | ok&lt;br /&gt;DRAC 5           | Dynamic MC @ 26h  | ok&lt;/pre&gt;&lt;h4&gt;Sensor Number (1-byte)&lt;/h4&gt;&lt;p&gt;The actual sensor ID as known by the BMC. PET spec table 5 (p.13) defines Sensor Types. In the above example, value 0x73 (Chassis Intrustion) falls within the OEM RESERVED range (0xC0-0xFF), even though there is a Physical Security value defined (0x5). Stupid.&lt;/p&gt;&lt;pre&gt;root-&amp;gt; ipmitool -v sensor&lt;br /&gt;Sensor ID              : Temp (0x1)&lt;br /&gt;Entity ID             : 3.1&lt;br /&gt;Sensor Type (Analog)  : Temperature&lt;br /&gt;Sensor Reading        :  Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Event Status          : Event Messages Disabled&lt;br /&gt;Assertion Events      :&lt;br /&gt;Event Enable          : Event Messages Disabled&lt;br /&gt;Assertions Enabled    :&lt;br /&gt;&lt;br /&gt;Sensor ID              : Planar Temp (0x7)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Analog)  : Temperature&lt;br /&gt;Sensor Reading        : 21 (+/- 1) degrees C&lt;br /&gt;Status                : ok&lt;br /&gt;Lower Non-Recoverable : na&lt;br /&gt;Lower Critical        : 3.000&lt;br /&gt;Lower Non-Critical    : 8.000&lt;br /&gt;Upper Non-Critical    : 53.000&lt;br /&gt;Upper Critical        : 58.000&lt;br /&gt;Upper Non-Recoverable : na&lt;br /&gt;Assertion Events      :&lt;br /&gt;Assertions Enabled    : lnc- lcr- unc+ ucr+&lt;br /&gt;Deassertions Enabled  : lnc- lcr- unc+ ucr+&lt;br /&gt;&lt;br /&gt;Sensor ID              : Ambient Temp (0x8)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Analog)  : Temperature&lt;br /&gt;Sensor Reading        : 16 (+/- 1) degrees C&lt;br /&gt;Status                : ok&lt;br /&gt;Lower Non-Recoverable : na&lt;br /&gt;Lower Critical        : 3.000&lt;br /&gt;Lower Non-Critical    : 8.000&lt;br /&gt;Upper Non-Critical    : 42.000&lt;br /&gt;Upper Critical        : 47.000&lt;br /&gt;Upper Non-Recoverable : na&lt;br /&gt;Assertion Events      :&lt;br /&gt;Assertions Enabled    : lnc- lcr- unc+ ucr+&lt;br /&gt;Deassertions Enabled  : lnc- lcr- unc+ ucr+&lt;br /&gt;&lt;br /&gt;Sensor ID              : CMOS Battery (0x10)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Discrete): Battery&lt;br /&gt;&lt;br /&gt;Sensor ID              : VCORE (0x12)&lt;br /&gt;Entity ID             : 3.1&lt;br /&gt;Sensor Type (Discrete): Voltage&lt;br /&gt;States Asserted       : Digital State&lt;br /&gt;          [State Deasserted]&lt;br /&gt;&lt;br /&gt;Sensor ID              : CPU VTT (0x16)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Discrete): Voltage&lt;br /&gt;States Asserted       : Digital State&lt;br /&gt;          [State Deasserted]&lt;br /&gt;&lt;br /&gt;Sensor ID              : 1.5V PG (0x17)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Discrete): Voltage&lt;br /&gt;States Asserted       : Digital State&lt;br /&gt;          [State Deasserted]&lt;br /&gt;&lt;br /&gt;Sensor ID              : 1.8V PG (0x18)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Discrete): Voltage&lt;br /&gt;States Asserted       : Digital State&lt;br /&gt;          [State Deasserted]&lt;br /&gt;&lt;br /&gt;Sensor ID              : 1.5V Riser PG (0x19)&lt;br /&gt;Entity ID             : 16.1&lt;br /&gt;Sensor Type (Discrete): Voltage&lt;br /&gt;States Asserted       : Digital State&lt;br /&gt;          [State Deasserted]&lt;br /&gt;&lt;br /&gt;Sensor ID              : FAN MOD 1A RPM (0x30)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Analog)  : Fan&lt;br /&gt;Sensor Reading        : 6675 (+/- 75) RPM&lt;br /&gt;Status                : ok&lt;br /&gt;Lower Non-Recoverable : na&lt;br /&gt;Lower Critical        : 3525.000&lt;br /&gt;Lower Non-Critical    : na&lt;br /&gt;Upper Non-Critical    : na&lt;br /&gt;Upper Critical        : na&lt;br /&gt;Upper Non-Recoverable : na&lt;br /&gt;Assertion Events      :&lt;br /&gt;Assertions Enabled    : lcr-&lt;br /&gt;Deassertions Enabled  : lcr-&lt;br /&gt;&lt;br /&gt;Sensor ID              : FAN MOD 1B RPM (0x31)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Analog)  : Fan&lt;br /&gt;Sensor Reading        : 6375 (+/- 75) RPM&lt;br /&gt;Status                : ok&lt;br /&gt;Lower Non-Recoverable : na&lt;br /&gt;Lower Critical        : 2325.000&lt;br /&gt;Lower Non-Critical    : na&lt;br /&gt;Upper Non-Critical    : na&lt;br /&gt;Upper Critical        : na&lt;br /&gt;Upper Non-Recoverable : na&lt;br /&gt;Assertion Events      :&lt;br /&gt;Assertions Enabled    : lcr-&lt;br /&gt;Deassertions Enabled  : lcr-&lt;br /&gt;&lt;br /&gt;Sensor ID              : FAN MOD 2A RPM (0x32)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Analog)  : Fan&lt;br /&gt;Sensor Reading        : 6900 (+/- 75) RPM&lt;br /&gt;Status                : ok&lt;br /&gt;Lower Non-Recoverable : na&lt;br /&gt;Lower Critical        : 3525.000&lt;br /&gt;Lower Non-Critical    : na&lt;br /&gt;Upper Non-Critical    : na&lt;br /&gt;Upper Critical        : na&lt;br /&gt;Upper Non-Recoverable : na&lt;br /&gt;Assertion Events      :&lt;br /&gt;Assertions Enabled    : lcr-&lt;br /&gt;Deassertions Enabled  : lcr-&lt;br /&gt;&lt;br /&gt;Sensor ID              : FAN MOD 2B RPM (0x33)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Analog)  : Fan&lt;br /&gt;Sensor Reading        : 6300 (+/- 75) RPM&lt;br /&gt;Status                : ok&lt;br /&gt;Lower Non-Recoverable : na&lt;br /&gt;Lower Critical        : 2325.000&lt;br /&gt;Lower Non-Critical    : na&lt;br /&gt;Upper Non-Critical    : na&lt;br /&gt;Upper Critical        : na&lt;br /&gt;Upper Non-Recoverable : na&lt;br /&gt;Assertion Events      :&lt;br /&gt;Assertions Enabled    : lcr-&lt;br /&gt;Deassertions Enabled  : lcr-&lt;br /&gt;&lt;br /&gt;Sensor ID              : FAN MOD 3A RPM (0x34)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Analog)  : Fan&lt;br /&gt;Sensor Reading        : 6900 (+/- 75) RPM&lt;br /&gt;Status                : ok&lt;br /&gt;Lower Non-Recoverable : na&lt;br /&gt;Lower Critical        : 3525.000&lt;br /&gt;Lower Non-Critical    : na&lt;br /&gt;Upper Non-Critical    : na&lt;br /&gt;Upper Critical        : na&lt;br /&gt;Upper Non-Recoverable : na&lt;br /&gt;Assertion Events      :&lt;br /&gt;Assertions Enabled    : lcr-&lt;br /&gt;Deassertions Enabled  : lcr-&lt;br /&gt;&lt;br /&gt;Sensor ID              : FAN MOD 3B RPM (0x35)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Analog)  : Fan&lt;br /&gt;Sensor Reading        : 6225 (+/- 75) RPM&lt;br /&gt;Status                : ok&lt;br /&gt;Lower Non-Recoverable : na&lt;br /&gt;Lower Critical        : 2325.000&lt;br /&gt;Lower Non-Critical    : na&lt;br /&gt;Upper Non-Critical    : na&lt;br /&gt;Upper Critical        : na&lt;br /&gt;Upper Non-Recoverable : na&lt;br /&gt;Assertion Events      :&lt;br /&gt;Assertions Enabled    : lcr-&lt;br /&gt;Deassertions Enabled  : lcr-&lt;br /&gt;&lt;br /&gt;Sensor ID              : FAN MOD 4A RPM (0x36)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Analog)  : Fan&lt;br /&gt;Sensor Reading        : 6825 (+/- 75) RPM&lt;br /&gt;Status                : ok&lt;br /&gt;Lower Non-Recoverable : na&lt;br /&gt;Lower Critical        : 3525.000&lt;br /&gt;Lower Non-Critical    : na&lt;br /&gt;Upper Non-Critical    : na&lt;br /&gt;Upper Critical        : na&lt;br /&gt;Upper Non-Recoverable : na&lt;br /&gt;Assertion Events      :&lt;br /&gt;Assertions Enabled    : lcr-&lt;br /&gt;Deassertions Enabled  : lcr-&lt;br /&gt;&lt;br /&gt;Sensor ID              : FAN MOD 4B RPM (0x37)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Analog)  : Fan&lt;br /&gt;Sensor Reading        : 6150 (+/- 75) RPM&lt;br /&gt;Status                : ok&lt;br /&gt;Lower Non-Recoverable : na&lt;br /&gt;Lower Critical        : 2325.000&lt;br /&gt;Lower Non-Critical    : na&lt;br /&gt;Upper Non-Critical    : na&lt;br /&gt;Upper Critical        : na&lt;br /&gt;Upper Non-Recoverable : na&lt;br /&gt;Assertion Events      :&lt;br /&gt;Assertions Enabled    : lcr-&lt;br /&gt;Deassertions Enabled  : lcr-&lt;br /&gt;&lt;br /&gt;Sensor ID              : FAN MOD 5A RPM (0x38)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Analog)  : Fan&lt;br /&gt;Sensor Reading        :  Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Assertion Events      :&lt;br /&gt;Assertions Enabled    : lcr-&lt;br /&gt;Deassertions Enabled  : lcr-&lt;br /&gt;&lt;br /&gt;Sensor ID              : FAN MOD 5B RPM (0x39)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Analog)  : Fan&lt;br /&gt;Sensor Reading        :  Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Assertion Events      :&lt;br /&gt;Assertions Enabled    : lcr-&lt;br /&gt;Deassertions Enabled  : lcr-&lt;br /&gt;&lt;br /&gt;Sensor ID              : FAN MOD 6A RPM (0x3a)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Analog)  : Fan&lt;br /&gt;Sensor Reading        :  Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Assertion Events      :&lt;br /&gt;Assertions Enabled    : lcr-&lt;br /&gt;Deassertions Enabled  : lcr-&lt;br /&gt;&lt;br /&gt;Sensor ID              : FAN MOD 6B RPM (0x3b)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Analog)  : Fan&lt;br /&gt;Sensor Reading        :  Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Assertion Events      :&lt;br /&gt;Assertions Enabled    : lcr-&lt;br /&gt;Deassertions Enabled  : lcr-&lt;br /&gt;&lt;br /&gt;Sensor ID              : Presence (0x50)&lt;br /&gt;Entity ID             : 3.1&lt;br /&gt;Sensor Type (Discrete): Entity Presence&lt;br /&gt;States Asserted       : Entity Presence&lt;br /&gt;          [Present]&lt;br /&gt;&lt;br /&gt;Sensor ID              : Presence (0x54)&lt;br /&gt;Entity ID             : 10.1&lt;br /&gt;Sensor Type (Discrete): Entity Presence&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Sensor ID              : Presence (0x55)&lt;br /&gt;Entity ID             : 10.2&lt;br /&gt;Sensor Type (Discrete): Entity Presence&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Sensor ID              : Presence (0x56)&lt;br /&gt;Entity ID             : 26.1&lt;br /&gt;Sensor Type (Discrete): Entity Presence&lt;br /&gt;States Asserted       : Entity Presence&lt;br /&gt;          [Absent]&lt;br /&gt;&lt;br /&gt;Sensor ID              : PFault Fail Safe (0x5f)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Discrete): Voltage&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Sensor ID              : Status (0x60)&lt;br /&gt;Entity ID             : 3.1&lt;br /&gt;Sensor Type (Discrete): Processor&lt;br /&gt;States Asserted       : Processor&lt;br /&gt;          [Presence detected]&lt;br /&gt;&lt;br /&gt;Sensor ID              : Status (0x64)&lt;br /&gt;Entity ID             : 10.1&lt;br /&gt;Sensor Type (Discrete): Power Supply&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Sensor ID              : Status (0x65)&lt;br /&gt;Entity ID             : 10.2&lt;br /&gt;Sensor Type (Discrete): Power Supply&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Sensor ID              : Status (0x66)&lt;br /&gt;Entity ID             : 16.1&lt;br /&gt;Sensor Type (Discrete): Cable / Interconnect&lt;br /&gt;States Asserted       : Cable/Interconnect&lt;br /&gt;          [Connected]&lt;br /&gt;&lt;br /&gt;Sensor ID              : RAC Status (0x70)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Discrete): Module / Board&lt;br /&gt;&lt;br /&gt;Sensor ID              : OS Watchdog (0x71)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Discrete): Watchdog&lt;br /&gt;&lt;br /&gt;Sensor ID              : SEL (0x72)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Discrete): Event Logging Disabled&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Sensor ID              : Intrusion (0x73)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Discrete): Physical Security&lt;br /&gt;&lt;br /&gt;Sensor ID              : PS Redundancy (0x74)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Discrete): Power Supply&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Sensor ID              : Fan Redundancy (0x75)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Discrete): Fan&lt;br /&gt;States Asserted       : Redundancy State&lt;br /&gt;          [Fully Redundant]&lt;br /&gt;&lt;br /&gt;Sensor ID              : CPU Temp Interf (0x76)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Discrete): Temperature&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Sensor ID              : Drive (0x80)&lt;br /&gt;Entity ID             : 26.1&lt;br /&gt;Sensor Type (Discrete): Drive Slot / Bay&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Sensor ID              : Cable SAS (0x90)&lt;br /&gt;Entity ID             : 26.1&lt;br /&gt;Sensor Type (Discrete): Cable / Interconnect&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;Sensor ID              : Cable PDB Ctrl (0x9b)&lt;br /&gt;Entity ID             : 7.1&lt;br /&gt;Sensor Type (Discrete): Cable / Interconnect&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;e8 84 ff ff 02 07 d9 9d ea c3 e4 05 21 a5 5d d5&lt;br /&gt;e8 bb f7 a3 c0 82 d0 e8 84 ff ff 02 07 d9 9d ea&lt;br /&gt;c3 e4 05 21 a5 5d d5 e8 bb&lt;br /&gt;Sensor ID              : ECC Corr Err (0x1)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;b4 e5 ff ff 02 07 e1 05 e7 29 ae 0a 84 fb aa eb&lt;br /&gt;3b b9 03 d1 bc 49 df b4 e5 ff ff 02 07 e1 05 e7&lt;br /&gt;29 ae 0a 84 fb aa eb 3b b9&lt;br /&gt;Sensor ID              : ECC Uncorr Err (0x2)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;ed db ff ff 02 07 a4 9f 92 d0 b0 e2 f7 e1 7d 32&lt;br /&gt;6a d1 4b 5d 2e b5 13 ed db ff ff 02 07 a4 9f 92&lt;br /&gt;d0 b0 e2 f7 e1 7d 32 6a d1&lt;br /&gt;Sensor ID              : I/O Channel Chk (0x3)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Critical Interrupt&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;4a bb ff ff 02 07 08 02 91 61 be 82 9f 5a c2 fe&lt;br /&gt;06 c7 dd 43 e1 e8 03 4a bb ff ff 02 07 08 02 91&lt;br /&gt;61 be 82 9f 5a c2 fe 06 c7&lt;br /&gt;Sensor ID              : PCI Parity Err (0x4)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Critical Interrupt&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;2d 73 ff ff 02 07 ef 35 08 e3 a8 d0 20 24 06 f9&lt;br /&gt;c7 8e d2 6b 6e bc de 2d 73 ff ff 02 07 ef 35 08&lt;br /&gt;e3 a8 d0 20 24 06 f9 c7 8e&lt;br /&gt;Sensor ID              : PCI System Err (0x5)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Critical Interrupt&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;a3 0d ff ff 02 07 4f f0 04 c0 1a 99 af 12 46 1d&lt;br /&gt;74 e9 bf 16 12 0c 13 a3 0d ff ff 02 07 4f f0 04&lt;br /&gt;c0 1a 99 af 12 46 1d 74 e9&lt;br /&gt;Sensor ID              : SBE Log Disabled (0x6)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Event Logging Disabled&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;cc b9 ff ff 02 07 87 67 27 84 5a b6 f3 f1 82 4a&lt;br /&gt;8b 89 74 67 69 be 11 cc b9 ff ff 02 07 87 67 27&lt;br /&gt;84 5a b6 f3 f1 82 4a 8b 89&lt;br /&gt;Sensor ID              : Logging Disabled (0x7)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Event Logging Disabled&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;3b c3 ff ff 02 07 3e 85 9a 4c 8f 63 b7 53 73 e4&lt;br /&gt;02 5a 3b 5d 4e 47 73 3b c3 ff ff 02 07 3e 85 9a&lt;br /&gt;4c 8f 63 b7 53 73 e4 02 5a&lt;br /&gt;Sensor ID              : Unknown (0x8)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): System Event&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;f7 35 ff ff 02 07 f6 37 7a ef e8 74 61 e9 71 f9&lt;br /&gt;fc b0 e1 89 d3 f5 a9 f7 35 ff ff 02 07 f6 37 7a&lt;br /&gt;ef e8 74 61 e9 71 f9 fc b0&lt;br /&gt;Sensor ID              : CPU Protocol Err (0xa)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Processor&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;23 f7 ff ff 02 07 3c 95 d4 23 3a a8 33 05 91 7e&lt;br /&gt;ce 24 73 7c 99 10 8c 23 f7 ff ff 02 07 3c 95 d4&lt;br /&gt;23 3a a8 33 05 91 7e ce 24&lt;br /&gt;Sensor ID              : CPU Bus PERR (0xb)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Processor&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;09 66 ff ff 02 07 f7 cc ba bf c7 38 50 8b 2f 39&lt;br /&gt;b3 fc 0c 00 72 77 aa 09 66 ff ff 02 07 f7 cc ba&lt;br /&gt;bf c7 38 50 8b 2f 39 b3 fc&lt;br /&gt;Sensor ID              : CPU Init Err (0xc)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Processor&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;30 89 ff ff 02 07 61 33 4c 17 c3 f1 2d 92 e1 10&lt;br /&gt;57 b6 71 73 93 6a d7 30 89 ff ff 02 07 61 33 4c&lt;br /&gt;17 c3 f1 2d 92 e1 10 57 b6&lt;br /&gt;Sensor ID              : CPU Machine Chk (0xd)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Processor&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;02 a7 ff ff 02 07 21 d2 89 70 8b 5d 5d 17 8b bb&lt;br /&gt;ae 82 dd 44 ae 4c 51 02 a7 ff ff 02 07 21 d2 89&lt;br /&gt;70 8b 5d 5d 17 8b bb ae 82&lt;br /&gt;Sensor ID              : Memory Spared (0x11)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;32 e8 ff ff 02 07 b1 0d 1f 30 f1 92 fe 56 0d c0&lt;br /&gt;4e 65 ea 72 f3 b1 5c 32 e8 ff ff 02 07 b1 0d 1f&lt;br /&gt;30 f1 92 fe 56 0d c0 4e 65&lt;br /&gt;Sensor ID              : Memory Mirrored (0x12)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;21 6f ff ff 02 07 a8 30 d8 ec 71 02 00 a4 d1 3f&lt;br /&gt;d3 c9 90 7e 8f 06 60 21 6f ff ff 02 07 a8 30 d8&lt;br /&gt;ec 71 02 00 a4 d1 3f d3 c9&lt;br /&gt;Sensor ID              : Memory RAID (0x13)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;c3 d1 ff ff 02 07 e3 44 16 17 2a 90 0e 17 81 bf&lt;br /&gt;e8 08 39 40 ad 72 a0 c3 d1 ff ff 02 07 e3 44 16&lt;br /&gt;17 2a 90 0e 17 81 bf e8 08&lt;br /&gt;Sensor ID              : Memory Added (0x14)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;e8 84 ff ff 02 07 3f f7 41 58 00 29 a3 b9 e6 62&lt;br /&gt;96 15 f7 a3 c0 82 d0 e8 84 ff ff 02 07 3f f7 41&lt;br /&gt;58 00 29 a3 b9 e6 62 96 15&lt;br /&gt;Sensor ID              : Memory Removed (0x15)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;b4 e5 ff ff 02 07 41 0c a2 b5 d5 ac fa 16 a4 72&lt;br /&gt;84 d7 03 d1 bc 49 df b4 e5 ff ff 02 07 41 0c a2&lt;br /&gt;b5 d5 ac fa 16 a4 72 84 d7&lt;br /&gt;Sensor ID              : Memory Cfg Err (0x16)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;ed db ff ff 02 07 07 e8 5a fa 86 ce 6b 76 73 7c&lt;br /&gt;5b aa 4b 5d 2e b5 13 ed db ff ff 02 07 07 e8 5a&lt;br /&gt;fa 86 ce 6b 76 73 7c 5b aa&lt;br /&gt;Sensor ID              : Mem Redun Gain (0x17)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;4a bb ff ff 02 07 48 27 41 3c 46 00 c1 02 1a 34&lt;br /&gt;e8 9c dd 43 e1 e8 03 4a bb ff ff 02 07 48 27 41&lt;br /&gt;3c 46 00 c1 02 1a 34 e8 9c&lt;br /&gt;Sensor ID              : PCIE Fatal Err (0x18)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Critical Interrupt&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;2d 73 ff ff 02 07 39 32 87 7d 45 a2 db 02 9c c5&lt;br /&gt;37 c9 d2 6b 6e bc de 2d 73 ff ff 02 07 39 32 87&lt;br /&gt;7d 45 a2 db 02 9c c5 37 c9&lt;br /&gt;Sensor ID              : Chipset Err (0x19)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Critical Interrupt&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;a3 0d ff ff 02 07 d7 c6 5d b1 7f 62 43 47 5a 77&lt;br /&gt;de bc bf 16 12 0c 13 a3 0d ff ff 02 07 d7 c6 5d&lt;br /&gt;b1 7f 62 43 47 5a 77 de bc&lt;br /&gt;Sensor ID              : Err Reg Pointer (0x1a)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Unknown (0xC1)&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;cc b9 ff ff 02 07 64 6e 71 6c 91 87 23 4a 6b fd&lt;br /&gt;f7 68 74 67 69 be 11 cc b9 ff ff 02 07 64 6e 71&lt;br /&gt;6c 91 87 23 4a 6b fd f7 68&lt;br /&gt;Sensor ID              : Mem ECC Warning (0x1b)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;3b c3 ff ff 02 07 05 79 96 82 45 b8 12 6c c3 5e&lt;br /&gt;cf f2 3b 5d 4e 47 73 3b c3 ff ff 02 07 05 79 96&lt;br /&gt;82 45 b8 12 6c c3 5e cf f2&lt;br /&gt;Sensor ID              : Mem CRC Err (0x1c)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;f7 35 ff ff 02 07 bd 82 5a 26 89 50 fb 7c ab db&lt;br /&gt;db c2 e1 89 d3 f5 a9 f7 35 ff ff 02 07 bd 82 5a&lt;br /&gt;26 89 50 fb 7c ab db db c2&lt;br /&gt;Sensor ID              : USB Over-current (0x1d)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;23 f7 ff ff 02 07 6a e7 7e 30 28 75 30 2c 64 c3&lt;br /&gt;d4 5a 73 7c 99 10 8c 23 f7 ff ff 02 07 6a e7 7e&lt;br /&gt;30 28 75 30 2c 64 c3 d4 5a&lt;br /&gt;Sensor ID              : POST Err (0x1e)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): System Firmwares&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;09 66 ff ff 02 07 07 f7 35 2f af 3c a0 41 6f 32&lt;br /&gt;aa b1 0c 00 72 77 aa 09 66 ff ff 02 07 07 f7 35&lt;br /&gt;2f af 3c a0 41 6f 32 aa b1&lt;br /&gt;Sensor ID              : Hdwr version err (0x1f)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Version Change&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;30 89 ff ff 02 07 95 50 49 39 93 8e 61 72 fa 30&lt;br /&gt;77 07 71 73 93 6a d7 30 89 ff ff 02 07 95 50 49&lt;br /&gt;39 93 8e 61 72 fa 30 77 07&lt;br /&gt;Sensor ID              : Mem Overtemp (0x20)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;02 a7 ff ff 02 07 31 99 d7 13 76 96 49 e1 f0 58&lt;br /&gt;dc 00 dd 44 ae 4c 51 02 a7 ff ff 02 07 31 99 d7&lt;br /&gt;13 76 96 49 e1 f0 58 dc 00&lt;br /&gt;Sensor ID              : Mem Fatal SB CRC (0x21)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;br /&gt;&lt;br /&gt;bridge command response (41 bytes)&lt;br /&gt;32 e8 ff ff 02 07 da 7a 46 57 4c f4 82 17 35 7f&lt;br /&gt;63 8f ea 72 f3 b1 5c 32 e8 ff ff 02 07 da 7a 46&lt;br /&gt;57 4c f4 82 17 35 7f 63 8f&lt;br /&gt;Sensor ID              : Mem Fatal NB CRC (0x22)&lt;br /&gt;Entity ID             : 34.1&lt;br /&gt;Sensor Type (Discrete): Memory&lt;br /&gt;Unable to read sensor: Device Not Present&lt;/pre&gt;&lt;h4&gt;Entity (1-byte)&lt;/h4&gt;&lt;p&gt;PET spec table 6 (p.17) defines values&lt;/p&gt;&lt;h4&gt;Entity Instance (1-byte)&lt;/h4&gt;&lt;p&gt;0x0 unspecified&lt;/p&gt;&lt;h4&gt;Event Data (8-bytes)&lt;/h4&gt;&lt;p&gt;Additional information about the event, as defined in PET spec table 5 (p.13), or in our case, by the OEM..&lt;/p&gt;&lt;pre&gt;80 01 FF 00 00 00 00 00&lt;/pre&gt;&lt;h4&gt;Language Code (1-byte)&lt;/h4&gt;&lt;h4&gt;Manufacturer ID (4-bytes)&lt;/h4&gt;&lt;p&gt;0x2A2 = 674 = Dell&lt;br /&gt;&lt;a href="http://www.iana.org/assignments/enterprise-numbers" class="external text"&gt;source&lt;/a&gt;&lt;/p&gt;&lt;h4&gt;System ID (2-bytes)&lt;/h4&gt;&lt;p&gt;0x100 = 256 = ???&lt;/p&gt;&lt;h4&gt;OEM Custom Fields (&lt;=64-bytes)&lt;/h4&gt;&lt;p&gt;Custom fields defined by the OEM.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-4569357715331238137?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/4569357715331238137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2010/12/deciphering-dell-ipmi-snmp-traps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/4569357715331238137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/4569357715331238137'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2010/12/deciphering-dell-ipmi-snmp-traps.html' title='Deciphering Dell IPMI SNMP Traps'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-7057754029485628324</id><published>2010-11-09T13:12:00.000-08:00</published><updated>2010-12-29T11:05:26.872-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenLDAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>PAM LDAP error: unexpected return value 4?</title><content type='html'>Are you seeing this error in your logs, along with an inability to log in?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Nov  9 15:05:08 leoger sshd[41524]: in _openpam_check_error_code(): pam_sm_acct_mgmt(): unexpected return value 4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Nov  9 15:05:08 leoger kernel: Nov  9 15:05:08 leoger sshd[41524]: in _openpam_check_error_code(): pam_sm_acct_mgmt(): unexpected return value 4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I did, and I figured out that the problem was caused by having changed my system hostname in config files and DNS, without actually having changed the hostname of the server. Note, the hostname must also be resolvable, either by DNS or /etc/hosts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-7057754029485628324?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/7057754029485628324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2010/11/pam-ldap-error-unexpected-return-value.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/7057754029485628324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/7057754029485628324'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2010/11/pam-ldap-error-unexpected-return-value.html' title='PAM LDAP error: unexpected return value 4?'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-6463085600947482218</id><published>2010-10-15T10:12:00.000-07:00</published><updated>2010-10-15T10:21:26.199-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='raid'/><category scheme='http://www.blogger.com/atom/ns#' term='Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='disaster recovery'/><title type='text'>Hot-swap SATA disks in FreeBSD</title><content type='html'>If you ever need to hot-swap a disk on a FreeBSD box, &lt;tt&gt;atacontrol(8)&lt;/tt&gt; is your friend. Swap the disk, then use &lt;tt&gt;atacontrol list&lt;/tt&gt; to retrieve the list of ATA channels on the system.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;root@neutron:~-&gt; atacontrol list&lt;br /&gt;ATA channel 0:&lt;br /&gt;    Master: acd0 &lt;dv-28e-n/c.6b&gt; ATA/ATAPI revision 5&lt;br /&gt;    Slave:       no device present&lt;br /&gt;ATA channel 2:&lt;br /&gt;    Master:  ad4 &lt;wdc&gt; SATA revision 2.x&lt;br /&gt;    Slave:       no device present&lt;br /&gt;ATA channel 3:&lt;br /&gt;    Master:  ad6 &lt;wdc&gt; SATA revision 2.x&lt;br /&gt;    Slave:       no device present&lt;br /&gt;ATA channel 4:&lt;br /&gt;    Master:  ad8 &lt;st3160812as/3.ajl&gt; SATA revision 1.x&lt;br /&gt;    Slave:       no device present&lt;br /&gt;ATA channel 5:&lt;br /&gt;    Master:    no device present&lt;br /&gt;    Slave:       no device present&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Find the appropriate channel, in this case ata5. Then simply perform a detach/attach operation on the channel and the disk should be found.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;root@neutron:~-&gt; atacontrol detach ata5&lt;br /&gt;root@neutron:~-&gt; atacontrol attach ata5&lt;br /&gt;Master: ad10 &lt;wdc&gt; SATA revision 2.x&lt;br /&gt;Slave:       no device present&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This example was done on FreeBSD 8.1-RELEASE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-6463085600947482218?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/6463085600947482218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2010/10/hot-swap-sata-disks-in-freebsd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/6463085600947482218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/6463085600947482218'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2010/10/hot-swap-sata-disks-in-freebsd.html' title='Hot-swap SATA disks in FreeBSD'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-1028283427040681141</id><published>2010-07-30T06:34:00.000-07:00</published><updated>2010-07-30T07:03:18.148-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='VLAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Dell'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Random server crashes R300 + IPMI = BAD</title><content type='html'>Ever since enabling IPMI on our Dell servers last week, we have been experiencing problems with random hangs on our R300s. I suspected IPMI immediately, particularly IPMI over a VLAN. When I finally went to the data center to reboot a server myself, I noticed the following error on the front LCD display.&lt;a id="edit" onfocus="$('#comment').get(0).focus()"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-family: courier new;"&gt;E1410 CPU 1 IERR&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some googling indicates that this problem indicates a faulty CPU, and our Dell contact suggested that it was probably a memory or drive failure. However, further reading suggested that this problem can also be caused by non-hardware failures.&lt;br /&gt;&lt;br /&gt;Going back to the original IPMI theory, I found that I was able to reproduce it quite easily by starting parallel iperf sessions between an R300 and another host to saturate the interface. I then started running constant ipmitool queries. I found that I was able to lock the R300 within 10 minutes, consistently.&lt;br /&gt;&lt;br /&gt;I resolved the issue by moving the primary network interface for the OS to NIC #2, leaving NIC #1 for exclusive use by IPMI. In this configuration I was not able to crash the server in 30 minutes and it has run all night without issue.&lt;br /&gt;&lt;br /&gt;Discussing the issue/resolution with one of the FreeBSD developers, he stated that this is not just a Dell issue, sharing IPMI with the LAN on FreeBSD is really dodgy, depending on on the particular NIC chipset in use (the Broadcom bge driver in this case). It may be that the VLAN tagging may have been the straw that broke the camel's back in this case. The server that caused the most trouble in this episode was previously running for over a year with IPMI enabled, but no VLAN tagging. To be fair, we were not previous doing any monitoring of this machine via IPMI, so the potential exposure was far less.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-1028283427040681141?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/1028283427040681141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2010/07/random-server-crashes-r300-ipmi-bad.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/1028283427040681141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/1028283427040681141'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2010/07/random-server-crashes-r300-ipmi-bad.html' title='Random server crashes R300 + IPMI = BAD'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-3487607643025538959</id><published>2010-07-21T11:25:00.000-07:00</published><updated>2010-07-21T12:26:40.646-07:00</updated><title type='text'>IPMI on FreeBSD</title><content type='html'>Here are some notes regarding how to use IPMI on FreeBSD. This information is relevant to the Dell boxes we have at work, no guarantees otherwise.&lt;br /&gt;&lt;br /&gt;To load the IPMI module into a running system, use&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;kldload ipmi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;or add the following to loader.conf and reboot (if you want the changes to be persistent)&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family: courier new;font-size:100%;" &gt;vi /boot/loader.conf&lt;br /&gt;ipmi_load="YES"&lt;br /&gt;&lt;br /&gt;shutdown -r now&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;&lt;span style="font-size:100%;"&gt;The kernel log should show output similar to this&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-size:100%;" &gt;ipmi0: &lt;ipmi&gt; on isa0&lt;br /&gt;ipmi0: KCS mode found at io 0xca8 alignment 0x4 on isa&lt;br /&gt;ipmi0: KCS error: ff&lt;br /&gt;ipmi0: IPMI device rev. 0, firmware rev. 2.2, version 2.0&lt;br /&gt;ipmi0: Number of channels 4&lt;br /&gt;ipmi0: Attached watchdog&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Install the ipmitool package/port. you should now be able to talk to ipmi on the local machine (or remote machines for that matter). Here are a couple of commands that I've found useful.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ipmitool lan print&lt;/span&gt;&lt;br /&gt;Prints the current Ethernet configuration for the BMC.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ipmitool lan set&lt;/span&gt;&lt;br /&gt;Prints the usage information for configuring the BMC LAN settings. A channel is required for setting these parameters. In my [limited] experience, the channel is always "1".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ipmitool sensor&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ipmitool sdr list&lt;/span&gt;&lt;br /&gt;Prints information about the sensors that can be monitored via ipmitool. the -v parameter added to ipmitool sensor prints the information organized in a list format.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Additional Information (sources):&lt;br /&gt;&lt;a href="http://www.freebsdwiki.net/index.php/IPMI"&gt;FreeBSDwiki IPMI page&lt;/a&gt;&lt;br /&gt;&lt;a href="http://forum.likg.org.ua/linux-specific/ipmi-notes-very-raw-edition-t72.html"&gt;Linux IPMI notes (some FreeBSD info here)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://linux.dell.com/ipmi.shtml"&gt;Dell Linux IPMI page&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-3487607643025538959?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/3487607643025538959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2010/07/ipmi-on-freebsd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/3487607643025538959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/3487607643025538959'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2010/07/ipmi-on-freebsd.html' title='IPMI on FreeBSD'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-81721065597961193</id><published>2010-07-21T06:45:00.000-07:00</published><updated>2010-07-30T07:05:49.714-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='VLAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Dell'/><category scheme='http://www.blogger.com/atom/ns#' term='Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Is FreeBSD clobbering your IPMI LAN access?</title><content type='html'>We've been enabling IPMI/BMC on our servers for environment monitoring, remote control, etc. Our newer Dell R300 servers share NIC #1 with IPMI and the Operating System. I noticed that IPMI works before FreeBSD starts the Ethernet drivers, then it stops responding. It turns out that this behavior can be stopped by adding a line to loader.conf. Here are the steps to do this (found on &lt;a href="http://forum.i3d.net/general/32419-enabling-dell-bmc-freebsd-7-a.html"&gt;this&lt;/a&gt; page):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Edit /boot/loader.conf, appending the following line:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;hw.bge.allow_asf="1"&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Save the file and reboot.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;This also works if you have configured the BMC to use VLAN tagging.&lt;br /&gt;&lt;br /&gt;On a side note, it is worth noting that IPMI != DRAC; IPMI == BMC. DRAC refers to the enhanced management tools provided by an add-in DRAC card or integrated into some higher-end Dell servers. This includes a web interface for configuration/monitoring and remote console (in the higher-end implementations). DRAC provides IPMI instrumentation and control, but IPMI does not provide DRAC functionality.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Update/Big Fat Warning: using IPMI on the same interface as your LAN can cause BIG problems with the bge driver. See &lt;/span&gt;&lt;a style="font-weight: bold; font-style: italic;" href="http://www.blissfulidiot.com/2010/07/random-server-crashes-r300-ipmi-bad.html"&gt;this&lt;/a&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt; post.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-81721065597961193?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/81721065597961193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2010/07/is-freebsd-clobbering-your-ipmi-lan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/81721065597961193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/81721065597961193'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2010/07/is-freebsd-clobbering-your-ipmi-lan.html' title='Is FreeBSD clobbering your IPMI LAN access?'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-1117375795220828909</id><published>2010-07-15T12:35:00.000-07:00</published><updated>2010-07-15T12:42:29.125-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SNMP'/><category scheme='http://www.blogger.com/atom/ns#' term='Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Getting net-snmp to use Liebert MIBs...any MIBs for that matter.</title><content type='html'>After far too much screwing around trying to get this work, I finally figured out how to get snmpwalk to display the text names of OIDs for our Liebert MPH rack PDUs. I downloaded the Liebert Global Products MIB from the Liebert website and placed them in ~/.snmp/mibs/. The Readme file in the downloaded archive says that MIBs need to be loaded in a specific order, which did nothing more me than to waste a lot of time. In order to use the extracted MIBs while walking the Emerson (Liebert) tree, use the -mall argument with snmpwalk.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;snmpwalk -v 2c -c public -mall -OS 10.20.30.40 1.3.6.1.4.1.476&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-1117375795220828909?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/1117375795220828909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2010/07/getting-net-snmp-to-use-liebert-mibsany.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/1117375795220828909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/1117375795220828909'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2010/07/getting-net-snmp-to-use-liebert-mibsany.html' title='Getting net-snmp to use Liebert MIBs...any MIBs for that matter.'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-1833045515635641861</id><published>2010-01-26T13:16:00.000-08:00</published><updated>2010-06-28T06:31:04.751-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VM'/><category scheme='http://www.blogger.com/atom/ns#' term='VLAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><category scheme='http://www.blogger.com/atom/ns#' term='Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtual Machine'/><category scheme='http://www.blogger.com/atom/ns#' term='Squeeze'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Using VLANs with Virtualbox</title><content type='html'>After a number of hours wasted trying to figure out why my VLANs stopped working, it's probably a good idea to make note of what I found.&lt;br /&gt;&lt;br /&gt;I have a lot of different Virtualbox VMs created that I use for testing different things. A while back I created a VM image to act as a PPPoE server (Debian squeeze guest running on a lenny host). For reasons that made sense to me at the time, I created VLANs on the guest operating system rather than on the host system (and attaching virtual network adaptors to the guest VM). I hadn't used this VM in several months until today; when I fired up the VM for some PPPoE testing. Unsurprisingly, the VM didn't have any network connectivity on boot. I figured it would probably take some finagling to get things working exactly the way they were working before. However the topology was correct, the switch set up properly, and still no PPPoE.&lt;br /&gt;&lt;br /&gt;After several hours of screwing around with different VirtualBox versions, different combinations of host/guest VLAN configurations, etc. I identified the following behaviors:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;On a clean reboot of the host, the VLANs on the virtual machine work fine.&lt;/li&gt;&lt;li&gt;As soon as I add a VLAN to the ethernet interface on the host, connectivity to the guest fails.&lt;/li&gt;&lt;li&gt;If I remove the VLAN from the host, guest connectivity is restored.&lt;/li&gt;&lt;/ol&gt;The wheels started spinning and I remembered that at some point in the past I had a bridge interface configured on my host machine. I had recently removed the bridge in order to simplify my configuration. Some quick testing confirmed that when my host machine is configured with a virtual bridge interface, VLANs on the host can happily coexist with VLANs on the guest. My network configuration necessary to set this up is as follows.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Add a bridge interface br0 to the host.&lt;/li&gt;&lt;li&gt;Add ethernet adaptor eth0 to bridge br0.&lt;/li&gt;&lt;li&gt;Add the host VLAN interfaces to bridge br0.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Configure appropriate IP addressing for the host to br0.&lt;/li&gt;&lt;li&gt;Attach the VirtualBox VM network interface to eth0.&lt;/li&gt;&lt;/ol&gt;In this configuration, both the host and the guest are able to create tagged VLAN interfaces without conflicting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-1833045515635641861?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/1833045515635641861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2010/01/using-vlans-with-virtualbox.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/1833045515635641861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/1833045515635641861'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2010/01/using-vlans-with-virtualbox.html' title='Using VLANs with Virtualbox'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-3045924035478577483</id><published>2010-01-24T08:17:00.000-08:00</published><updated>2010-01-24T08:24:41.879-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kerberos'/><category scheme='http://www.blogger.com/atom/ns#' term='NFS'/><category scheme='http://www.blogger.com/atom/ns#' term='Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Squeeze'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Did your Kerberos authenticated NFS mounts all just break?</title><content type='html'>Here's why. A recent update to the krb5 packages disabled weak ciphers, DES in particular. I'm all for stronger security, but when it breaks my system, I get a bit crabby. I was the dummy here, I saw there message during the update process about possible NFS breakage due to the weak ciphers being disabled. I ignored the messages because I was in a hurry and I figured it would be a two minute fix. An hour and a half later I now have it fixed. &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=564753"&gt;Here is a link to the bug report that helped me&lt;/a&gt;. The fix is to re-enable the weak ciphers in your /etc/krb5.conf filein the libdefaults section.&lt;br /&gt;&lt;br /&gt;&lt;pre class="message"&gt;allow_weak_crypto = true&lt;/pre&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-3045924035478577483?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/3045924035478577483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2010/01/did-your-kerberos-authenticated-nfs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/3045924035478577483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/3045924035478577483'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2010/01/did-your-kerberos-authenticated-nfs.html' title='Did your Kerberos authenticated NFS mounts all just break?'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-6824556582513906245</id><published>2009-11-14T07:09:00.000-08:00</published><updated>2009-11-16T08:21:24.865-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Karmic'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenLDAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>OpenLDAP in Ubuntu Karmic Koala (9.10)</title><content type='html'>I've decided to try Ubuntu again because she's prettier than her big sister Debian and I had the naive hope that she might have finally gotten some professional help and a big dose of the crazy pills she needed. I was wrong, once you get past the sexy exterior she's still the same old pile of crazy that she was before.&lt;br /&gt;&lt;br /&gt;I've been trying to set up a bunch of services and the documentation is generally useless since it's usually incomplete or so wrong that I wonder if the documentation team  is a bunch of chimps flinging poo. So there will be a number of posts here to fill in some of the blanks. Ubuntu doc team, if you read this, please fix the docs rather than just cut and paste the manual from the last release.&lt;br /&gt;&lt;br /&gt;First up, LDAP! FWIW, &lt;a href="https://help.ubuntu.com/9.10/serverguide/C/openldap-server.html"&gt;here is the original doc.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Getting it running&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;OpenLDAP in Ubuntu Karmic Koala (9.10) is not installed as described in the Ubuntu community documentation. Among its many detestable qualities, you are not prompted for the initial directory configuration during the dpkg run, and the way LDAP is setup is different from my (admittedly sketchy) recollection of how it was previously set up.&lt;br /&gt;&lt;br /&gt;There is some documentation in forums on getting LDAP working properly, some of it good, some of it not. The post that got OpenLDAP running (properly?) for me is &lt;a href="http://ubuntuforums.org/showthread.php?t=1313472&amp;amp;highlight=ldap"&gt;here&lt;/a&gt;. At the very least it was enough to allow me to get access to the database with PHPLDAPAdmin.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Creating SSL/TLS Certificates for LDAP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="https://help.ubuntu.com/9.10/serverguide/C/certificates-and-security.html#certificate-authority"&gt;official SSL Certificate document&lt;/a&gt; is surprisingly good. I followed it to set up a CA and create certificates for LDAP with pretty good results. There was only important thing that was not mentioned in the doc:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Take care to make sure that the correct permissions are set on private keys. These keys should not be readable by any user other than absolutely necessary for security.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The section of the LDAP documentation that describes setting up certs does the trick, but there are a couple things I recommend changing.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The document instructs you to add the openldap user to the ssl-cert group. I don't like this because it means that an attacker that compromises openldap can now read any private SSL keys also owned by ssl-cert (Apache?, OpenVPN?, could be bad). As an alternative, I used ACLs to give the openldap user access to the one specific file that it needs access to.&lt;/li&gt;&lt;li&gt;The Common Name field on your LDAP certificate should match the hostname of the server that any LDAP clients connect to; otherwise the LDAP clients will freak out.&lt;/li&gt;&lt;li&gt;Any LDAP clients need to be given a copy of the CA cert and instructed to use it. The following line should be added to the /etc/ldap/ldap.conf file and changed as appropriate to point at the CA certificate.&lt;pre&gt;  TLS_CACERT /usr/local/etc/openldap/cacert.pem&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;If you are having difficulty testing to see if your SSL LDAP is working properly, try the following command, substituting your LDAP information.&lt;/span&gt;&lt;pre&gt;ldapsearch -x -ZZ -d -1 -b 'dc=example,dc=com' \&lt;br /&gt;-D 'cn=user,dc=example,dc=com' -h ldap.example.com -W&lt;span style="font-family:Georgia,serif;"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Georgia,serif;"&gt;The section that discusses adding additional schemas to OpenLDAP is accurate, but not very clear. Step 3 uses the slapcat command to convert schema files to LDIF format. Unless you want to import the misc schema only, the schema files that you actually want are the ones in the ldif_output directory. Change the first line to the format &lt;pre&gt;dn: cn=SCHEMA_NAME,dc=schema,dc=config&lt;/pre&gt; and the third line to &lt;pre&gt;cn: SCHEMA_NAME&lt;/pre&gt;Remove the lines at the bottom as instructed, then import the schema file as instructed (using the correct file name of course).&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-6824556582513906245?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/6824556582513906245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2009/11/ldap-in-ubuntu-karmic-910.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/6824556582513906245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/6824556582513906245'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2009/11/ldap-in-ubuntu-karmic-910.html' title='OpenLDAP in Ubuntu Karmic Koala (9.10)'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7201361257160129196.post-5202285605824893291</id><published>2009-10-21T18:55:00.000-07:00</published><updated>2009-10-22T15:15:15.896-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='Grub'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Squeeze'/><title type='text'>Howto get your windows boot option back after grub2/Squeeze nukes it!</title><content type='html'>I hate bootloaders, they either work fine, or they're a royal pain. And just when I was really starting to understand grub, they go ahead and release grub2. I mistakenly upgraded to grub2 on my desktop a while ago, and learned that grub2 has a tendency to forget about Windows. This was irritating, but not the end of the world, I just didn't use windows for almost a year.&lt;br /&gt;&lt;br /&gt;More recently, Debian Squeeze didn't give me much of a choice about installing grub2, and promptly disappeared Windows on my notebook. This got me doing a little more digging to figure out why a "new and improved" version of grub would actually be less capable. Could this be some stallmanesque scheme to force me into the freedom orgy?&lt;br /&gt;&lt;br /&gt;Nope, something far less insidious. Apparently there is now an extra package that grub2 requires to find operating systems besides linux. That package is os-prober. So if you've pwned your windows install like I did, just do an 'apt-get install os-prober', then run 'grub-update'. Your Windows option will magically reappear!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7201361257160129196-5202285605824893291?l=www.blissfulidiot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blissfulidiot.com/feeds/5202285605824893291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blissfulidiot.com/2009/10/howto-get-your-windows-boot-option-back.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/5202285605824893291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7201361257160129196/posts/default/5202285605824893291'/><link rel='alternate' type='text/html' href='http://www.blissfulidiot.com/2009/10/howto-get-your-windows-boot-option-back.html' title='Howto get your windows boot option back after grub2/Squeeze nukes it!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03570804732941107175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://3.bp.blogspot.com/_WVQ2vO4g5XM/SYZ0co8clXI/AAAAAAAAAEA/bYI6yM8OLEE/S220/shrunkme.jpg'/></author><thr:total>0</thr:total></entry></feed>
