Hyper-V CentOS 5.2 Distributions

Update: 22nd May 2009 - This does not work with CentOS 5.3 or RedHat 5.3.
Update:
29th December 2008 - I have compacted the original vhd files rather better, and the total download for each version is now about 2.3 Gbytes.

To make life easier for everyone, I have put together a couple of VHD files for Hyper-V that contain a pre-built x86 and x86_64 (x64) distribution of CentOS 5.2 including pre-installed Linux Integration Components. They are fully patched up to date, including the latest kernel version available, as of Christmas 2008.

The root password for each of them is the word “password” (without the quotes).

To construct each one, go to the relevant directories for
the x86 (32-bit)
or x64 (64-bit)
versions and download all the zip files in the directory.

Unpack each zip file and you will have a string of files partaa, partab, partac and so on.

On a Windows system you can join these together into the .vhd file with the command (in a normal Command Prompt window)
x86: copy /B partaa+partab+partac+partad+partae+partaf+partag+partah+partai+partaj+partak+partal CentOS5.2.x86.vhd
(all of that should be on one line)
x64: copy /B partaa+partab+partac+partad+partae+partaf+partag+partah+partai+partaj+partak+partal CentOS5.2.x64.vhd
(all of that should be on one line)

You should end up with a single .vhd file with the following size:
x86: 16173279232 bytes
x64: 18433592832 bytes

Then just build a virtual machine around each one with the .vhd file as the IDE hard disk, and with a Network Adapter (not a Legacy Network Adapter) in it.

Remember that the root password is the word “password” (without the quotes).

You will need to edit these files
  • /etc/hosts
  • /etc/resolv.conf
  • /etc/sysconfig/network

and then run the command “setup” to configure the IP address and so on of the “seth0” network device. Then just reboot and you’re away.

If you need a graphical interface with a mouse and such, then change the “3” to a “5” in the “default” line in /etc/inittab and reboot. But I would advise leaving it in text-only mode.
Comments

Creating iPhone Ringtones

The easiest way to create iPhone ringtones is to use audiko.net.

You upload an MP3 track, cut out the bit you want to use as a ring tone, add a fade-in or fade-out if you want to, then just click the button to generate a .m4r file to use as an iPhone ringtone. Save the m4r file and drag it onto the “Library” heading in your iTunes.
Comments

Speeding Up Ext3 Filesystems

There are a few things you can do to speed up the ext3 filesystem, and when combined they make a lot of difference!

Firstly, you probably don’t need to store the “last accessed” time of every file and/or every directory, so add “noatime,nodiratime” to the mount options in /etc/fstab (add a comma then that text straight after the word “defaults” in the relevant line of /etc/fstab).

Furthermore, you can optimise the caching of data in the filesystem by adding “data=writeback” to the mount options in /etc/fstab. This is pretty safe as long as your system isn’t very busy and liable to lose power without warning. The only downside is that should it lose power while writing to the disk, a few files may end up with slightly old content in them.

The last one is a little more complicated, but well worth doing. You can change the directories to be B-trees instead of lists, which are a lot faster if you have many files in each directory. Say your filesystem is mounted off /dev/sdb1, for example.
  1. Unmount the filesystem, having stopped all processes that are using it, with “umount /dev/sdb1”.
  2. Change the directory indexing with “tune2fs -O dir_index /dev/sdb1”.
  3. Re-build all the existing directories with “e2fsck -D /dev/sdb1”.
  4. Reboot, or else remount the filesystem and start the processes back up. Rebooting is simpler Happy
  5. That should make your filesystem run a whole lot faster!
Comments

Overnight EyeTV Exports

I have taken a script written by someone else and totally re-written it.
It takes your EyeTV recordings archive and produces exported versions of all the recordings in a format of your choice. It either puts these in the packages with the other EyeTV files for that recording, or saves them all out to a new directory of your choice with a filename that is made up of “ - <recorded date>.<extension>”. You get to choose the format, and the extension.<br /><br />You can download the <a href="files/JKFEyeTVExport.scpt" rel="self">JKFEyeTVExport.scpt script here</a> or the <a href="files/JKFEyeTVExport.applescript" rel="self">plain text version</a> of it.<br /><br />You can run it regularly by simply using a cron job, as detailed at the top of the script. Alternatively, you can create a repeating iCal alarm which runs the script, if you are scared of using cron!<p class="blog-entry-tags">Tags: <a href="tag-eyetv.html" title="EyeTV" rel="tag">EyeTV</a>, <a href="tag-elgato.html" title="Elgato" rel="tag">Elgato</a>, <a href="tag-applescript.html" title="AppleScript" rel="tag">AppleScript</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="scheduled_eyetv_exports.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-38" class="blog-entry"><h1 class="blog-entry-title"><a href="install_mailman.html" class="blog-permalink">Installing Mailman</a></h1><div class="blog-entry-date">20/10/08 09:26 Filed in: <span class="blog-entry-category"><a href="category-email.html">Email</a></span></div><div class="blog-entry-body">Fortunately, to make life very easy, there is a copy of the latest Mailman included with RedHat 5.2 or CentOS, so just<br /><span style="font:12px Courier, mono; ">yum install mailman<br />yum update</span><br />and you’re on your way.<br />However, Mailman 2 currently does not support virtual email domains, so I have applied a <a href="https://lethe.koumbit.net/trac/koumbit/browser/trunk/patches/mailman-true-virtual-2.1.9.patch?rev=1962" rel="self">small patch</a> by hand to add this functionality.<br /><br />The <a href="http://www.gnu.org/software/mailman/mailman-install/index.html" rel="self">Mailman Installation Manual</a> is very good and will walk you through all the configuration steps required, which shouldn’t take you more than an hour or two at most. You will find most of it has been done for you by the RPM packagers at RedHat. About the only bits you need to bother with are<br /><ul class="disc"><li>7 Review your site defaults</li><li>8 Create a site-wide mailing list</li><li>11 Check the hostname settings</li><li>12 Create the site password</li><li>13 Create your first mailing list</li></ul><br />If you are moving from Majordomo to Mailman, you may be interested in my <a href="files/convert_majordomo_to_mailman.html" rel="self">majordomo2mailman</a> script which will do all the hard work for you.<br /><p class="blog-entry-tags">Tags: <a href="tag-mailman.html" title="Mailman" rel="tag">Mailman</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="install_mailman.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-37" class="blog-entry"><h1 class="blog-entry-title"><a href="convert_majordomo_to_mailman.html" class="blog-permalink">Converting Majordomo Mailing Lists to Mailman</a></h1><div class="blog-entry-date">20/10/08 09:08 Filed in: <span class="blog-entry-category"><a href="category-email.html">Email</a></span></div><div class="blog-entry-body">This appears to be a fairly common problem, with very few decent solutions to the problem. It’s all very well converting lists over by hand if you only have a few, but if you have hundreds of them then that is not practical.<br /><br />So I have taken a script originally written by Brad Marshall (b.marshall@cqu.edu.au) and fixed some bugs, extended it and improved it.<br /><br />You can download the resulting <a href="files/majordomo2mailman" rel="self">majordomo2mailman script here</a>.<br /><br />If you run it as “majordomo2mailman --help” then it will show you how to use it.<br />You will need to edit the settings at the top of the script to match the layout of your server, as it needs a copy of the Majordomo lists directory and the Majordomo aliases file to work from. I wrote this to work with sendmail, but converting it to work with any other MTA should be trivial, you just need to bash your aliases database into a file that looks like a sendmail one, i.e. one alias per line, with the format<br />alias: value<br />on each line.<br />To start with, you might want to enable debugging, which you can do at the top of the script.<br /><br />If you use it, I would greatly appreciate a small donation. I have an <a href="http://www.amazon.co.uk/exec/obidos/registry/1W99HT2WWW5PB/ref=wl_s_3/202-4416313-7478212" rel="self">Amazon.co.uk wishlist</a>. Thank you.<br /><br />Don’t forget to make the <a href="files/majordomo2mailman" rel="self">majordomo2mailman</a> script executable after you have downloaded it!<p class="blog-entry-tags">Tags: <a href="tag-majordomo.html" title="Majordomo" rel="tag">Majordomo</a>, <a href="tag-mailman.html" title="Mailman" rel="tag">Mailman</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="convert_majordomo_to_mailman.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-36" class="blog-entry"><h1 class="blog-entry-title"><a href="vista_speedup.html" class="blog-permalink">Windows Vista Speed-Ups</a></h1><div class="blog-entry-date">16/09/08 20:41 Filed in: <span class="blog-entry-category"><a href="category-windows-vista.html">Windows Vista</a></span></div><div class="blog-entry-body">This is a brief description of some of the things I have done to make Windows Vista usable on a laptop. It starts a lot of services that you don’t need, and enables lots of graphics features that you may not have hardware support for. So turn them off!<br /><br /><ul class="disc"><li>Disable User Account Control. In Start / Control Panel / User Accounts / Turn User Account Control on or off, turn it off.</li><li>Disable Transparency and a few of the nice graphics effects. This is all in Start / Control Panel / Personalize / Windows Color and Appearance.</li><li>Also in Start / Control Panel / Personalize / Windows Color and Appearance / Open classic appearance... / Advanced... there you can change the size of the Active Title Bar to its minimum, and the Active Window Border to its minimum, and it will look less like it’s all been drawn with a 5-year old’s crayon.</li></ul><br />The main one to hit is Start / Administration Tools / Services. If you don’t have that, then right-click on the Start button as add Administration Tools to the Start menu.<br /><br />The services that are enabled on my system are these. You may not have some of these due to software I have installed (mostly Apple stuff), and you may have a few extras due to extra software you have installed, which is probably mostly obvious.<br /><br />You need these enabled:<br /><ul class="disc"><li>Adobe Active File Monitor V6</li><li>Apple Mobile Device</li><li>Application Experience</li><li>Background Intelligent Transfer Service</li><li>Base Filtering Engine</li><li>Bluetooth Support Service</li><li>CNG Key Isolation</li><li>COM_ Event System</li><li>Computer Browser</li><li>Cryptographic Services</li><li>DCOM Server Process Launcher</li><li>Desktop Window Manager Session Manager</li><li>DHCP Client</li><li>Diagnostic Policy Service</li><li>Diagnostic System Host</li><li>DNS Client</li><li>Extensible Authentication Protocol</li><li>F-PROT Antivirus for Windows system</li><li>Group Policy Client</li><li>GtFlashSwitch</li><li>Human Interface Device Access</li><li>IKE and AuthIP IPsec Keying Modules</li><li>iPod Service</li><li>IviRegMgr</li><li>KtmRm for Distributed Transaction Coordinator</li><li>Multimedia Class Scheduler</li><li>Network Connections</li><li>Network List Service</li><li>Network Location Awareness</li><li>Network Store Interface Service</li><li>NSUService</li><li>Personal Secure Drive Service</li><li>PGPserv</li><li>Plug and Play</li><li>Print Spooler</li><li>Program Compatibility Assistant Service</li><li>ReadyBoost</li><li>Remote Access Connection Manager</li><li>Remote Procedure Call (RPM))</li><li>Secondary Logon</li><li>Secure Socket Tunneling Protocol Service</li><li>Security Accounts Manager</li><li>Security Center</li><li>Security Platform Management Service</li><li>Server</li><li>Shell Hardware Detection</li><li>Software Licensing</li><li>SSDP Discovery</li><li>Superfetch</li><li>System Event Notification Service</li><li>Task Scheduler</li><li>TCP/IP NetBIOS Helper</li><li>Telephony</li><li>Themes</li><li>TPM Base Services</li><li>Trusted Playform Core Service</li><li>User Profile Service</li><li>VAIO Entertainment Database Service</li><li>VAIO Entertainment File Import Service</li><li>VAIO Entertainment TV Device Arbitration Service</li><li>VAIO Entertainment UPnp Client Adapter</li><li>VAIO Event Service</li><li>Windows Audio</li><li>Windows Audio Endpoint Builder</li><li>Windows Driver Foundation - User-mode Driver Framework</li><li>Windows Error Reporting Service</li><li>Windows Event Log</li><li>Windows Firewall</li><li>Windows Management Instrumentation</li><li>Windows Presentation Foundation Font Cache 3.0.0.0</li><li>Windows Update</li><li>WLAN AutoConfig</li><li>Workstation</li><li>XAudioService</li></ul><br />All other services, I have disabled. This is actually quite a few, despite the length of the above list. All the ones listed above are Started after a normal boot.<br /><br />Before changing the list of services you have enabled, I strongly advise creating a restore point (My Computer / Properties / somewhere).<br /><br />I am using Superfetch as a bit of a test. This is the service that tries to guess which programs you will run depending on the day of the week. It will learn over time, so gradually improve performance. That’s the idea anyway. If you don’t like it, or run a totally random unpredictable set of programs when you boot each time, then disable the Superfetch service as well.<br /><br />Using the setup above, I have got Windows Vista running at a vaguely usable speed. It’s still to start up applications, but that’s due to Microsoft dropping direct support for the graphics API that all Windows apps have always used. That was doomed to cause immense trouble for them, whatever anyone did. Virtually no normal apps use DirectX, and that’s all they support now. So every app in the book runs horribly slowly through an emulation layer. Fools.<br /><br />But other than that, this gets Vista working just about as fast as you’ll get it going. Look up “Speed up Windows Vista” in Google too, that will give you some tricks I have also done and forgotten about here.<br /><p class="blog-entry-tags">Tags: <a href="tag-windows.html" title="Windows" rel="tag">Windows</a>, <a href="tag-vista.html" title="Vista" rel="tag">Vista</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="vista_speedup.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-35" class="blog-entry"><h1 class="blog-entry-title"><a href="mailscanner_watermarks_exchange.html" class="blog-permalink">MailScanner Watermarks from Exchange Server 2007</a></h1><div class="blog-entry-date">29/08/08 10:33 Filed in: <span class="blog-entry-category"><a href="category-mailscanner.html">MailScanner</a></span><span class="blog-entry-category"> | <a href="category-exchange-server-2007.html">Exchange Server 2007</a></span></div><div class="blog-entry-body">Someone has written a very handy utility for Exchange Server 2007 so that it can generate MailScanner-compatible “watermarks”. This means that you don’t need to send all your outgoing mail through a MailScanner server just to get the watermark added. The watermarks are added so that when you get a bounce notification (a DSN), MailScanner knows that it generated the original mail, and will therefore let the bounce error message through. By default, MailScanner will delete bounce notifications that it didn’t generate, as these are spam on the whole.<br /><br />It is all documented here:<br /><a href="http://ifyoudo.net/post/2008/08/07/MailScannerWatermark-Plugin-For-Microsoft-Exchange-2007.aspx" rel="external">http://ifyoudo.net/post/2008/08/07/MailScannerWatermark-Plugin-For-Microsoft-Exchange-2007.aspx</a><br /><p class="blog-entry-tags">Tags: <a href="tag-linux.html" title="Linux" rel="tag">Linux</a>, <a href="tag-mailscanner.html" title="MailScanner" rel="tag">MailScanner</a>, <a href="tag-exchange.html" title="Exchange" rel="tag">Exchange</a>, <a href="tag-watermarks.html" title="Watermarks" rel="tag">Watermarks</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="mailscanner_watermarks_exchange.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-34" class="blog-entry"><h1 class="blog-entry-title"><a href="hyper-v_lic_rc2_download.html" class="blog-permalink">Hyper-V Linux Integration Components RC2 Download</a></h1><div class="blog-entry-date">28/07/08 15:44 Filed in: <span class="blog-entry-category"><a href="category-hyper-v.html">Hyper-V</a></span><span class="blog-entry-category"> | <a href="category-linux.html">Linux</a></span></div><div class="blog-entry-body">To make it easy to find, the RC2 of the Microsoft Windows Server 2008 Hyper-V Linux Integration Components can be found here: <a href="http://users.ecs.soton.ac.uk/jkf/LinuxIC-RC2.zip" rel="self">Linux-IC-RC2</a>.<p class="blog-entry-tags">Tags: <a href="tag-hyper-v.html" title="Hyper-V" rel="tag">Hyper-V</a>, <a href="tag-linux.html" title="Linux" rel="tag">Linux</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="hyper-v_lic_rc2_download.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-33" class="blog-entry"><h1 class="blog-entry-title"><a href="speed_up_ext3.html" class="blog-permalink">Speeding Up ext3 Filesystems</a></h1><div class="blog-entry-date">22/07/08 12:13 Filed in: <span class="blog-entry-category"><a href="category-linux.html">Linux</a></span></div><div class="blog-entry-body">There are a few things you can do to speed up the operation of ext3 filesystems, by changing some of the ways in which it behaves by default.<br /><br />This is all for /dev/sda1, change it to suit the partition you are working with. Make sure you have an ext3 filesystem on there already, and ensure you have unmounted the filesystem first.<br /><br /><span style="font:12px Courier, mono; ">umount /dev/sda1<br />tune2fs -Ohas_journal -o journal_data_writeback /dev/sda1<br />tune2fs -O dir_index /dev/sda1<br />e2fsck -D /dev/sda1<br /></span>Add ",noatime,nodiratime" to the list of options in the relevant line in /etc/fstab.<br /><span style="font:12px Courier, mono; ">mount /dev/sda1<br /></span><p class="blog-entry-tags">Tags: <a href="tag-linux.html" title="Linux" rel="tag">Linux</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="speed_up_ext3.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-32" class="blog-entry"><h1 class="blog-entry-title"><a href="win2008_linuxic_rc2_rhel.html" class="blog-permalink">Hyper-V Linux Integration Components in x86_64 and x86 CentOS and RHEL</a></h1><div class="blog-entry-date">22/07/08 11:53 Filed in: <span class="blog-entry-category"><a href="category-hyper-v.html">Hyper-V</a></span><span class="blog-entry-category"> | <a href="category-windows-server-2008.html">Windows Server 2008</a></span></div><div class="blog-entry-body"><span style="color:#000000;font-weight:bold; ">Update: 16th February 2010:</span><span style="color:#000000;"> Added “unifdef” to the list of required RPMs to build the kernel.</span><span style="color:#000000;font-weight:bold; "><br />Update: 10th September 2008: </span><span style="color:#000000;">This page has been updated for the final release version of the Linux Integration Components.<br /></span><span style="color:#000000;font-weight:bold; ">Update: 19th September 2008: </span><span style="color:#000000;">This page has been updated for CentOS and RedHat x86_64 and x86 releases, so all 4 variations are covered.<br /></span><span style="color:#000000;font-weight:bold; ">Update: 2nd December 2008:</span><span style="color:#000000;"> Link to Hyper-V Tools updated to 1.0 finally.<br /></span><strong>Update: 22nd May 2009:</strong> This does <strong>not</strong> work with CentOS 5.3 or RedHat 5.3.<br /><span style="color:#000000;"><br />This page tells you how to install the Windows Server 2008 virtualization Hyper-V Linux Integration Components in CentOS and RHEL (RedHat Enterprise Linux) 5. I initially did it all in x86_64 (or x64) as it is much more interesting and useful. There are also notes below about setting it up on 32-bit systems where there are differences.<br /><br />Installing the ICs in CentOS 5.2 or RHEL 5.2 is rather harder than in SuSE 10.<br /><br /></span><h2>Configuring the Virtual Machine</h2><span style="color:#000000;">Using the Hyper-V Manager, edit the settings of your new RHEL or CentOS virtual machine, and add a Network Adapter (in addition to the Legacy Network Adapter you already have) and a SCSI Controller with a Hard Drive attached to it. Ensure the Network Adapter is assigned to the virtual network that contains your physical external network card. The hardware settings window should look similar to this:<br /><br /></span><img class="imageStyle" alt="page5_blog_entry30_1" src="page5_blog_entry32_1.png" width="248" height="489"/><br /><br />By the time you reach the end of this guide, you will be able to use the RedHat or CentOS “setup” program and /etc/sysconfig/network-scripts/ifcfg-eth0 and ifcfg-seth0 files to set your seth0 interface as the primary interface to use in the virtual machine.<br /><br /><h2>Fetching the Tools</h2>You first need to fetch a copy of the ISO image from the zip of the <a href="http://www.jules.fm/files/Hyper-V-Linux-1.0.exe" rel="self">Linux Integration Components</a>.<br />You need to copy the code off the CDROM ISO image, so let’s start by doing that. Using the “Media” menu in the Hyper-V “Connect...” window, choose “DVD Drive”, “Insert Disk...” and select the Linux Integration Components ISO image, usually called “LinuxIC.iso”. Then<br /><span style="font:12px Courier, mono; ">mkdir -p /mnt/cdrom<br />mount /dev/cdrom /mnt/cdrom<br />cp -rp /mnt/cdrom /opt/linux_ic<br />umount /mnt/cdrom<br /></span><br />I strongly advise at this point that you make sure you have the latest patches and updates on your system, so do “<span style="font:12px Courier, mono; ">yum update</span>“.<br /><br />Next, get the kernel source for the exact version of kernel you are using. “rpm -q kernel” will tell you what kernel you have. Remember that a “yum update” may change the kernel version. For this example HOWTO, “rpm -q kernel” produced “kernel-2.6.18-92.el5” so my kernel source RPM will be “kernel-2.6.18-92.el5.src.rpm”.<br /><br />Once you have the the kernel version, go and find the kernel source SRPM.<br /><strong>RedHat:</strong> You can get this from ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/kernel-2.6.18-92.el5.src.rpm.<br /><strong>CentOS:</strong> You can get this from ftp://mirrorservice.org/sites/mirror.centos.org/5.2/updates/SRPMS/kernel-2.6.18-92.1.10.el5.src.rpm.<br />You will obviously have to get networking working using the legacy network adapter so that you can reach ftp.redhat.com to fetch this file.<br /><br /><h2>Building the Kernel</h2>In order to install and build the kernel, there are a few packages you need to ensure you have installed. If you installed everything, then don’t worry. If you didn’t, then you will find you will need to do this, which should install all the packages you actually need:<br /><span style="font:12px Courier, mono; ">yum install redhat-rpm-config gcc rpm-build make gnupg unifdef</span><br />If you are not sure, run that command anyway, it will not do any harm if you already have the packages installed.<br /><br />Install the SRPM with the command<br /><span style="font:12px Courier, mono; ">rpm -ivh kernel-*.src.rpm<br /></span>which will get you the full kernel source in /usr/src/redhat/SOURCES (along with all RedHat’s patches) and the spec file in /usr/src/redhat/SPECS/kernel-2.6.spec. You need to edit the spec file, so make a backup copy of it first for safety.<br /><br />Before the “%build” line, insert this line:<br /><strong>64-bit systems: </strong><span style="font:12px Courier, mono; ">patch -p1 -d ../linux-%{kversion}.%{_target_cpu} < /opt/linux_ic/patch/x2v-x64-rhel.patch<br /></span><strong>32-bit systems: </strong><span style="font:12px Courier, mono; ">patch -p1 -d ../linux-%{kversion}.%{_target_cpu} < /opt/linux_ic/patch/x2v-x32-rhel.patch</span><br /><br />You also want to only build the “xen” version of the kernel. So find the line that defined “%define with_xen” and change it to<br /><span style="font:12px Courier, mono; ">%define with_xen 1<br /></span>and the line containing “%define with_xenonly”, if there is one, needs to be changed to<br /><span style="font:12px Courier, mono; ">%define with_xenonly 1<br /></span><br />You can now build the RPM, which will construct the xen one which is what you need. So<br /><span style="font:12px Courier, mono; ">cd /usr/src/redhat/SPECS<br /></span><strong>64-bit systems:</strong> <span style="font:12px Courier, mono; ">rpmbuild -ba kernel-2.6.spec<br /></span><strong>32-bit systems:</strong> <span style="font:12px Courier, mono; ">rpmbuild -ba --target i686 kernel-2.6.spec</span><br />Be warned, this will take *hours* on a on a virtual machine.<br /><br />If, shortly after that starts, you get an error about “Not enough random bytes available” then do this to make some more entropy:<br /><br /> 1. Press Ctrl-Z<br /> 2. Run the command “du / ; grep -r hello /“<br /> 3. Let this run for 30 seconds or so, then press Ctrl-C<br /> 4. Run the command “fg”<br /> 5. If nothing happens immediately, go back to step 1, just above, and try again.<br /><br /><h2>Installing the Kernel</h2><strong>64-bit systems:</strong> <span style="font:12px Courier, mono; ">cd /usr/src/redhat/RPMS/x86_64</span><br /><strong>32-bit systems:</strong> <span style="font:12px Courier, mono; ">cd /usr/src/redhat/RPMS/i686</span><br /><span style="font:12px Courier, mono; ">rpm -ivh kernel-xen-2*rpm<br />rpm -Uvh kernel-xen-devel-2*rpm<br /></span>If either of those “rpm” commands give any errors, add “--force” to the command and run it again.<br /><br />Build the x2v version of the kernel<br /><span style="font:12px Courier, mono; ">cd /opt/linux_ic<br />perl setup.pl x2v /boot/grub/grub.conf<br /></span><br />Check the /boot/grub/grub.conf file, especially the “kernel” line, but no changes should be needed on simple RedHat 64-bit single-operating-system setups.<br /><strong><br />64-bit systems: </strong>The first section of the file should look like this:<br /><span style="font:12px Courier, mono; ">title Red Hat Enterprise Linux Server (2.6.18-92.el5xen)<br />root (hd0,0)<br />kernel /x2v-64.gz<br />module /vmlinuz-2.6.18-92.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet<br />module /initrd-2.6.18-92.el5xen.img<br /></span><strong><br />32-bit systems: </strong>The first section of the file should look like this:<br /><span style="font:12px Courier, mono; ">title Red Hat Enterprise Linux Server (2.6.18-92.el5xen)<br />root (hd0,0)<br />kernel /x2v-pae.gz<br />module /vmlinuz-2.6.18-92.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet<br />module /initrd-2.6.18-92.el5xen.img<br /></span><br />Now double-check the “<span style="font:12px Courier, mono; ">kernel</span>” line, and make sure it says “<span style="font:12px Courier, mono; ">pae</span>” and not “<span style="font:12px Courier, mono; ">32</span>”.<br />Reboot, and it should boot your newly built kernel with the X2V shims in place.<br /><br /><h2>Building the Hypervisor, Network and Storage Drivers</h2>The next step is to build the drivers. There are a problem that needs fixing first, the “build” link in the /lib/modules/ directory will be broken, and you need a module build environment.<br /><br />To fix the “build” link, make it point into the kernel source that you have been building from, with something like this:<br /><span style="font:12px Courier, mono; ">cd /lib/modules/`uname -r`<br />ln -nsf /usr/src/kernels/`uname -r`-`arch` build<br /></span><br /><strong>Note:</strong> Please note that in the preceding commands, the quotes are single backquotes, not apostrophes or anything else.<br /><br /><h2>Build the Drivers</h2><br /><strong>RedHat systems:</strong><br /><span style="font:12px Courier, mono; ">cd /opt/linux_ic<br />perl setup.pl drivers<br /></span><br /><strong>CentOS systems:<br /></strong><span style="font:12px Courier, mono; ">cd /opt/linux_ic<br /></span>Edit setup.pl and look for the string “kernel-devel”. Change that to “kernel-xen-devel” and save the file.<span style="font:12px Courier, mono; "><br />perl setup.pl drivers<br /></span><br />You should now have the drivers running. If you have added a network adapter (not a “Legacy Network Adapter&rdquo<img class="blog-image-smiley" src="../../rw_common/plugins/blog/smiley_wink.png" width="21" height="21" alt="Winking" border="0" /> to your virtual machine, you should find that “ifconfig -a” outputs a new network device “seth0”. When you reboot, the vmbus module willl automatically be started, along with the other synthetic device drivers, such as the SCSI storage driver and the network driver.<br /><br /><strong>Update: 10 Sept 2008: This step does not appear to be required</strong><br />To build a new initrd image, so that all the correct drivers are detected every time your virtual machine boots, you need to do this (note this is one very long command, all on one line):<br /><span style="font:12px Courier, mono; ">mkinitrd -f --preload vmbus --preload storvsc --preload netvsc --preload blkvsc --force-ide-probe --force-scsi-probe --force-lvm-probe /boot/initrd-2.6.18-92.el5xen.img 2.6.18-92.el5xen<br /></span><br /><strong>Update: 10 Sept 2008: This section does not appear to be required</strong><br /><h2>Building the X Mouse Driver</h2>The last step is to build the mouse driver for use by X. This is very simple, you just need to install a couple of extra packages with<br /><span style="font:12px Courier, mono; ">yum install xorg-x11-server-sdk xorg-x11-proto-devel<br /></span>Note that for that “yum” command to work with RedHat Linux, you must be subscribed to their update service so that you can fetch the package, or else you will have to go and find them on your installation DVD/CDs.<br />Then<br /><span style="font:12px Courier, mono; ">cd /opt/linux_ic<br />cd drivers/dist<br />make inputvsc_install<br /></span><br /><h2>That’s it!</h2>You can now use the “setup” command to configure the networking and then edit the /etc/sysconfig/network-scripts/ifcfg-*eth* files to configure the new “seth0” interface to start on boot, and configure the old legacy “eth0” interface to not start on boot (set “ONBOOT=no” in /etc/sysconfig/network-scripts/ifcfg-eth0).<br /><br />At this point, you might want to reboot to be sure that your new network devices are configured how you expected at boot time, and that any SCSI disks specified in /etc/fstab are mounted as you expected.<br /><br />You now have the same ICs running in CentOS 5.2 or RHEL 5.2 as Microsoft intended to run in SuSE Linux.<br /><p class="blog-entry-tags">Tags: <a href="tag-hyper-v.html" title="Hyper-V" rel="tag">Hyper-V</a>, <a href="tag-linux.html" title="Linux" rel="tag">Linux</a>, <a href="tag-windows.html" title="Windows" rel="tag">Windows</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="win2008_linuxic_rc2_rhel.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-31" class="blog-entry"><h1 class="blog-entry-title"><a href="hyperv_vlans.html" class="blog-permalink">Hyper-V Virtual LANs</a></h1><div class="blog-entry-date">17/07/08 16:25 Filed in: <span class="blog-entry-category"><a href="category-hyper-v.html">Hyper-V</a></span><span class="blog-entry-category"> | <a href="category-networks.html">Networks</a></span></div><div class="blog-entry-body"><span style="color:#000000;">The Microsoft documentation for this is pretty non-existent. It is actually all very simple. In the docs, they refer a lot to the “parent domain”. All that means is the networking used by the host operating system, the Windows 2008 installation on the physical hardware.<br /><br />You need a network card that can handle 802.1q VLAN tagging, and you plug in a feed that has multiple tagged vlans on it, like what comes straight out of your Cisco or whatever corporate network. This is not something you are likely to have at home.<br /><br />Using the Hyper-V Network Manager, you add a new network with the parent VLAN tag set to the VLAN tag number corresponding to the main IP address you want your host operating system to be running in.<br /><br />In each virtual machine, you then assign the network adapter to the network you just created, and you can set the VLAN tag number for network packets destined for that virtual machine.<br /><br /></span><span style="color:#000000;font-weight:bold; ">Note: </span><span style="color:#000000;">Windows automatically attaches all the correct protocols to the correct network adapters, so don’t go over-riding its choices here unless you know exactly what you’re doing, in which case you probably aren’t reading this anyway <img class="blog-image-smiley" src="../../rw_common/plugins/blog/smiley_smile.png" width="21" height="21" alt="Happy" border="0" /> Don’t assign IPv4 or IPv6 to a network interface because you think Windows forgot and got it wrong. It didn’t. You have misunderstood. It gets it right.<br /><br /></span><h2>Example</h2><span style="color:#000000;">So say your Servers VLAN is tag 14, and your DMZ is tag 10. You want your physical server to live in your internal Servers VLAN so you can administer it nice and easily without your firewall getting in the way. But you want your virtual machine, say your corporate web site or mail server, to live in the DMZ where it is nice and safely outside your main internal network.<br /><br />You set the parent domain VLAN tag to 14, and give the virtual network adapter that just got created (it’s in your list of network connections) an IP address that corresponds to the IP range used by VLAN 14 (Servers). You set the VLAN tag of the VM’s network adapter to 10, and set the IP address in the VM to one in the IP range used by VLAN 10 (DMZ).<br /><br />Then you can administer the physical server, and get to the console of the VM, by just talking to your Servers VLAN on your internal network, safe in the knowledge that no-one accessing your VM (your corporate web site or mail server, for example) can access anything other than the VM in the DMZ, with your firewall protecting your internal network from nasties in the DMZ.<br /><br /></span><h2>Summary</h2><span style="color:#000000;">That’s really all there is to it. If you can’t get it working, then first thing to check is that the relevant tagged VLAN packets are actually being sent down the cable to your server, which may need extra configuration on your corporate network routers/switches. Once the tagged VLAN packets are getting to your Win2008 server, there’s not much that can go wrong.<br /></span><p class="blog-entry-tags">Tags: <a href="tag-hyper-v.html" title="Hyper-V" rel="tag">Hyper-V</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="hyperv_vlans.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-28" class="blog-entry"><h1 class="blog-entry-title"><a href="mac_squeezebox_connection_sharing.html" class="blog-permalink">Mac Internet Sharing to Squeezebox or XBox 360</a></h1><div class="blog-entry-date">26/06/08 10:00 Filed in: <span class="blog-entry-category"><a href="category-mac.html">Mac</a></span></div><div class="blog-entry-body"><span style="color:#000000;">If you try to share a Mac internet connection, and you can’t get your Squeezebox or XBox 360 to get an IP address from it, read on:<br /><br />The important file here is /etc/bootpd.plist. If this file doesn’t exist when Internet Sharing starts, it will create it, and remove it when it stops. But if the file already exists when it starts, the Mac will leave it alone and not overwrite or remove it.<br /><br /></span><ol class="arabic-numbers"><li><span style="color:#000000;">Start Internet Sharing</span></li><li><span style="color:#000000;">Copy the file somewhere safe: “cp /etc/bootpd.plist /tmp/“</span></li><li><span style="color:#000000;">Stop Internet Sharing</span></li><li><span style="color:#000000;">Edit /tmp/bootpd.plist</span></li><li><span style="color:#000000;">Look for the “reply_threshold_seconds” setting at the bottom of the file, it will be set to 4</span></li><li><span style="color:#000000;">Change the 4 to 0</span></li><li><span style="color:#000000;">Copy the file back in place: “sudo cp /tmp/bootpd.plist /etc/“</span></li><li><span style="color:#000000;">Start Internet Sharing</span></li></ol><span style="color:#000000;"><br />Now just check that your value of 0 is still there in /etc/bootpd.plist, it should have survived.<br /><br />Your Squeezebox or XBox 360 will now happily get an IP address from your Mac’s Internet Sharing.</span><span style="color:#000000;"><br /></span><p class="blog-entry-tags">Tags: <a href="tag-mac.html" title="Mac" rel="tag">Mac</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="mac_squeezebox_connection_sharing.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-27" class="blog-entry"><h1 class="blog-entry-title"><a href="extract_ole_from_word.html" class="blog-permalink">Extracting OLE Objects from Word Documents</a></h1><div class="blog-entry-date">12/06/08 18:12 Filed in: <span class="blog-entry-category"><a href="category-linux.html">Linux</a></span></div><div class="blog-entry-body"><span style="color:#000000;font-weight:bold; ">Many people have asked me how to extract the file embedded inside an OLE object that has been inserted into a Microsoft Word document, or similar.<br /><br />I reverse-engineered the file format, it’s very simple. Not this code doesn’t always appear to work, but it gets 95% of them out.<br /><br />Use it at your own peril. Please credit me (Julian Field jules@jules.fm) where/when/if you use this code or any derivative of it, including translations into other languages.<br /><br /> $byte = "";<br /> $buffer = "";<br /> #$infh = new FileHandle;<br /> #sysopen $infh, "$explodeinto/$inname", O_RDONLY;<br /></span><span style="color:#000000;"><em>Open the infh filehandle with the "inname" file containing the OLE object.<br /></em></span><span style="color:#000000;font-weight:bold; "> sysseek $infh, 6, SEEK_SET; # Skip 1st 6 bytes<br /></span><span style="color:#000000;"><em>Skip the first 6 bytes, these appear to be useless<br /></em></span><span style="color:#000000;font-weight:bold; "> $outname = "";<br /> $finished = 0;<br /> $length = 0;<br /> until ($byte eq "\0" || $finished || $length>1000) {<br /> # Read a C-string into $outname<br /> sysread($infh, $byte, 1) or $finished = 1;<br /> $outname .= $byte;<br /> $length++;<br /> }<br /></span><span style="color:#000000;"><em>Read a null-terminated string of bytes,<br />this becomes the output filename.<br /></em></span><span style="color:#000000;font-weight:bold; "> next OLEFILE if $length>1000; # Bail out if it went wrong<br /></span><span style="color:#000000;"><em>If the filename was way too long, this is probably corrupt.<br /></em></span><span style="color:#000000;font-weight:bold; "> $finished = 0;<br /> $byte = 1;<br /> $length = 0;<br /> until ($byte eq "\0" || $finished || $length>1000) { # Throw away a C-string<br /> sysread($infh, $byte, 1) or $finished = 1;<br /> $length++;<br /> }<br /></span><span style="color:#000000;"><em>Throw away the next null-terminated string of bytes.<br /></em></span><span style="color:#000000;font-weight:bold; "> next OLEFILE if $length>1000; # Bail out if it went wrong<br /></span><span style="color:#000000;"><em>If the string was way too long, this is probably corrupt.<br /></em></span><span style="color:#000000;font-weight:bold; "> sysseek $infh, 4, Fcntl::SEEK_CUR or next OLEFILE; # Skip next 4 bytes<br /></span><span style="color:#000000;"><em>Skip the next 4 bytes of the file.<br /></em></span><span style="color:#000000;font-weight:bold; "> sysread $infh, $number, 4 or next OLEFILE;<br /> $number = unpack 'V', $number;<br /></span><span style="color:#000000;"><em>Read the next 4 bytes into a 4-byte int called "$number".<br /></em></span><span style="color:#000000;font-weight:bold; "> #print STDERR "Skipping $number bytes of header filename\n";<br /> if ($number>0 && $number<1_000_000) {<br /> sysseek $infh, $number, Fcntl::SEEK_CUR; # Skip the next bit of header (C-string)<br /> } else {<br /> next OLEFILE;<br /> }<br /></span><span style="color:#000000;"><em>If the number $number was a reasonable size,<br />skip that many bytes of the file.<br /></em></span><span style="color:#000000;font-weight:bold; "> sysread $infh, $number, 4 or next OLEFILE;<br /> $number = unpack 'V', $number;<br /></span><span style="color:#000000;"><em>Read the next 4 bytes in a 4-byte int called "$number".<br />This is the length of the real embedded file we want to extract.<br /></em></span><span style="color:#000000;font-weight:bold; "> #print STDERR "Reading $number bytes of file data\n";<br /> sysread $infh, $buffer, $number<br /> if $number>0 && $number < $size; # Sanity check<br /></span><span style="color:#000000;"><em>Read the $number number of bytes into memory into a chunk<br />of memory allocated which is at least $number bytes long.<br />Do a sanity check that the number of bytes we have asked it to read<br />is less than the total length of the input file.<br /></em></span><span style="color:#000000;font-weight:bold; "> $outfh = new FileHandle;<br /> $outsafe = $this->MakeNameSafe($outname, $explodeinto);<br /> sysopen $outfh, "$explodeinto/$outsafe", (O_CREAT | O_WRONLY)<br /> or next OLEFILE;<br /></span><span style="color:#000000;"><em>Create an output file with a filename which is a sanitised safe<br />version of the filename we read at the top of this bit of code.<br /></em></span><span style="color:#000000;font-weight:bold; "> if ($number>0 && $number<1_000_000_000) { # Number must be reasonable!<br /> syswrite $outfh, $buffer, $number or next OLEFILE;<br /> }<br /> close $outfh;<br /></span><span style="color:#000000;"><em>If the output file is less than 1Gbyte long, write out the data we just read.<br />This creates the file containing the embedded file we wanted to extract.<br />Then close that output file.<br /></em></span><p class="blog-entry-tags">Tags: <a href="tag-microsoft.html" title="Microsoft" rel="tag">Microsoft</a>, <a href="tag-linux.html" title="Linux" rel="tag">Linux</a>, <a href="tag-ole.html" title="OLE" rel="tag">OLE</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="extract_ole_from_word.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-26" class="blog-entry"><h1 class="blog-entry-title"><a href="51ad979fd5f3fde2c2306ef25f54261e-26.html" class="blog-permalink">Talking from sendmail to Exchange over SMTP auth</a></h1><div class="blog-entry-date">05/06/08 09:42 Filed in: <span class="blog-entry-category"><a href="category-exchange-server-2007.html">Exchange Server 2007</a></span><span class="blog-entry-category"> | <a href="category-email.html">Email</a></span></div><div class="blog-entry-body"><span style="color:#000000;font-weight:bold; ">There are various things you can do in Exchange, such as control who can address distribution lists, that can be restricted to authenticated senders only. So how do you make your sendmail box an authenticated sender?<br /><br />Start at </span><span style="color:#000000;font-weight:bold; "><a href="http://www.sendmail.org/~ca/email/auth.html" rel="self">http://www.sendmail.org/~ca/email/auth.html</a></span><span style="color:#000000;font-weight:bold; "> -- about half way down it starts talking about “Using sendmail as a client with AUTH”. That tells you how to setup your sendmail box (which is the client) so that it talks SMTP auth to Exchange (which is the server).</span><p class="blog-entry-tags">Tags: <a href="tag-exchange.html" title="Exchange" rel="tag">Exchange</a>, <a href="tag-email.html" title="Email" rel="tag">Email</a>, <a href="tag-linux.html" title="Linux" rel="tag">Linux</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="51ad979fd5f3fde2c2306ef25f54261e-26.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-25" class="blog-entry"><h1 class="blog-entry-title"><a href="redhat_5.2_yum_update" class="blog-permalink">RedHat 5.2 yum update errors</a></h1><div class="blog-entry-date">04/06/08 17:21 Filed in: <span class="blog-entry-category"><a href="category-linux.html">Linux</a></span></div><div class="blog-entry-body"><span style="color:#000000;font-weight:bold; ">If you install RedHat 5.2 and try to do a “yum update” command, you get loads of errors about libxslt and libvorbis.<br /><br />To solve these errors, type the following commands before you do a “yum update”.<br /></span><span style="font:12px Courier, mono; font-weight:bold; color:#000000;font-weight:bold; "># rpm -e --nodeps --allmatches libvorbis<br /># rpm -e --nodeps --allmatches libxslt-python libxslt-devel<br /># rpm -e --nodeps --allmatches libxslt<br /># rpm -e --nodeps --allmatches libvorbis-devel<br /># yum -y install libvorbis libxslt<br /></span><span style="color:#000000;font-weight:bold; "><br />Then you will find that “yum update” works as expected.</span><p class="blog-entry-tags">Tags: <a href="tag-linux.html" title="Linux" rel="tag">Linux</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="redhat_5.2_yum_update#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-24" class="blog-entry"><h1 class="blog-entry-title"><a href="77c6523ab328a5647f1273213efc42ef-24.html" class="blog-permalink">Obfuscating Email Addresses for Web Pages</a></h1><div class="blog-entry-date">03/06/08 14:04 Filed in: <span class="blog-entry-category"><a href="category-email.html">Email</a></span></div><div class="blog-entry-body"><span style="color:#000000;font-weight:bold; "><a href="http://www.fingerlakesbmw.org/main/flobfuscate.php" rel="self">http://www.fingerlakesbmw.org/main/flobfuscate.php</a></span><span style="color:#000000;font-weight:bold; "><br /><br />That will generate a very obfuscated version of the HTML of an email address, suitable for putting on a web page, so there is far less chance that the spammers will be able to harvest it for their address lists.<br /></span><p class="blog-entry-tags">Tags: <a href="tag-obfuscation.html" title="Obfuscation" rel="tag">Obfuscation</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="77c6523ab328a5647f1273213efc42ef-24.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-23" class="blog-entry"><h1 class="blog-entry-title"><a href="dcb9d083cd4acd8c21682444f1488c08-23.html" class="blog-permalink">X Windows ModeLine Generators</a></h1><div class="blog-entry-date">03/06/08 14:01 Filed in: <span class="blog-entry-category"><a href="category-x-windows.html">X Windows</a></span></div><div class="blog-entry-body"><span style="color:#000000;font-weight:bold; "><a href="http://xtiming.sourceforge.net/cgi-bin/xtiming.pl" rel="self">The XFree86 Modeline Generator</a></span><span style="color:#000000;font-weight:bold; "><br /><br /></span><span style="color:#000000;font-weight:bold; "><a href="http://koala.ilog.fr/cgi-bin/nph-colas-modelines" rel="self">Colas XFree Modeline Generator</a></span><span style="color:#000000;font-weight:bold; "><br />used to generate the modeline for a black MacBook, just tell it 1280x800.<br />To find others, do a Google search for web "modeline calculator".<br /></span><p class="blog-entry-tags">Tags: <a href="tag-modeline.html" title="Modeline" rel="tag">Modeline</a>, <a href="tag-xorg.conf.html" title="xorg.conf" rel="tag">xorg.conf</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="dcb9d083cd4acd8c21682444f1488c08-23.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-22" class="blog-entry"><h1 class="blog-entry-title"><a href="8fc0bc587ae9a43f62575c1f6ebc4114-22.html" class="blog-permalink">X in Solaris 10 on a MacBook</a></h1><div class="blog-entry-date">03/06/08 14:00 Filed in: <span class="blog-entry-category"><a href="category-x-windows.html">X Windows</a></span><span class="blog-entry-category"> | <a href="category-solaris.html">Solaris</a></span><span class="blog-entry-category"> | <a href="category-mac.html">Mac</a></span></div><div class="blog-entry-body"><span style="color:#000000;font-weight:bold; ">Section "ServerLayout"<br /> Identifier "X.org Configured"<br /> Screen 0 "Screen0" 0 0<br /> InputDevice "Mouse0" "CorePointer"<br /> InputDevice "Keyboard0" "CoreKeyboard"<br />EndSection<br /><br />Section "Files"<br /> RgbPath "/usr/X11/lib/X11/rgb"<br /> ModulePath "/usr/X11/lib/modules"<br /> FontPath "/usr/X11/lib/X11/fonts/TrueType/"<br /> FontPath "/usr/X11/lib/X11/fonts/Type1/"<br /> FontPath "/usr/X11/lib/X11/fonts/Type1/sun/"<br /> FontPath "/usr/X11/lib/X11/fonts/F3bitmaps/"<br /> FontPath "/usr/X11/lib/X11/fonts/misc/"<br /> FontPath "/usr/X11/lib/X11/fonts/100dpi/"<br /> FontPath "/usr/X11/lib/X11/fonts/75dpi/"<br />EndSection<br /><br />Section "Module"<br /> Load "IA"<br /> Load "Xst"<br /> Load "dbe"<br /> Load "extmod"<br /> Load "record"<br /> Load "xtrap"<br /> Load "glx"<br /> Load "bitstream"<br /> Load "type1"<br />EndSection<br /><br />Section "InputDevice"<br /> Identifier "Keyboard0"<br /> Driver "keyboard"<br />EndSection<br /><br />Section "InputDevice"<br /> Identifier "Mouse0"<br /> Driver "mouse"<br /> Option "Protocol" "auto"<br /> Option "Device" "/dev/mouse"<br />EndSection<br /><br />Section "Monitor"<br /> Identifier "Monitor0"<br /> VendorName "Monitor Vendor"<br /> ModelName "Monitor Model"<br /> ModeLine "MacBook13" 172.73 1280 1336 1616 1728 800 802 814 840<br />EndSection<br /><br />Section "Device"<br /> ### Available Driver options are:-<br /> ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",<br /> ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"<br /> ### [arg]: arg optional<br /> #Option "ShadowFB" # [<bool>]<br /> #Option "DefaultRefresh" # [<bool>]<br /> Identifier "Card0"<br /> Driver "vesa"<br /> VendorName "Unknown Vendor"<br /> BoardName "Unknown Board"<br /> BusID "PCI:0:2:0"<br />EndSection<br /><br />Section "Screen"<br /> Identifier "Screen0"<br /> Device "Card0"<br /> Monitor "Monitor0"<br /> SubSection "Display"<br /> Viewport 0 0<br /> Virtual 1280 800<br /> Depth 1<br /> Modes "1280x800"<br /># Modes "MacBook13"<br /> EndSubSection<br /> SubSection "Display"<br /> Viewport 0 0<br /> Virtual 1280 800<br /> Depth 4<br /> Modes "1280x800"<br /># Modes "MacBook13"<br /> EndSubSection<br /> SubSection "Display"<br /> Viewport 0 0<br /> Virtual 1280 800<br /> Depth 8<br /> Modes "1280x800"<br /># Modes "MacBook13"<br /> EndSubSection<br /> SubSection "Display"<br /> Viewport 0 0<br /> Virtual 1280 800<br /> Depth 15<br /> Modes "1280x800"<br /># Modes "MacBook13"<br /> EndSubSection<br /> SubSection "Display"<br /> Viewport 0 0<br /> Virtual 1280 800<br /> Depth 16<br /> Modes "1280x800"<br /># Modes "MacBook13"<br /> EndSubSection<br /> SubSection "Display"<br /> Viewport 0 0<br /> Virtual 1280 800<br /> Depth 24<br /> Modes "1280x800"<br /># Modes "MacBook13"<br /> EndSubSection<br />EndSection<br /><br /><br /># Option "dpms"<br />#EndSection<br />#<br />#Section "Device"<br /># Identifier "Videocard0"<br /># Driver "vesa"<br /># VendorName "Videocard vendor"<br /># BoardName "VESA driver (generic)"<br />#EndSection<br />#<br />#Section "Screen"<br /># Identifier "Screen0"<br /># Device "Videocard0"<br /># Monitor "Monitor0"<br /># DefaultDepth 24<br /># SubSection "Display"<br /># Viewport 0 0<br /># Virtual 1280 800<br /># Depth 8<br /># Modes "MacBook13"<br /># EndSubSection<br /># SubSection "Display"<br /># Viewport 0 0<br /># Virtual 1280 800<br /># Depth 16<br /># Modes "MacBook13"<br /># EndSubSection<br /># SubSection "Display"<br /># Viewport 0 0<br /># Virtual 1280 800<br /># Depth 24<br /># Modes "MacBook13"<br /># EndSubSection<br />#EndSection<br />#<br />#Section "DRI"<br /># Group 0<br /># Mode 0666<br />#EndSection<br /><br /></span><p class="blog-entry-tags">Tags: <a href="tag-mac.html" title="Mac" rel="tag">Mac</a>, <a href="tag-linux.html" title="Linux" rel="tag">Linux</a>, <a href="tag-solaris.html" title="Solaris" rel="tag">Solaris</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="8fc0bc587ae9a43f62575c1f6ebc4114-22.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-21" class="blog-entry"><h1 class="blog-entry-title"><a href="248cadde2b88af75b1b73786b0f7bc94-21.html" class="blog-permalink">X in CentOS/RHEL 5 on a MacBook</a></h1><div class="blog-entry-date">03/06/08 13:59 Filed in: <span class="blog-entry-category"><a href="category-x-windows.html">X Windows</a></span><span class="blog-entry-category"> | <a href="category-mac.html">Mac</a></span></div><div class="blog-entry-body"><span style="color:#000000;font-weight:bold; "># Xorg configuration created by pyxf86config<br /><br />Section "ServerLayout"<br /> Identifier "Default Layout"<br /> Screen 0 "Screen0" 0 0<br /> InputDevice "Keyboard0" "CoreKeyboard"<br />EndSection<br /><br />Section "InputDevice"<br /> Identifier "Keyboard0"<br /> Driver "kbd"<br /> Option "XkbModel" "pc105"<br /> Option "XkbLayout" "us"<br />EndSection<br /><br />Section "Device"<br /> Identifier "Videocard0"<br /> Driver "vesa"<br />EndSection<br /><br />Section "Monitor"<br /> Identifier "Monitor0"<br /> VendorName "MonitorVendor"<br /> ModelName "MonitorModel"<br /> Horizsync 28-50<br />EndSection<br /><br />Section "Screen"<br /> Identifier "Screen0"<br /> Device "Videocard0"<br /> Monitor "Monitor0"<br /> DefaultDepth 24<br /> SubSection "Display"<br /> Viewport 0 0<br /> Virtual 1280 800<br /> Modes "1280x800"<br /> Depth 24<br /> EndSubSection<br />EndSection<br /><br /></span><p class="blog-entry-tags">Tags: <a href="tag-centos.html" title="CentOS" rel="tag">CentOS</a>, <a href="tag-rhel.html" title="RHEL" rel="tag">RHEL</a>, <a href="tag-mac.html" title="Mac" rel="tag">Mac</a>, <a href="tag-xorg.conf.html" title="xorg.conf" rel="tag">xorg.conf</a>, <a href="tag-linux.html" title="Linux" rel="tag">Linux</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="248cadde2b88af75b1b73786b0f7bc94-21.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-20" class="blog-entry"><h1 class="blog-entry-title"><a href="fd7592f81a8c142715684fe6d8905f96-20.html" class="blog-permalink">X in CentOS/RHEL 4 on a MacBook Pro</a></h1><div class="blog-entry-date">03/06/08 13:58 Filed in: <span class="blog-entry-category"><a href="category-x-windows.html">X Windows</a></span><span class="blog-entry-category"> | <a href="category-mac.html">Mac</a></span></div><div class="blog-entry-body"><span style="color:#000000;font-weight:bold; "># Xorg configuration created by system-config-display<br /><br />Section "ServerLayout"<br /> Identifier "single head configuration"<br /> Screen 0 "Screen0" 0 0<br /> InputDevice "Mouse0" "CorePointer"<br /> InputDevice "Keyboard0" "CoreKeyboard"<br />EndSection<br /><br />Section "Files"<br /><br /># RgbPath is the location of the RGB database. Note, this is the name of the <br /># file minus the extension (like ".txt" or ".db"). There is normally<br /># no need to change the default.<br /># Multiple FontPath entries are allowed (they are concatenated together)<br /># By default, Red Hat 6.0 and later now use a font server independent of<br /># the X server to render fonts.<br /> RgbPath "/usr/X11R6/lib/X11/rgb"<br /> FontPath "unix/:7100"<br />EndSection<br /><br />Section "Module"<br /> Load "dbe"<br /> Load "extmod"<br /> Load "fbdevhw"<br /> Load "glx"<br /> Load "record"<br /> Load "freetype"<br /> Load "type1"<br /> Load "dri"<br />EndSection<br /><br />Section "InputDevice"<br /><br /># Specify which keyboard LEDs can be user-controlled (eg, with xset(1))<br /># Option "Xleds" "1 2 3"<br /># To disable the XKEYBOARD extension, uncomment XkbDisable.<br /># Option "XkbDisable"<br /># To customise the XKB settings to suit your keyboard, modify the<br /># lines below (which are the defaults). For example, for a non-U.S.<br /># keyboard, you will probably want to use:<br /># Option "XkbModel" "pc102"<br /># If you have a US Microsoft Natural keyboard, you can use:<br /># Option "XkbModel" "microsoft"<br />#<br /># Then to change the language, change the Layout setting.<br /># For example, a german layout can be obtained with:<br /># Option "XkbLayout" "de"<br /># or:<br /># Option "XkbLayout" "de"<br /># Option "XkbVariant" "nodeadkeys"<br />#<br /># If you'd like to switch the positions of your capslock and<br /># control keys, use:<br /># Option "XkbOptions" "ctrl:swapcaps"<br /># Or if you just want both to be control, use:<br /># Option "XkbOptions" "ctrl:nocaps"<br />#<br /> Identifier "Keyboard0"<br /> Driver "kbd"<br /> Option "XkbModel" "pc105"<br /> Option "XkbLayout" "us"<br />EndSection<br /><br />Section "InputDevice"<br /> Identifier "Mouse0"<br /> Driver "mouse"<br /> Option "Protocol" "IMPS/2"<br /> Option "Device" "/dev/input/mice"<br /> Option "ZAxisMapping" "4 5"<br /> Option "Emulate3Buttons" "yes"<br />EndSection<br /><br />Section "Monitor"<br /><br /># HorizSync 21.5 - 150.0<br /># VertRefresh 30.0 - 150.0<br /> Identifier "Monitor0"<br /> VendorName "Monitor Vendor"<br /> ModelName "LCD Panel 1680x1050"<br /> ModeLine "MacBookPro17" 136.3 1680 1720 1856 2096 1050 1053 1056 1084<br /> Option "dpms"<br />EndSection<br /><br />Section "Device"<br /> Identifier "Videocard0"<br /> Driver "vesa"<br /> VendorName "Videocard vendor"<br /> BoardName "VESA driver (generic)"<br />EndSection<br /><br />Section "Screen"<br /> Identifier "Screen0"<br /> Device "Videocard0"<br /> Monitor "Monitor0"<br /> DefaultDepth 24<br /> SubSection "Display"<br /> Viewport 0 0<br /> Virtual 1680 1050<br /> Depth 8<br /> Modes "MacBookPro17"<br /> EndSubSection<br /> SubSection "Display"<br /> Viewport 0 0<br /> Virtual 1680 1050<br /> Depth 16<br /> Modes "MacBookPro17"<br /> EndSubSection<br /> SubSection "Display"<br /> Viewport 0 0<br /> Virtual 1680 1050<br /> Depth 24<br /> Modes "MacBookPro17"<br /> EndSubSection<br />EndSection<br /><br />Section "DRI"<br /> Group 0<br /> Mode 0666<br />EndSection<br /><br /></span><p class="blog-entry-tags">Tags: <a href="tag-centos.html" title="CentOS" rel="tag">CentOS</a>, <a href="tag-rhel.html" title="RHEL" rel="tag">RHEL</a>, <a href="tag-linux.html" title="Linux" rel="tag">Linux</a>, <a href="tag-mac.html" title="Mac" rel="tag">Mac</a>, <a href="tag-xorg.conf.html" title="xorg.conf" rel="tag">xorg.conf</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="fd7592f81a8c142715684fe6d8905f96-20.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-19" class="blog-entry"><h1 class="blog-entry-title"><a href="x_ubuntu_macbook_pro.html" class="blog-permalink">X in Ubuntu on a MacBook Pro</a></h1><div class="blog-entry-date">03/06/08 13:56 Filed in: <span class="blog-entry-category"><a href="category-x-windows.html">X Windows</a></span><span class="blog-entry-category"> | <a href="category-mac.html">Mac</a></span></div><div class="blog-entry-body"><span style="color:#000000;font-weight:bold; "># /etc/X11/xorg.conf (xorg X Window System server configuration file)<br />#<br /># This file was generated by dexconf, the Debian X Configuration tool, using<br /># values from the debconf database.<br />#<br /># Edit this file with caution, and see the /etc/X11/xorg.conf manual page.<br /># (Type "man /etc/X11/xorg.conf" at the shell prompt.)<br />#<br /># This file is automatically updated on xserver-xorg package upgrades *only*<br /># if it has not been modified since the last upgrade of the xserver-xorg<br /># package.<br />#<br /># If you have edited this file but would like it to be automatically updated<br /># again, run the following command:<br /># sudo dpkg-reconfigure -phigh xserver-xorg<br /><br />Section "Files"<br /> FontPath "/usr/share/X11/fonts/misc"<br /> FontPath "/usr/share/X11/fonts/cyrillic"<br /> FontPath "/usr/share/X11/fonts/100dpi/:unscaled"<br /> FontPath "/usr/share/X11/fonts/75dpi/:unscaled"<br /> FontPath "/usr/share/X11/fonts/Type1"<br /> FontPath "/usr/share/X11/fonts/100dpi"<br /> FontPath "/usr/share/X11/fonts/75dpi"<br /> FontPath "/usr/share/fonts/X11/misc"<br /> # path to defoma fonts<br /> FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"<br />EndSection<br /><br />Section "Module"<br /> Load "i2c"<br /> Load "bitmap"<br /> Load "ddc"<br /> Load "dri"<br /> Load "extmod"<br /> Load "freetype"<br /> Load "glx"<br /> Load "int10"<br /> Load "type1"<br /> Load "vbe"<br />EndSection<br /><br />Section "InputDevice"<br /> Identifier "Generic Keyboard"<br /> Driver "kbd"<br /> Option "CoreKeyboard"<br /> Option "XkbRules" "xorg"<br /> Option "XkbModel" "pc105"<br /> Option "XkbLayout" "us"<br /> Option "XkbOptions" "lv3:ralt_switch"<br />EndSection<br /><br />Section "InputDevice"<br /> Identifier "Configured Mouse"<br /> Driver "mouse"<br /> Option "CorePointer"<br /> Option "Device" "/dev/input/mice"<br /> Option "Protocol" "ExplorerPS/2"<br /> Option "ZAxisMapping" "4 5"<br /> Option "Emulate3Buttons" "true"<br />EndSection<br /><br />Section "InputDevice"<br /> Driver "wacom"<br /> Identifier "stylus"<br /> Option "Device" "/dev/wacom" # Change to <br /> # /dev/input/event<br /> # for USB<br /> Option "Type" "stylus"<br /> Option "ForceDevice" "ISDV4" # Tablet PC ONLY<br />EndSection<br /><br />Section "InputDevice"<br /> Driver "wacom"<br /> Identifier "eraser"<br /> Option "Device" "/dev/wacom" # Change to <br /> # /dev/input/event<br /> # for USB<br /> Option "Type" "eraser"<br /> Option "ForceDevice" "ISDV4" # Tablet PC ONLY<br />EndSection<br /><br />Section "InputDevice"<br /> Driver "wacom"<br /> Identifier "cursor"<br /> Option "Device" "/dev/wacom" # Change to <br /> # /dev/input/event<br /> # for USB<br /> Option "Type" "cursor"<br /> Option "ForceDevice" "ISDV4" # Tablet PC ONLY<br />EndSection<br /><br />Section "Device"<br /> Identifier "Videocard0"<br /> Driver "vesa"<br /> VendorName "Videocard Vendor"<br /> BoardName "VESA driver (generic)"<br /> BusID "PCI:0:2:0"<br />EndSection<br /><br />Section "Monitor"<br /> Identifier "Monitor0"<br /> Option "DPMS"<br /> ModelName "LCD Panel 1680x1050"<br /> Modeline "MacBookPro17" 136.3 1680 1720 1856 2096 1050 1053 1056 1084<br />EndSection<br /><br />Section "Screen"<br /> Identifier "Default Screen"<br /> Device "Videocard0"<br /> Monitor "Monitor0"<br /> DefaultDepth 24<br /> SubSection "Display"<br /> Depth 1<br /> Modes "1024x768" "800x600" "640x480"<br /> EndSubSection<br /> SubSection "Display"<br /> Depth 4<br /> Modes "1024x768" "800x600" "640x480"<br /> EndSubSection<br /> SubSection "Display"<br /> Depth 8<br /> Modes "1024x768" "800x600" "640x480"<br /> EndSubSection<br /> SubSection "Display"<br /> Depth 15<br /> Modes "1024x768" "800x600" "640x480"<br /> EndSubSection<br /> SubSection "Display"<br /> Depth 16<br /> Modes "1024x768" "800x600" "640x480"<br /> EndSubSection<br /> SubSection "Display"<br /> Viewport 0 0<br /> Virtual 1680 1050<br /> Depth 24<br /> Modes "MacBookPro17"<br /> EndSubSection<br />EndSection<br /><br />Section "ServerLayout"<br /> Identifier "Default Layout"<br /> Screen "Default Screen"<br /> InputDevice "Generic Keyboard"<br /> InputDevice "Configured Mouse"<br /> InputDevice "stylus" "SendCoreEvents"<br /> InputDevice "cursor" "SendCoreEvents"<br /> InputDevice "eraser" "SendCoreEvents"<br />EndSection<br /><br />Section "DRI"<br /> Mode 0666<br />EndSection<br /></span><p class="blog-entry-tags">Tags: <a href="tag-ubuntu.html" title="Ubuntu" rel="tag">Ubuntu</a>, <a href="tag-xorg.conf.html" title="xorg.conf" rel="tag">xorg.conf</a>, <a href="tag-macbook-pro.html" title="MacBook Pro" rel="tag">MacBook Pro</a>, <a href="tag-linux.html" title="Linux" rel="tag">Linux</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="x_ubuntu_macbook_pro.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-18" class="blog-entry"><h1 class="blog-entry-title"><a href="exchange_anti-spam.html" class="blog-permalink">Exchange Server 2007 Rejecting Unknown Recipients</a></h1><div class="blog-entry-date">02/06/08 12:21 Filed in: <span class="blog-entry-category"><a href="category-exchange-server-2007.html">Exchange Server 2007</a></span></div><div class="blog-entry-body"><span style="color:#000000;">Start up the Exchange Management Shell<br /></span><span style="color:#000000;font-weight:bold; ">cd “C:\Program Files\Microsoft\Exchange Server\Scripts”<br />.\install-AntiSpamAgents.ps1</span><span style="color:#000000;"><br /><br />Open up Start / Administrative Tools / Services.<br />Restart the “Microsoft Exchange Transport” service.<br /><br />Start up the Exchange Management Console.<br />In Organization Configuration / Hub Transport, there is now an “Anti-spam” tab.<br />Right-click on “Recipient Filtering” and choose “Properties”.<br />In the “Blocked Recipients” tab, tick the tick box “Block messages sent to recipients not listed in the Global Address List”.<br />Click “Okay”.<br /><br />You may well want to disable some of the anti-spam tests if you do not intend to use them.<br /></span><p class="blog-entry-tags">Tags: <a href="tag-exchange.html" title="Exchange" rel="tag">Exchange</a>, <a href="tag-recipients.html" title="Recipients" rel="tag">Recipients</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="exchange_anti-spam.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-17" class="blog-entry"><h1 class="blog-entry-title"><a href="hyper-v_solaris_broken.html" class="blog-permalink">Windows 2008 Hyper-V and Solaris 10</a></h1><div class="blog-entry-date">04/04/08 12:20 Filed in: <span class="blog-entry-category"><a href="category-hyper-v.html">Hyper-V</a></span></div><div class="blog-entry-body"><span style="color:#000000;font-weight:bold; ">Update 8 April 2008 ---</span><span style="color:#000000;"> Microsoft broke the legacy network adapter in Hyper-V RC. Apparently Sun and Microsoft are working together to make Solaris work as a guest operating system, so hopefully this will be fixed in a future update.<br /><br />This documents my experiments with OpenSolaris 10 (Solaris Express), Jan 2008 edition, getting it to run under Hyper-V (release candidate) on Windows Server 2008 (public product release).<br /><br />The current (2008 Q1) release of Solaris 10 does not work on the release candidate of Hyper-V due to bugs in the Hyper-V BIOS (according to Sun). The 2008 Q2 release, which is otherwise known as Solaris 10 Update 5, will apparently work with Hyper-V, according to Sun. So at the moment I am limited to OpenSolaris 10 (January 2008 release) which is why I chose it and not the official Sun Solaris 10 product.<br /><br /></span><span style="color:#000000;font-weight:bold; ">Creating The Virtual Machine</span><span style="color:#000000;"><br />When creating the virtual machine,<br /> don’t skimp the RAM allocated. It requires a minimum of about 900Mb and it will install significantly quicker with more than that, as otherwise it will swap, which is very slow. I gave it 1300 Mbytes and it did not appear to swap.<br /> In the BIOS settings, set it to boot off IDE then CD, which will prevent it repeating the installation should you forget to eject the DVD image at the end of the installation process.<br /> Remove the network adapter and add a ‘Legacy Network Adapter’ connected to your virtual network in Hyper-V that connects to the external physical network adapter.<br /><br /></span><span style="color:#000000;font-weight:bold; ">Fetching the ISO<br /></span><span style="color:#000000;">You can download the ISO image of OpenSolaris from http://www.opensolaris.org/os/project/indiana/resources/getit/, which will link through to </span><span style="color:#000000;"><a href="http://www.sun.com">www.sun.com</a></span><span style="color:#000000;"> to do the actual download. You will need to register on </span><span style="color:#000000;"><a href="http://www.sun.com">www.sun.com</a></span><span style="color:#000000;"> if you haven’t already done so.<br /><br /></span><span style="color:#000000;font-weight:bold; ">Installation Choices<br /></span><span style="color:#000000;">When you start it up, it will present a text menu of different installation choices. For the easiest and most reliable way to install, choose option 4 (interactive console session). Do </span><span style="color:#000000;font-weight:bold; ">not</span><span style="color:#000000;"> press Return!<br /><br />Your network adapter should appear as device dnet0. When partitioning the hard disk, I would advise editing the default layout. Remove the /export/home slice altogether, and increase the size of the / slice to fill all available space left on the disk. By default, Solaris always gives you a tiny / partition, which causes endless trouble later when lots of space is needed to install patches and their back-out information. You really do want a / as big as possible.<br /><br />Set it to manually eject the CD/DVD and manually reboot.<br /><br />Install all the software. The OEM support is not necessary, but install everything else. The total installation should take around 2½ to 3 hours including all the time taken for you to setup the networking and disk layout, before the software installation process begins.<br /><br />Note from Russ Blaine at Sun:<br />Just beware of one thing: Solaris doesn't work in 64-bit mode due to<br />Hyper-V bug #336932. After you install OpenSolaris, configure it to<br />boot 32-bit by removing $ISADIR from all paths in the grub entry.<br /><br />Unfortunately I have set it to auto-reboot at the end of the installation process, so I’m going to have to try to boot single-user to change this, or modify the boot command-line at boot time to remove whatever $ISADIR might look like in reality, then edit it in multi-user mode if it gets that far.<br /><br /></span><span style="color:#000000;font-weight:bold; ">Only Works in 32-bit Mode, not 64-bit Mode<br /></span><span style="color:#000000;">So when it reboots, I choose “Failsafe” from the boot menu, and get into single-user mode. The new system it just built is available in /a, so I<br />At the end of the installation, before it reboots<br /> TERM=vt100<br /> export TERM<br />and then edit the /a/boot/grub/menu.lst file in the new installed system. Remove all mention is “$ISADIR/” from the boot entries in this file. If you don’t, it will crash as soon as it tries to boot. OpenSolaris only works in 32-bit mode, and the $ISADIR stuff will boot it in 64-bit mode.<br /><br />Once you’ve fixed this, “reboot” and let it boot the default choice in the boot menu. Booting the first time will take several minutes.<br /><br /></span><span style="color:#000000;font-weight:bold; ">Disabling Graphical Login Prompt<br /></span><span style="color:#000000;">If you find it boots into graphical mode, and you are using it remotely via a Remote Desktop connection, you’re a bit screwed at this point as you have no mouse to do anything with. Let the machine settle, then reset it. Choose the “Failsafe” boot option which will eventually take you to a single-user prompt. You can’t edit the services database now, but you can edit the script that actually tries to start up the graphical login <img class="blog-image-smiley" src="../../rw_common/plugins/blog/smiley_smile.png" width="21" height="21" alt="Happy" border="0" /> So edit /a/lib/svc/method/svc-kdmconfig and change the file to do “exit $SMF_EXIT_OK” just before it sets the “TERM” variable. Then reboot and boot normally.<br /><br />Once you have rebooted and logged in as root, you can stop it trying to do the graphical login at all:<br /> svcadm disable /application/graphical-login/gdm<br /> svcadm disable /application/graphical-login/cde-login<br /><br /></span><span style="color:#000000;font-weight:bold; ">Verbose Reconfiguraion Boot<br /></span><span style="color:#000000;">A verbose reconfiguration boot can be triggered by:<br /> reboot -- -rv -m verbose<br />This works on Intel hardware by adding a temporary menu entry to the GRUB configuration. This extra entry will of course have the “$ISADIR/” strings in it, and so will fail to boot. So as soon as the GRUB menu appears on the screen, choose the “Failsafe” boot option. Say “y” when it asks you about mounting the real Solaris installation on “/a”. Once it has booted single-user,<br /> TERM=vt100<br /> export TERM<br /> cd /a/boot/grub<br /> vi menu.lst<br />and remove the strings “$ISADIR/” from the new section it added to the bottom of the list. Save and exit, then “reboot”. Then it will successfully boot in a very verbose mode, showing you exactly what it is starting and when. It will remove the extra GRUB menu entry automatically.<br /><br /></span><span style="color:#000000;font-weight:bold; ">Outstanding Problems<br /></span><span style="color:#000000;">I have still not managed to get any life out of the virtual legacy network adapter. Solaris is seeing and configuring the device, but not actually getting any packets in or out of it. <img class="blog-image-smiley" src="../../rw_common/plugins/blog/smiley_sad.png" width="21" height="21" alt="Sad" border="0" /><br /></span><p class="blog-entry-tags">Tags: <a href="tag-windows.html" title="Windows" rel="tag">Windows</a>, <a href="tag-2008.html" title="2008" rel="tag">2008</a>, <a href="tag-hyper-v.html" title="Hyper-V" rel="tag">Hyper-V</a>, <a href="tag-solaris.html" title="Solaris" rel="tag">Solaris</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="hyper-v_solaris_broken.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-16" class="blog-entry"><h1 class="blog-entry-title"><a href="hyper-v_beta_download.html" class="blog-permalink">Hyper-V beta Linux Integration Components</a></h1><div class="blog-entry-date">31/03/08 12:19 Filed in: <span class="blog-entry-category"><a href="category-hyper-v.html">Hyper-V</a></span></div><div class="blog-entry-body"><span style="color:#000000;font-weight:bold; ">Update 31st March 2008: </span><span style="color:#000000;">Microsoft have released the RC version of the Linux Integration Components and they are available at </span><span style="color:#000000;"><a href="https://connect.microsoft.com/Downloads/Downloads.aspx?SiteID=495">https://connect.microsoft.com/Downloads/Downloads.aspx?SiteID=495</a></span><span style="color:#000000;">.<br /><br />Currently, Microsoft have not made any version of the Linux Integration Components available for Windows Server 2008 Hyper-V virtualisation.<br /><br />So, as a temporary solution until they get the new version out, I have made a copy available at </span><span style="color:#000000;"><a href="http://www.jules.fm/hyperv_linux.zip">http://www.jules.fm/hyperv_linux.zip</a></span><span style="color:#000000;"><br /><br />I don’t think Microsoft can complain much about me doing this, it’s just a temporary solution for the few people who need it now and cannot wait until the new version is released.<br /></span><p class="blog-entry-tags">Tags: <a href="tag-windows.html" title="Windows" rel="tag">Windows</a>, <a href="tag-2008.html" title="2008" rel="tag">2008</a>, <a href="tag-hyper-v.html" title="Hyper-V" rel="tag">Hyper-V</a>, <a href="tag-linux.html" title="Linux" rel="tag">Linux</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="hyper-v_beta_download.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-15" class="blog-entry"><h1 class="blog-entry-title"><a href="activating_win_2008.html" class="blog-permalink">Activating Windows Server 2008</a></h1><div class="blog-entry-date">11/03/08 12:19 Filed in: <span class="blog-entry-category"><a href="category-windows-server-2008.html">Windows Server 2008</a></span></div><div class="blog-entry-body"><span style="color:#000000;">Microsoft Windows [Version 6.0.6001]<br />Copyright (c) 2006 Microsoft Corporation. All rights reserved.<br /><br />C:\Users\Administrator>cscript \windows\system32\slmgr.vbs /ipk VPWVT-.....-.....-.....-.....<br />Microsoft (R) Windows Script Host Version 5.7<br />Copyright (C) Microsoft Corporation. All rights reserved.<br /><br />Installed product key VPWVT-....-.....-.....-..... successfully.<br /><br /><br />C:\Users\Administrator>cscript \windows\system32\slmgr.vbs /ato<br />Microsoft (R) Windows Script Host Version 5.7<br />Copyright (C) Microsoft Corporation. All rights reserved.<br /><br />Activating Windows Server(R), ServerEnterprise edition (bb1d27c4-959d-4f82-b0fd-c02a7be54732) ...<br />Product activated successfully.<br /><br /><br />C:\Users\Administrator><br /><br />As easy as that <img class="blog-image-smiley" src="../../rw_common/plugins/blog/smiley_smile.png" width="21" height="21" alt="Happy" border="0" /></span><p class="blog-entry-tags">Tags: <a href="tag-windows.html" title="Windows" rel="tag">Windows</a>, <a href="tag-2008.html" title="2008" rel="tag">2008</a>, <a href="tag-activation.html" title="Activation" rel="tag">Activation</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="activating_win_2008.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-14" class="blog-entry"><h1 class="blog-entry-title"><a href="exchange_availability_autodiscovery.html" class="blog-permalink">Exchange Server 2007 Availability and Autodiscover Service</a></h1><div class="blog-entry-date">06/03/08 12:18 Filed in: <span class="blog-entry-category"><a href="category-exchange-server-2007.html">Exchange Server 2007</a></span></div><div class="blog-entry-body"><span style="color:#000000;">The availability service only works with client computers that are members of the domain, or else it can’t get the location of the autodiscovery stuff without Active Directory. The alternative to looking it up in AD is to create a website on an Exchange Server 2007 box called </span><span style="color:#000000;"><a href="https://autodiscover.ecs.soton.ac.uk/Autodiscover">https://autodiscover.ecs.soton.ac.uk/Autodiscover</a></span><span style="color:#000000;">. Note the requirement for https and not just http. It won’t work unless you have an SSL cert set up properly.<br /><br />So create a new website with its own IP address (a necessity for a SSL site), called autodiscover.ecs.soton.ac.uk.<br />Create a new Autodiscover web service in it with this:<br />new-autodiscovervirtualdirectory -BasicAuthentication $true -DigestAuthentication $false -ExternalUrl https://autodiscover.ecs.soton.ac.uk/Autodiscover -InternalUrl </span><span style="color:#000000;"><a href="https://autodiscover.e">https://autodiscover.e</a></span><span style="color:#000000;">cs.soton.ac.uk/Autodiscover -Path "C:\Program Files\Microsoft\Exchange Server\ClientAccess\Autodiscover" -WebSiteName autodiscover -WindowsAuthentication $true<br />That command takes quite a few seconds to run.<br /><br />You can then compare the output of the original with the new one<br />Get-AutodiscoveryVirtualDirectory -Identity “EXCH” | fl<br /><br />You might as well tick the “require secure channel (SSL)” box in the website properties / Directory Security / Secure Communications / Edit dialog, as Outlook will only use it over https anyway.<br /><br />Once the SSL cert is in place, you can switch the new site ‘on’ with<br />Set-AutodiscoverVirtualDirectory -Identity “EXCHANGE3\Autodiscover (autodiscover)” -BasicAuthentication $true -DigestAuthentication $false -WindowsAuthentication $true -ExternalUrl </span><span style="color:#000000;"><a href="https://autodiscover.ecs.soton.ac.uk/Autodiscover">https://autodiscover.ecs.soton.ac.uk/Autodiscover</a></span><span style="color:#000000;"> -InternalUrl </span><span style="color:#000000;"><a href="https://autodiscover.ecs.soton.ac.uk/Autodiscover">https://autodiscover.ecs.soton.ac.uk/Autodiscover</a></span><span style="color:#000000;"><br />The format of the -Identity parameter is server-name\url-section (web-site-name).<br /><br />It may then be worth re-testing the autodiscover functionality in Outlook 2007, from a PC that is not a member of the domain. Outlook logging goes into the %TEMP% directory (Start / Run... / %TEMP%). To enable it in Outlook 2007, go to Tools / Options / Other / Advanced / Enable logging (troubleshooting). The logs go into a file with a strange name (but I think it ends in .log) and a directory name something like olkas with up-to-the-minute log information files in it. You can search by modification date under %TEMP% if all else fails. Ctrl-click on the Outlook 2007 icon in the alerts toolbar (right end of task bar) and choose “Test Email configuration”. That should let you try everything out. Plus do it for real by creating a New Meeting Request and add hg or hcd or wh or hos to it and show the Schedule Assistant as that will attempt to get the Free/Busy information for them from the Exchange 2007 server.<br /><br />This does indeed all now work. Free+Busy from Outlook 2007 clients that are not members of the domain works just fine, as does auto-configuration of new users in Outlook (any version).<br /></span><p class="blog-entry-tags">Tags: <a href="tag-exchange.html" title="Exchange" rel="tag">Exchange</a>, <a href="tag-2007.html" title="2007" rel="tag">2007</a>, <a href="tag-availability.html" title="Availability" rel="tag">Availability</a>, <a href="tag-autodiscovery.html" title="Autodiscovery" rel="tag">Autodiscovery</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="exchange_availability_autodiscovery.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-13" class="blog-entry"><h1 class="blog-entry-title"><a href="exchange_unavailable_2.html" class="blog-permalink">Exchange Server 2007 “Service Unavailable” on /public</a></h1><div class="blog-entry-date">03/03/08 12:18 Filed in: <span class="blog-entry-category"><a href="category-exchange-server-2007.html">Exchange Server 2007</a></span></div><div class="blog-entry-body"><span style="color:#000000;">This appears to be caused by the Public Folders database not mounting correctly, despite the Exchange System Manager saying it has. This is usually due to replications being missing from some of the system public folders. Dismount and them re-mount your public folder database, then go in to Event Viewer and look at the application log. This will probably show you errors, the detail of which tells you the replication(s) that is(are) missing. Fix those, leave them to replicate, then try dismounting and remounting your public folder database again. You should get a clean mount in the Event Viewer.<br /><br />Once it works, </span><span style="color:#000000;"><a href="https://your-exchange.domain.com/public">https://your-exchange.domain.com/public</a></span><span style="color:#000000;"> should produce a login box, and not just a “Service Unavailable” error.<br /></span><p class="blog-entry-tags">Tags: <a href="tag-exchange.html" title="Exchange" rel="tag">Exchange</a>, <a href="tag-2007.html" title="2007" rel="tag">2007</a>, <a href="tag-unavailable.html" title="Unavailable" rel="tag">Unavailable</a>, <a href="tag-error.html" title="Error" rel="tag">Error</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="exchange_unavailable_2.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-12" class="blog-entry"><h1 class="blog-entry-title"><a href="the_spoons_theory.html" class="blog-permalink">ButYouDontLookSick.com</a></h1><div class="blog-entry-date">02/03/08 12:17 Filed in: <span class="blog-entry-category"><a href="category-sick.html">Sick</a></span></div><div class="blog-entry-body"><span style="color:#000000;">This is a great little website, and it contains a very important essay which should be read by anyone who has a good friend who is sick. It describes an insight into the life of a sick person, and can be understood and appreciated by healthy people. It’s called the “Spoons Theory” and can be read at </span><span style="color:#000000;"><a href="http://www.butyoudontlooksick.com/navigation/BYDLS-TheSpoonTheory.pdf">http://www.butyoudontlooksick.com/navigation/BYDLS-TheSpoonTheory.pdf</a></span><span style="color:#000000;">.<br /><br />I have found it very useful for referring friends to, as that way they get an insight into my life. The author deserves a medal for quality writing <img class="blog-image-smiley" src="../../rw_common/plugins/blog/smiley_smile.png" width="21" height="21" alt="Happy" border="0" /> It’s only a couple of sides and will just take a few minutes to read, it’s well worth the investment of your time if you want to understand how the life of a sick person works, in comparison to that of their’s, a healthy person.<br /><br />Here is a copy of the story, to save you needing a PDF viewer (Please do not </span><span style="color:#000000;font-weight:bold; ">print</span><span style="color:#000000;"> it in any way, and only link to the original article at </span><span style="color:#000000;"><a href="http://www.butyoudontlooksick.com">www.butyoudontlooksick.com</a></span><span style="color:#000000;"> as shown in the paragraph above).<br /><br /><br /></span><span style="color:#000000;font-weight:bold; ">The Spoon Theory <br />by Christine Miserandino <br /></span><span style="color:#000000;"><br /></span><span style="color:#000000;"><a href="http://www.butyoudontlooksick.com">www.butyoudontlooksick.com</a></span><span style="color:#000000;"> <br /> <br />My best friend and I were in the diner, talking. As usual, it was very late and we were eating French fries with gravy. Like normal girls our age, we spent a lot of time in the diner while in college, and most of the time we spent talking about boys, music or trivial things, that seemed very important at the time. We never got serious about anything in particular and spent most of our time laughing. <br /><br />As I went to take some of my medicine with a snack as I usually did, she watched me with an awkward kind of stare, instead of continuing the conversation. She then asked me out of the blue what it felt like to have Lupus and be sick. I was shocked not only because she asked the random question, but also because I assumed she knew all there was to know about Lupus. She came to doctors with me, she saw me walk with a cane, and throw up in the bathroom. She had seen me cry in pain, what else was there to know? <br /><br />I started to ramble on about pills, and aches and pains, but she kept pursuing, and didn't seem satisfied with my answers. I was a little surprised as being my roommate in college and friend for years; I thought she already knew the medical definition of Lupus. Then she looked at me with a face every sick person knows well, the face of pure curiosity about something no one healthy can truly understand. She asked what it felt like, not physically, but what it felt like to be me, to be sick. <br /><br />As I tried to gain my composure, I glanced around the table for help or guidance, or at least stall for time to think. I was trying to find the right words. How do I answer a question I never was able to answer for myself? How do I explain every detail of every day being effected, and give the emotions a sick person goes through with clarity. I could have given up, cracked a joke like I usually do, and changed the subject, but I remember thinking if I don’t try to explain this, how could I ever expect her to understand. If I can’t explain this to my best friend, how could I explain my world to anyone else? I had to at least try. <br /><br />At that moment, the spoon theory was born. I quickly grabbed every spoon on the table; hell I grabbed spoons off of the other tables. I looked at her in the eyes and said “Here you go, you have Lupus”. She looked at me slightly confused, as anyone would when they are being handed a bouquet of spoons. The cold metal spoons clanked in my hands, as I grouped them together and shoved them into her hands. <br /><br />I explained that the difference in being sick and being healthy is having to make choices or to consciously think about things when the rest of the world doesn’t have to. The healthy have the luxury of a life without choices, a gift most people take for granted. <br /><br />Most people start the day with unlimited amount of possibilities, and energy to do whatever they desire, especially young people. For the most part, they do not need to worry about the effects of their actions. So for my explanation, I used spoons to convey this point. I wanted something for her to actually hold, for me to then take away, since most people who get sick feel a “loss” of a life they once knew. If I was in control of taking away the spoons, then she would know what it feels like to have someone or something else, in this case Lupus, being in control. <br /><br />She grabbed the spoons with excitement. She didn’t understand what I was doing, but she is always up for a good time, so I guess she thought I was cracking a joke of some kind like I usually do when talking about touchy topics. Little did she know how serious I would become? <br /><br />I asked her to count her spoons. She asked why, and I explained that when you are healthy you expect to have a never- ending supply of "spoons". But when you have to now plan your day, you need to know exactly how many “spoons” you are starting with. It doesn’t guarantee that you might not lose some along the way, but at least it helps to know where you are starting. She counted out 12 spoons. She laughed and said she wanted more. I said no, and I knew right away that this little game would work, when she looked disappointed, and we hadn't even started yet. I’ve wanted more "spoons" for years and haven’t found a way yet to get more, why should she? I also told her to always be conscious of how many she had, and not to drop them because she can never forget she has Lupus. <br /><br />I asked her to list off the tasks of her day, including the most simple. As, she rattled off daily chores, or just fun things to do; I explained how each one would cost her a spoon. When she jumped right into getting ready for work as her first task of the morning, I cut her off and took away a spoon. I practically jumped down her throat. I said " No! You don’t just get up. You have to crack open your eyes, and then realize you are late. You didn’t sleep well the night before. You have to crawl out of bed, and then you have to make your self something to eat before you can do anything else, because if you don’t, you can't take your medicine, and if you don’t take your medicine you might as well give up all your spoons for today and tomorrow too." I quickly took away a spoon and she realized she hasn’t even gotten dressed yet. Showering cost her spoon, just for washing her hair and shaving her legs. Reaching high and low that early in the morning could actually cost more than one spoon, but I figured I would give her a break; I didn’t want to scare her right away. Getting dressed was worth another spoon. I stopped her and broke down every task to show her how every little detail needs to be thought about. You cannot simply just throw clothes on when you are sick. I explained that I have to see what clothes I can physically put on, if my hands hurt that day buttons are out of the question. If I have bruises that day, I need to wear long sleeves, and if I have a fever I need a sweater to stay warm and so on. If my hair is falling out I need to spend more time to look presentable, and then you need to factor in another 5 minutes for feeling badly that it took you 2 hours to do all this. <br /><br />I think she was starting to understand when she theoretically didn’t even get to work, and she was left with 6 spoons. I then explained to her that she needed to choose the rest of her day wisely, since when your “spoons” are gone, they are gone. Sometimes you can borrow against tomorrow’s "spoons", but just think how hard tomorrow will be with less "spoons". I also needed to explain that a person who is sick always lives with the looming thought that tomorrow may be the day that a cold comes, or an infection, or any number of things that could be very dangerous. So you do not want to run low on "spoons", because you never know when you truly will need them. I didn’t want to depress her, but I needed to be realistic, and unfortunately being prepared for the worst is part of a real day for me.<br />We went through the rest of the day, and she slowly learned that skipping lunch would cost her a spoon, as well as standing on a train, or even typing at her computer too long. She was forced to make choices and think about things differently. Hypothetically, she had to choose not to run errands, so that she could eat dinner that night. <br /><br />When we got to the end of her pretend day, she said she was hungry. I summarized that she had to eat dinner but she only had one spoon left. If she cooked, she wouldn’t have enough energy to clean the pots. If she went out for dinner, she might be too tired to drive home safely. Then I also explained, that I didn’t even bother to add into this game, that she was so nauseous, that cooking was probably out of the question anyway. So she decided to make soup, it was easy. I then said it is only 7pm, you have the rest of the night but maybe end up with one spoon, so you can do something fun, or clean your apartment, or do chores, but you can’t do it all. <br />I rarely see her emotional, so when I saw her upset I knew maybe I was getting through to her. I didn’t want my friend to be upset, but at the same time I was happy to think finally maybe someone understood me a little bit. She had tears in her eyes and asked quietly “Christine, How do you do it? Do you really do this everyday?” I explained that some days were worse then others; some days I have more spoons then most. But I can never make it go away and I can’t forget about it, I always have to think about it. I handed her a spoon I had been holding in reserve. I said simply, “I have learned to live life with an extra spoon in my pocket, in reserve. You need to always be prepared” <br /><br />It’s hard, the hardest thing I ever had to learn is to slow down, and not do everything. I fight this to this day. I hate feeling left out, having to choose to stay home, or to not get things done that I want to. I wanted her to feel that frustration. I wanted her to understand, that everything everyone else does comes so easy, but for me it is one hundred little jobs in one. I need to think about the weather, my temperature that day, and the whole day's plans before I can attack any one given thing. When other people can simply do things, I have to attack it and make a plan like I am strategizing a war. It is in that lifestyle, the difference between being sick and healthy. It is the beautiful ability to not think and just do. I miss that freedom. I miss never having to count "spoons". <br /><br />After we were emotional and talked about this for a little while longer, I sensed she was sad. Maybe she finally understood. Maybe she realized that she never could truly and honestly say she understands. But at least now she might not complain so much when I can't go out for dinner some nights, or when I never seem to make it to her house and she always has to drive to mine. I gave her a hug when we walked out of the diner. I had the one spoon in my hand and I said “Don’t worry. I see this as a blessing. I have been forced to think about everything I do. Do you know how many spoons people waste everyday? I don’t have room for wasted time, or wasted “spoons” and I chose to spend this time with you.” <br /><br />Ever since this night, I have used the spoon theory to explain my life to many people. In fact, my family and friends refer to spoons all the time. It has been a code word for what I can and cannot do. Once people understand the spoon theory they seem to understand me better, but I also think they live their life a little differently too. I think it isn’t just good for understanding Lupus, but anyone dealing with any disability or illness. Hopefully, they don’t take so much for granted or their life in general. I give a piece of myself, in every sense of the word when I do anything. It has become an inside joke. I have become famous for saying to people jokingly that they should feel special when I spend time with them, because they have one of my "spoons". <br /><br /></span><span style="color:#000000;font-weight:bold; ">© 2003 by Christine Miserandino Butyoudontlooksick.com <br />Please note that this story is copyrighted and should not be reprinted in any form without permission from the author. <br /><br />Feel free link to “The Spoon Theory” at </span><span style="color:#000000;font-weight:bold; "><a href="http://www.butyoudontlooksick.com/the_spoon_theory">www.butyoudontlooksick.com/the_spoon_theory</a></span><span style="color:#000000;font-weight:bold; "> - Thank you! <br /></span><p class="blog-entry-tags">Tags: <a href="tag-butyoudontlooksick.com.html" title="ButYouDontLookSick.com" rel="tag">ButYouDontLookSick.com</a>, <a href="tag-sick.html" title="Sick" rel="tag">Sick</a>, <a href="tag-lupus.html" title="Lupus" rel="tag">Lupus</a>, <a href="tag-spoons.html" title="Spoons" rel="tag">Spoons</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="the_spoons_theory.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-11" class="blog-entry"><h1 class="blog-entry-title"><a href="exchange_service_unavailable.html" class="blog-permalink">Exchange Server 2007 “Service Unavailable” on OWA</a></h1><div class="blog-entry-date">02/03/08 12:16 Filed in: <span class="blog-entry-category"><a href="category-exchange-server-2007.html">Exchange Server 2007</a></span></div><div class="blog-entry-body"><span style="color:#000000;">This is apparently caused by installing important security patches, noticeably anything to do with .Net. It installs the 32-bit version of .Net 2.0 Service Pack 1, where Exchange Server 2007 requires the 64-bit version and will only work with the 64-bit version.<br /><br />In the Event Viewer it generates an error 2268 or 2274.<br />The event text includes “ISAPI Filter ‘C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\\aspnet_filter.dll’”.<br /><br />Fortunately, this one is easy to fix. Look up </span><span style="color:#000000;"><a href="http://support.microsoft.com/kb/894435">http://support.microsoft.com/kb/894435</a></span><span style="color:#000000;"> and follow the instructions give in the “ASP.NET 2.0, 64-bit version” section.<br /><br />To run the 64-bit version of ASP.NET 2.0, follow these steps:<br />1. Click Start, click Run, type cmd, and then click OK.<br />2. Type the following command to disable the 32-bit mode:<br />cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0<br />3. Type the following command to install the version of ASP.NET 2.0 and to install the script maps at the IIS root and under:<br />%SYSTEMROOT%\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -i<br />4. Make sure that the status of ASP.NET version 2.0.50727 is set to Allowed in the Web service extension list in Internet Information Services Manager.<br />Note The build version of ASP.NET 2.0 may differ depending on what the currently released build version is. These steps are for build version 2.0.50727.<br /><br />Then you should find that OWA (Outlook Web Access) and Entourage 2008 support start working again.</span><p class="blog-entry-tags">Tags: <a href="tag-exchange.html" title="Exchange" rel="tag">Exchange</a>, <a href="tag-2007.html" title="2007" rel="tag">2007</a>, <a href="tag-error.html" title="Error" rel="tag">Error</a>, <a href="tag-unavailable.html" title="Unavailable" rel="tag">Unavailable</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="exchange_service_unavailable.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-10" class="blog-entry"><h1 class="blog-entry-title"><a href="entourage_2008_exchange.html" class="blog-permalink">Entourage 2008 and Exchange Server 2007</a></h1><div class="blog-entry-date">29/02/08 12:16 Filed in: <span class="blog-entry-category"><a href="category-exchange-server-2007.html">Exchange Server 2007</a></span><span class="blog-entry-category"> | <a href="category-mac.html">Mac</a></span></div><div class="blog-entry-body"><span style="color:#000000;">Out of the box, even with an Exchange 2007 server installation including support for Exchange 2003 and earlier (ie. a “legacy” install), Entourage 2008 simply does not connect to the Exchange 2007 Server. That’s pretty poor in my view, they are both the latest versions of Microsoft’s own products, and it just does not work. Pretty crap <img class="blog-image-smiley" src="../../rw_common/plugins/blog/smiley_sad.png" width="21" height="21" alt="Sad" border="0" /><br /><br />Hopefully this note will help you get them working together properly.<br /><br />Start up an Exchange 2007 Management Shell from the Exchange 2007 Programs menu, and the IIS manager from “Administrative Tools”.<br /><br />Delete the Exchange subweb from IIS on the Exchange 2007 server.<br />This only deletes it from IIS, it doesn’t take it out of the Exchange 2007 Active Directory data.<br />So when you try to create it with New-OwaVirtualDirectory, it will give an error saying it already exists.<br /><br />So do this:<br />remove-owavirtualdirectory -Identity "exchange3\Exchange (default web site)"<br />remove-owavirtualdirectory -Identity "exchange3\Public (default web site)"<br />exactly as given, except for the “exchange3” which should be replaced with the name of your Exchange 2007 server. This is assuming your Exchange 2007 server is called “exchange3”, so edit it appropriately.<br /><br />Then<br />New-OwaVirtualDirectory -name Exchange -OWAVersion Exchange2003or2000 -VirtualDirectoryType mailboxes<br />New-OwaVirtualDirectory -name Exchange -OWAVersion Exchange2003or2000 -VirtualDirectoryType PublicFolders<br />Also read<br /></span><span style="color:#000000;"><a href="http://support.microsoft.com/kb/931350">http://support.microsoft.com/kb/931350</a></span><span style="color:#000000;"><br /><br /><br />In the Account properties “Edit Account” dialog box, set this<br />Account ID: exchange3.ecs.soton.ac.uk/exchange/</span><span style="color:#000000;"><a href="mailto:your-username@ecs.soton.ac.uk">your-username@ecs.soton.ac.uk</a></span><span style="color:#000000;"><br />Domain:<br />Password:<br />Leave the Domain blank and the Password blank.<br />Ok this dialog, then quit and restart Entourage 2008.<br /><br />If that Account ID setting doesn’t work, try this instead:<br />Account ID: ECS2000\jkf-private<br />where “ECS2000” is your Active Directory domain name, and “jkf-private” is your username. Again, leave the “Domain” and “Password” blank, it will prompt you for the password. Never type in anything into the “Domain” box, always leave that blank.<br /><br />I still cannot get Public Folders working from Entourage 2008. Sorry.<br /><br />Let me know if this helps or not.</span><p class="blog-entry-tags">Tags: <a href="tag-entourage.html" title="Entourage" rel="tag">Entourage</a>, <a href="tag-2008.html" title="2008" rel="tag">2008</a>, <a href="tag-exchange.html" title="Exchange" rel="tag">Exchange</a>, <a href="tag-2007.html" title="2007" rel="tag">2007</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="entourage_2008_exchange.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-9" class="blog-entry"><h1 class="blog-entry-title"><a href="easy_build_mx.html" class="blog-permalink">Building an MX the Easy Way</a></h1><div class="blog-entry-date">06/02/08 12:15 Filed in: <span class="blog-entry-category"><a href="category-email.html">Email</a></span><span class="blog-entry-category"> | <a href="category-mx.html">MX</a></span></div><div class="blog-entry-body"><span style="color:#000000;">Boot off RHEL5 disk 1.<br />linux rescue<br />Activate network interface eth0 (first interface).<br />Give IP and so on.<br />Use fdisk to create<br /> /dev/sda1 /boot Linux 100Mb<br /> /dev/sda2 Linux swap 2048Mb<br /> /dev/sda3 / Linux all the rest<br />mkfs.ext3 /dev/sda1<br />mkfs.ext3 /dev/sda3<br />mkswap /dev/sda2<br />mkdir /mnt2<br />mount /dev/sda1 /mnt2<br />ssh crow ‘dump 0f - /dev/sda3’ | ( cd /mnt2 && restore -rf - )<br />umount /mnt2<br />mount /dev/sda3 /mnt2<br />ssh crow.ecs.soton.ac.uk ‘dump 0f - /dev/mapper/VolGroup00-LogVol00’ | ( cd /mnt2 && restore -rf - )<br />or else<br />ssh crow.ecs.soton.ac.uk ‘cd / && tar clf - .’ | ( cd /mnt2 && tar xvBpf - )<br />Fix /mnt2/etc/fstab so it points to all the right partitions.<br />If you really want to use partition labels, use the “e2label” command to set the label of each partition so that your shiny new /etc/fstab can find them. Syntax is obvious: /sbin/e2label device [ new-label ]<br />umount /mnt2<br /><br /></span><span style="color:#000000;font-weight:bold; ">Installing Grub<br /></span><span style="color:#000000;">Cloning an RHEL4 system using the RHEL5 rescue disc? You must use Grub from RHEL4 to setup a boot record for an RHEL4 system. So mount the (newly copied) root filesystem in /mnt2 and copy /mnt2/sbin/grub to /sbin/grub. Then follow the instructions below.<br />mkdir /boot<br />mount /dev/sda1 /boot<br />rm -rf /boot/boot<br />grub<br />grub> root (hd0,0)<br />grub> setup (hd0)<br />Edit /boot/grub/grub.conf and change the root command to (hd0,0) and the kernel root-filesystem argument to /dev/sda3.<br />Repeat that edit for all the other kernels available.<br /><br />Unplug network interface<br />Reboot and it should boot from hard disk<br />cd /var/spool/mqueue.in<br />rm -f *<br />cd /var/spool/mqueue<br />rm -f *<br />cd /var/spool/MailScanner/quarantine<br />rm -rf *<br />cd ../incoming<br />rm -rf *<br />cd ../archive<br />rm -rf *<br />cd /var/log<br />Remove all old logs<br />service syslog restart<br />Fix ethernet and IP address in /etc/sysconfig/network-scripts/ifcfg-eth0 and /etc/sysconfig/network<br />Fix /etc/hosts<br />Repair ownership and permissions of /home/* and /usr/local/share/clamav (and subdirectories).<br />Fix extra ClamAV databases so that “MailScanner --lint” runs correctly.<br />Reboot with network interface connected.<br /><br />Re-register with RedHat network for yum updates, get the info from the Systems KB.<br />yum update<br /></span><p class="blog-entry-tags">Tags: <a href="tag-build.html" title="Build" rel="tag">Build</a>, <a href="tag-easy-way.html" title="Easy Way" rel="tag">Easy Way</a>, <a href="tag-mx.html" title="MX" rel="tag">MX</a>, <a href="tag-email.html" title="Email" rel="tag">Email</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="easy_build_mx.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-8" class="blog-entry"><h1 class="blog-entry-title"><a href="mac_serial_port.html" class="blog-permalink">USB Serial Port Adapter for Mac</a></h1><div class="blog-entry-date">22/01/08 12:14 Filed in: <span class="blog-entry-category"><a href="category-mac.html">Mac</a></span></div><div class="blog-entry-body"><span style="color:#000000;">I have bought a couple of USB serial port adapters which work as serial ports on Mac OSX. They are from SerialIO.com.<br /><br />Drivers can be downloaded from </span><span style="color:#000000;"><a href="http://serialio.com/products/adaptors/usb_serial.php">http://serialio.com/products/adaptors/usb_serial.php</a></span><span style="color:#000000;"> and installation instructions and so on are at </span><span style="color:#000000;"><a href="http://serialio.com/support/OSX/USB-Serial-plug.php">http://serialio.com/support/OSX/USB-Serial-plug.php</a></span><span style="color:#000000;">.<br /><br />You have to stop them being used as network adapters so that the serial devices are available as ports for minicom and the like.<br /><br />You can build minicom from the MacOS Ports system with “port install minicom”. You have to bodge one little bit that doesn’t compile, by turning a compile of static variables into normal globals, but otherwise it builds okay. Hopefully someone will fix the compilation problem by the time this is needed.<br /></span><p class="blog-entry-tags">Tags: <a href="tag-usb.html" title="USB" rel="tag">USB</a>, <a href="tag-mac.html" title="Mac" rel="tag">Mac</a>, <a href="tag-serial-port.html" title="Serial Port" rel="tag">Serial Port</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="mac_serial_port.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-7" class="blog-entry"><h1 class="blog-entry-title"><a href="exchange_mapi.html" class="blog-permalink">MAPI/CDO with Exchange Server 2007</a></h1><div class="blog-entry-date">08/01/08 12:14 Filed in: <span class="blog-entry-category"><a href="category-exchange-server-2007.html">Exchange Server 2007</a></span></div><div class="blog-entry-body"><span style="color:#000000;">In all previous versions of Exchange prior to 2007, Microsoft shipped the MAPI client library and CDO library as part of Exchange.<br />In Exchange Server 2007, they have stopped doing this. If you need the libraries, you need to download them from here:<br /></span><span style="color:#000000;"><a href="http://www.microsoft.com/downloads/thankyou.aspx?familyId=e17e7f31-079a-43a9-bff2-0a110307611e&displayLang=en">http://www.microsoft.com/downloads/thankyou.aspx?familyId=e17e7f31-079a-43a9-bff2-0a110307611e&displayLang=en</a></span><span style="color:#000000;"><br /></span><p class="blog-entry-tags">Tags: <a href="tag-mapi.html" title="MAPI" rel="tag">MAPI</a>, <a href="tag-exchange.html" title="Exchange" rel="tag">Exchange</a>, <a href="tag-2007.html" title="2007" rel="tag">2007</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="exchange_mapi.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-6" class="blog-entry"><h1 class="blog-entry-title"><a href="exchange_sp1.html" class="blog-permalink">Applying Exchange Server 2007 Service Pack 1</a></h1><div class="blog-entry-date">05/01/08 12:13 Filed in: <span class="blog-entry-category"><a href="category-exchange-server-2007.html">Exchange Server 2007</a></span></div><div class="blog-entry-body"><span style="color:#000000;">Due to us having a scheduled lack of internet connection, we chose this as a good time to patch the management’s Exchange 2007 server.<br /><br />Be warned: to get this service pack to apply, you must first install .Net 2.0 service pack 1 which they chose not to bundle with the enormous Exchange service pack 1. Why not? Who knows! <img class="blog-image-smiley" src="../../rw_common/plugins/blog/smiley_sad.png" width="21" height="21" alt="Sad" border="0" /> The service pack doesn’t fit on a CD anyway, so why not just include a copy of .Net 2 SP1 with it? Finding the service pack on their website is not trivial either, as it’s very badly titled and so most of the obvious search terms don’t help you. Go to </span><span style="color:#000000;"><a href="http://www.microsoft.com">www.microsoft.com</a></span><span style="color:#000000;"> and search their downloads for “.Net 2 SP1”. This will find you the x86 version, and there is a link to the x64 version near the bottom of the page, as well as the ia64 Itanic release if you need that instead. It’s currently at:<br /></span><span style="color:#000000;"><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=029196ED-04EB-471E-8A99-3C61D19A4C5A&displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyId=029196ED-04EB-471E-8A99-3C61D19A4C5A&displaylang=en</a></span><span style="color:#000000;"><br /><br />Install that and then reboot. The server needs to be able to see the Active Directory schema master as well, so I hope your internal network is working (our’s wasn’t due to our campus network managers’ incompetence at their stunning inability to hire a generator to keep a few routers up and running).<br /><br />After this, install the Exchange SP1. It installed perfectly on our server, and the whole process took about 20 or 30 minutes and did </span><span style="color:#000000;font-weight:bold; ">not</span><span style="color:#000000;"> require a reboot afterwards.<br /><br />The only damage it appears to have done is set the “https required” flag on the default website in IIS. I have this switched off and do an auto-redirect from </span><span style="color:#000000;"><a href="http://exchange">http://exchange</a></span><span style="color:#000000;">...../ to </span><span style="color:#000000;"><a href="https://exchange">https://exchange</a></span><span style="color:#000000;">...../owa, which saves our users a lot of typing and saves us a lot of “I can’t get at the webmail” complaints.</span><p class="blog-entry-tags">Tags: <a href="tag-exchange.html" title="Exchange" rel="tag">Exchange</a>, <a href="tag-2007.html" title="2007" rel="tag">2007</a>, <a href="tag-service-pack.html" title="Service Pack" rel="tag">Service Pack</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="exchange_sp1.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-5" class="blog-entry"><h1 class="blog-entry-title"><a href="hyper-v_rhel_centos.html" class="blog-permalink">Hyper-V Integration Components in x86_64 CentOS and RHEL</a></h1><div class="blog-entry-date">02/01/08 12:12 Filed in: <span class="blog-entry-category"><a href="category-hyper-v.html">Hyper-V</a></span></div><div class="blog-entry-body"><span style="color:#000000;font-weight:bold; ">Update 13th July 2008: New version of this HOWTO is available with information on Linux Integration Components RC2.</span><span style="color:#000000;"><br /><br />This page tells you how to install the Windows Server 2008 virtualization Hyper-V Linux Integration Components in CentOS and RHEL (RedHat Enterprise Linux) 5. I did it all in x86_64 (or x64) as it is much more interesting and useful.<br /><br />Installing the ICs in CentOS 5.1 or RHEL 5.1 is rather harder than in SuSE 10.<br /><br />You need to copy the code off the CDROM ISO image, so let’s start by doing that:<br /></span><span style="font:12px CourierNewPSMT; color:#000000;"> mkdir -p /mnt/cdrom<br /> mount /dev/cdrom /mnt/cdrom<br /> mkdir /opt/linux_ic<br /> ( cd /mnt/cdrom && tar cf - . ) | ( cd /opt/linux_ic && tar xvBpf - )<br /> umount /mnt/cdrom<br /></span><span style="color:#000000;"><br />Next, get the kernel source for the exact version of kernel and kernel-headers you are using. “rpm -qa | grep kernel” will tell you what kernel-headers you have. Remember that a “yum update” may change the kernel version.<br /><br />Once you have the the kernel version, go and find the kernel source SRPM. You can get this from </span><span style="color:#000000;"><a href="http://mirrors.centos.org/centos">http://mirrors.centos.org/centos</a></span><span style="color:#000000;">/5/updates/SRPMS/ or </span><span style="color:#000000;"><a href="http://mirrors.centos.org/centos/5/os/SRPMS/">http://mirrors.centos.org/centos/5/os/SRPMS/</a></span><span style="color:#000000;">.<br /><br />Install the SRPM which will get you the full kernel source in /usr/src/redhat/SOURCES (along with all RedHat’s patches) and the spec file in /usr/src/redhat/SPECS. You need to edit the spec file, so make a backup copy of it first. Find the “buildid” definition line, uncomment it, remove the extra space after % and change it to something like<br /></span><span style="font:12px CourierNewPSMT; color:#000000;"> %define buildid .JKF1<br /></span><span style="color:#000000;">The tools supplied with RHEL5 and CentOS 5 are not good enough to build the kernel-headers, due to a lack of support for “unifdef” in GNU make. So find the line that sets “with_headers” and change it to<br /></span><span style="font:12px CourierNewPSMT; color:#000000;"> %define with_headers 0<br /></span><span style="color:#000000;"><br />Just before the “%build” line, you need to add the patch for the Hypervisor code. 2 of the parts of the Microsoft-supplied patch do not apply successfully, due to differences in the source code where it doesn’t match what Microsoft think it is. So do a “rpmbuild -bp kernel-2.6.spec” to build a patched source tree in /usr/src/redhat/BUILD. Then cd into it and try to apply the patch in /opt/linux_ic/patch/. You will find 2 bits of it don’t apply correctly. Look at the .rej file for each failed patch and apply the changes by hand. Copy the 2 manually patched source files to somewhere convenient like /root. Before the “%build” line, add a chunk of shell script that does something like this: (I am assuming here that you know what you’re doing <img class="blog-image-smiley" src="../../rw_common/plugins/blog/smiley_smile.png" width="21" height="21" alt="Happy" border="0" /><br /></span><span style="font:12px CourierNewPSMT; color:#000000;">cd /usr/src/redhat/BUILD/kernel-2.6.18<br />( patch -p0 < /opt/linux_ic/patch/x2c-x64-sles.patch ; /bin/true )<br />cp -f /root/head64-xen.c linux-2.6.18.x86_64/arch/x86_64/kernel/<br />cp -f /root/pgalloc.h linux-2.6.18.x86_64/include/asm-x86_64/mach-xen/asm/<br /></span><span style="color:#000000;"><br />You can now build the RPM, which will construct several kernels, including the xen one which is what you need. So<br /></span><span style="font:12px CourierNewPSMT; color:#000000;"> cd /usr/src/redhat/SPECS<br /> rpmbuild -ba kernel-2.6.spec<br /></span><span style="color:#000000;">Be warned, this will take *hours* on a on a virtual machine.<br /><br />Now install the xen version of the new kernel:<br /></span><span style="font:12px CourierNewPSMT; color:#000000;"> cd /usr/src/redhat/RPMS/x86_64<br /> rpm -ivh --force kernel-xen-2*.JKF2*rpm<br /></span><span style="color:#000000;"><br />Build the x2v version of the kernel<br /></span><span style="font:12px CourierNewPSMT; color:#000000;"> cd /opt/linux_ic<br /> perl setup.pl x2v /boot/grub/grub.conf<br /></span><span style="color:#000000;"><br />Now you need to fix up the /boot/grub/grub.conf file. For the section that includes the x2v-64 stuff, remove the “/boot” leading path, as all paths must be given relative to /boot. You *do* need the leading “/” though. The final section you get should look like this:<br /></span><span style="font:12px CourierNewPSMT; color:#000000;">title CentOS (2.6.18-53.1.4.el5.JKF2xen)<br /> root (hd0,0)<br /> kernel /x2v-64.gz<br /> module /vmlinuz-2.6.18-53.1.4.el5.JKF2xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet<br /> module /initrd-2.6.18-53.1.4.el5.JKF2xen.img<br /></span><span style="color:#000000;">I strongly advise you comment out the “hiddenmenu” setting, and set the default to this kernel (they are numbered from 0=start of file).<br /><br />Now reboot, and it should boot your newly built kernel with the X2V shims in place.<br /><br />Next step is to build the drivers. There is one problem that needs fixing first, the “build” link in the /lib/modules/<kernel-version> directory will be broken. To fix this, make it point into the kernel source that you have been building from, with something like this:<br /></span><span style="font:12px CourierNewPSMT; color:#000000;"> cd /lib/modules/`uname -r`<br /> ln -nsf /usr/src/rdhat/BUILD/kernel-2.6.18/linux-2.6.18.x86_64 build<br /></span><span style="color:#000000;">Now build the drivers:<br /></span><span style="font:12px CourierNewPSMT; color:#000000;"> cd /opt/linux_ic<br /> perl setup.pl drivers<br /></span><span style="color:#000000;"><br />You should now have the drivers running, and should have just seen the output of the “modprobe vmbus” command. And you should find that “ifconfig” outputs a new network device “seth0”. When you reboot, the vmbus module willl automatically be started. Unfortunately, it loads too late in time for it to be used for the seth0 network interface to be the sole external network interface, nor in time for the SCSI device to mount filesystems stored on virtual SCSI disks. Moving the init.d script to S04vmbus doesn’t help, as kudzu does not see the device and so removes it from the /etc/sysconfig/network-scripts directory. </span><span style="color:#000000;font-weight:bold; ">UPDATE</span><span style="color:#000000;"> -- appears to work okay as a network interface, like on SuSE 10.<br />If you try to attach the network interface automatically at boot time, you will need to do this after the machine has booted:<br /></span><span style="font:12px CourierNewPSMT; color:#000000;"> service network start<br /> service sshd restart<br /></span><span style="color:#000000;">along with any other network-connected daemons you have started, such as MailScanner or sendmail.<br /><br />You now have the same ICs running in CentOS 5.1 or RHEL 5 as Microsoft intended to run in SuSE 10.</span><p class="blog-entry-tags">Tags: <a href="tag-windows.html" title="Windows" rel="tag">Windows</a>, <a href="tag-hyper-v.html" title="Hyper-V" rel="tag">Hyper-V</a>, <a href="tag-2008.html" title="2008" rel="tag">2008</a>, <a href="tag-integration.html" title="Integration" rel="tag">Integration</a>, <a href="tag-linux.html" title="Linux" rel="tag">Linux</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="hyper-v_rhel_centos.html#disqus_thread">Comments</a></div></div></div><div id="unique-entry-id-4" class="blog-entry"><h1 class="blog-entry-title"><a href="tomtom_ipaq.html" class="blog-permalink">TomTom Update for HP iPAQ</a></h1><div class="blog-entry-date">02/01/08 12:11 Filed in: <span class="blog-entry-category"><a href="category-tomtom.html">Tomtom</a></span><span class="blog-entry-category"> | <a href="category-ipaq.html">iPAQ</a></span></div><div class="blog-entry-body"><span style="color:#000000;">If you have problems reading maps other than the original free one, and you are using an HP iPAQ and Navigator 6, there is an update to Navigator 6 available.<br />Start TomTom Home, and then in IE go to </span><span style="color:#000000;"><a href="http://www.tomtom.com/support/index.php?FID=6736&Lid=1">http://www.tomtom.com/support/index.php?FID=6736&Lid=1</a></span><span style="color:#000000;"> and there will be a Download button. This will download the new Navigator and make it available in the “on your computer” list of objects you can install to your PDA.</span><p class="blog-entry-tags">Tags: <a href="tag-tomtom.html" title="TomTom" rel="tag">TomTom</a>, <a href="tag-ipaq.html" title="iPAQ" rel="tag">iPAQ</a>, <a href="tag-service-pack.html" title="Service Pack" rel="tag">Service Pack</a></p><div class="blog-entry-comments"><a class="blog-comment-link" href="tomtom_ipaq.html#disqus_thread">Comments</a></div></div></div> </div> <script type="text/javascript"> //<![CDATA[ (function() { var links = document.getElementsByTagName('a'); var query = '?'; for(var i = 0; i < links.length; i++) { if(links[i].href.indexOf('#disqus_thread') >= 0) { query += 'url' + i + '=' + encodeURIComponent(links[i].href) + '&'; } } document.write('<script charset="utf-8" type="text/javascript" src="http://disqus.com/forums/JulesFM/get_num_replies.js' + query + '"></' + 'script>'); })(); //]]> </script> </div><!-- End content --> </div><!-- End main content wrapper --> <div id="sidebarContainer"><!-- Start Sidebar wrapper --> <div id="navcontainer2"> <ul class="nav"><li><a href="../../" rel="self" title="Welcome to my world...">Welcome...</a></li><li><a href="http://www.jules.fm/gallery" rel="self" title="My Photo Albums">Photos</a></li><li><a href="../../MyMusic/MyMusic.html" rel="self" title="Play my music from within ECS">Music</a></li><li><a href="http://www.mailscanner.info/" rel="self" title="What occupies all my time">MailScanner</a></li><li><a href="../Logbook.html" rel="self" id="current" title="What I get up to at work">Logbook</a></li></ul> </div> <div class="sideHeader"></div><!-- Sidebar header --> <div id="sidebar"><!-- Start sidebar content --> <!--COPY FROM HERE (For use with video tutorial) --><!--STOP COPYING HERE (For use with video tutorial) --> <div id="blog-categories"><a href="category-advert.html" class="blog-category-link-enabled">Advert (1)</a><br /><a href="category-applescript.html" class="blog-category-link-enabled">AppleScript (1)</a><br /><a href="category-email.html" class="blog-category-link-enabled">Email (7)</a><br /><a href="category-exchange-server-2007.html" class="blog-category-link-enabled">Exchange Server 2007 (9)</a><br /><a href="category-hyper-v.html" class="blog-category-link-enabled">Hyper-V (10)</a><br /><a href="category-ipaq.html" class="blog-category-link-enabled">iPAQ (1)</a><br /><a href="category-iphone.html" class="blog-category-link-enabled">iPhone (2)</a><br /><a href="category-linux.html" class="blog-category-link-enabled">Linux (13)</a><br /><a href="category-mac.html" class="blog-category-link-enabled">Mac (12)</a><br /><a href="category-mail.html" class="blog-category-link-enabled">Mail (2)</a><br /><a href="category-mailscanner.html" class="blog-category-link-enabled">MailScanner (1)</a><br /><a href="category-mx.html" class="blog-category-link-enabled">MX (1)</a><br /><a href="category-networks.html" class="blog-category-link-enabled">Networks (1)</a><br /><a href="category-samba.html" class="blog-category-link-enabled">Samba (1)</a><br /><a href="category-sick.html" class="blog-category-link-enabled">Sick (1)</a><br /><a href="category-solaris.html" class="blog-category-link-enabled">Solaris (1)</a><br /><a href="category-spam.html" class="blog-category-link-enabled">Spam (2)</a><br /><a href="category-tomtom.html" class="blog-category-link-enabled">Tomtom (1)</a><br /><a href="category-tv.html" class="blog-category-link-enabled">TV (1)</a><br /><a href="category-vmware.html" class="blog-category-link-enabled">VMware (11)</a><br /><a href="category-vsphere.html" class="blog-category-link-enabled">vSphere (8)</a><br /><a href="category-windows.html" class="blog-category-link-enabled">Windows (1)</a><br /><a href="category-windows-7.html" class="blog-category-link-enabled">Windows 7 (4)</a><br /><a href="category-windows-pe.html" class="blog-category-link-enabled">Windows PE (1)</a><br /><a href="category-windows-server-2008.html" class="blog-category-link-enabled">Windows Server 2008 (3)</a><br /><a href="category-windows-vista.html" class="blog-category-link-enabled">Windows Vista (1)</a><br /><div class="blog-category-link-disabled">X</div><a href="category-x-windows.html" class="blog-category-link-enabled">X Windows (5)</a><br /></div><div id="blog-archives"><a class="blog-archive-link-enabled" href="archive-2010.html">2010</a><br /><a class="blog-archive-link-enabled" href="archive-2009.html">2009</a><br /><a class="blog-archive-link-enabled" href="archive-2008.html">2008</a><br /><a class="blog-archive-link-enabled" href="archive-2007.html">2007</a><br /></div><ul class="blog-tag-cloud"><li><a href="tag-2007.html" title="2007" class="blog-tag-size-9" rel="tag">2007</a></li> <li><a href="tag-2008.html" title="2008" class="blog-tag-size-10" rel="tag">2008</a></li> <li><a href="tag-activation.html" title="Activation" class="blog-tag-size-7" rel="tag">Activation</a></li> <li><a href="tag-applescript.html" title="AppleScript" class="blog-tag-size-7" rel="tag">AppleScript</a></li> <li><a href="tag-autodiscovery.html" title="Autodiscovery" class="blog-tag-size-6" rel="tag">Autodiscovery</a></li> <li><a href="tag-availability.html" title="Availability" class="blog-tag-size-6" rel="tag">Availability</a></li> <li><a href="tag-backup.html" title="Backup" class="blog-tag-size-8" rel="tag">Backup</a></li> <li><a href="tag-beta.html" title="Beta" class="blog-tag-size-8" rel="tag">Beta</a></li> <li><a href="tag-build.html" title="Build" class="blog-tag-size-6" rel="tag">Build</a></li> <li><a href="tag-butyoudontlooksick.com.html" title="ButYouDontLookSick.com" class="blog-tag-size-6" rel="tag">ButYouDontLookSick.com</a></li> <li><a href="tag-centos.html" title="CentOS" class="blog-tag-size-9" rel="tag">CentOS</a></li> <li><a href="tag-dell.html" title="Dell" class="blog-tag-size-6" rel="tag">Dell</a></li> <li><a href="tag-drm.html" title="DRM" class="blog-tag-size-6" rel="tag">DRM</a></li> <li><a href="tag-easy-way.html" title="Easy Way" class="blog-tag-size-6" rel="tag">Easy Way</a></li> <li><a href="tag-elgato.html" title="Elgato" class="blog-tag-size-5" rel="tag">Elgato</a></li> <li><a href="tag-email.html" title="Email" class="blog-tag-size-9" rel="tag">Email</a></li> <li><a href="tag-entourage.html" title="Entourage" class="blog-tag-size-5" rel="tag">Entourage</a></li> <li><a href="tag-error.html" title="Error" class="blog-tag-size-8" rel="tag">Error</a></li> <li><a href="tag-exchange.html" title="Exchange" class="blog-tag-size-10" rel="tag">Exchange</a></li> <li><a href="tag-ext3.html" title="Ext3" class="blog-tag-size-5" rel="tag">Ext3</a></li> <li><a href="tag-eyetv.html" title="EyeTV" class="blog-tag-size-5" rel="tag">EyeTV</a></li> <li><a href="tag-hyper-v.html" title="Hyper-V" class="blog-tag-size-10" rel="tag">Hyper-V</a></li> <li><a href="tag-integration.html" title="Integration" class="blog-tag-size-8" rel="tag">Integration</a></li> <li><a href="tag-ipaq.html" title="iPAQ" class="blog-tag-size-5" rel="tag">iPAQ</a></li> <li><a href="tag-iphone.html" title="iPhone" class="blog-tag-size-8" rel="tag">iPhone</a></li> <li><a href="tag-ipulse.html" title="iPulse" class="blog-tag-size-5" rel="tag">iPulse</a></li> <li><a href="tag-itunes.html" title="iTunes" class="blog-tag-size-5" rel="tag">iTunes</a></li> <li><a href="tag-itunes-plus.html" title="iTunes Plus" class="blog-tag-size-4" rel="tag">iTunes Plus</a></li> <li><a href="tag-linux.html" title="Linux" class="blog-tag-size-10" rel="tag">Linux</a></li> <li><a href="tag-lupus.html" title="Lupus" class="blog-tag-size-4" rel="tag">Lupus</a></li> <li><a href="tag-m4r.html" title="m4r" class="blog-tag-size-4" rel="tag">m4r</a></li> <li><a href="tag-mac.html" title="Mac" class="blog-tag-size-10" rel="tag">Mac</a></li> <li><a href="tag-macbook-pro.html" title="MacBook Pro" class="blog-tag-size-4" rel="tag">MacBook Pro</a></li> <li><a href="tag-mail.html" title="Mail" class="blog-tag-size-4" rel="tag">Mail</a></li> <li><a href="tag-mailman.html" title="Mailman" class="blog-tag-size-8" rel="tag">Mailman</a></li> <li><a href="tag-mailscanner.html" title="MailScanner" class="blog-tag-size-9" rel="tag">MailScanner</a></li> <li><a href="tag-majordomo.html" title="Majordomo" class="blog-tag-size-4" rel="tag">Majordomo</a></li> <li><a href="tag-mapi.html" title="MAPI" class="blog-tag-size-4" rel="tag">MAPI</a></li> <li><a href="tag-microsoft.html" title="Microsoft" class="blog-tag-size-4" rel="tag">Microsoft</a></li> <li><a href="tag-modeline.html" title="Modeline" class="blog-tag-size-3" rel="tag">Modeline</a></li> <li><a href="tag-mouse.html" title="Mouse" class="blog-tag-size-3" rel="tag">Mouse</a></li> <li><a href="tag-mx.html" title="MX" class="blog-tag-size-3" rel="tag">MX</a></li> <li><a href="tag-obfuscation.html" title="Obfuscation" class="blog-tag-size-3" rel="tag">Obfuscation</a></li> <li><a href="tag-ole.html" title="OLE" class="blog-tag-size-3" rel="tag">OLE</a></li> <li><a href="tag-phishing.html" title="Phishing" class="blog-tag-size-9" rel="tag">Phishing</a></li> <li><a href="tag-rc.html" title="RC" class="blog-tag-size-3" rel="tag">RC</a></li> <li><a href="tag-recipients.html" title="Recipients" class="blog-tag-size-3" rel="tag">Recipients</a></li> <li><a href="tag-rhel.html" title="RHEL" class="blog-tag-size-8" rel="tag">RHEL</a></li> <li><a href="tag-ringtone.html" title="Ringtone" class="blog-tag-size-2" rel="tag">Ringtone</a></li> <li><a href="tag-robinsons.html" title="Robinsons" class="blog-tag-size-2" rel="tag">Robinsons</a></li> <li><a href="tag-samba.html" title="Samba" class="blog-tag-size-2" rel="tag">Samba</a></li> <li><a href="tag-serial-port.html" title="Serial Port" class="blog-tag-size-2" rel="tag">Serial Port</a></li> <li><a href="tag-service-pack.html" title="Service Pack" class="blog-tag-size-7" rel="tag">Service Pack</a></li> <li><a href="tag-sick.html" title="Sick" class="blog-tag-size-2" rel="tag">Sick</a></li> <li><a href="tag-solaris.html" title="Solaris" class="blog-tag-size-7" rel="tag">Solaris</a></li> <li><a href="tag-spam.html" title="Spam" class="blog-tag-size-7" rel="tag">Spam</a></li> <li><a href="tag-spamassassin.html" title="SpamAssassin" class="blog-tag-size-7" rel="tag">SpamAssassin</a></li> <li><a href="tag-spear.html" title="Spear" class="blog-tag-size-9" rel="tag">Spear</a></li> <li><a href="tag-spoons.html" title="Spoons" class="blog-tag-size-2" rel="tag">Spoons</a></li> <li><a href="tag-tomtom.html" title="TomTom" class="blog-tag-size-2" rel="tag">TomTom</a></li> <li><a href="tag-ubuntu.html" title="Ubuntu" class="blog-tag-size-1" rel="tag">Ubuntu</a></li> <li><a href="tag-unavailable.html" title="Unavailable" class="blog-tag-size-7" rel="tag">Unavailable</a></li> <li><a href="tag-upgrade.html" title="Upgrade" class="blog-tag-size-1" rel="tag">Upgrade</a></li> <li><a href="tag-usb.html" title="USB" class="blog-tag-size-1" rel="tag">USB</a></li> <li><a href="tag-vista.html" title="Vista" class="blog-tag-size-1" rel="tag">Vista</a></li> <li><a href="tag-vmware.html" title="VMware" class="blog-tag-size-10" rel="tag">VMware</a></li> <li><a href="tag-vsphere.html" title="vSphere" class="blog-tag-size-10" rel="tag">vSphere</a></li> <li><a href="tag-watermarks.html" title="Watermarks" class="blog-tag-size-1" rel="tag">Watermarks</a></li> <li><a href="tag-website.html" title="Website" class="blog-tag-size-1" rel="tag">Website</a></li> <li><a href="tag-windows.html" title="Windows" class="blog-tag-size-10" rel="tag">Windows</a></li> <li><a href="tag-windows-7.html" title="Windows 7" class="blog-tag-size-7" rel="tag">Windows 7</a></li> <li><a href="tag-winpe.html" title="WinPE" class="blog-tag-size-1" rel="tag">WinPE</a></li> <li><a href="tag-xorg.conf.html" title="xorg.conf" class="blog-tag-size-9" rel="tag">xorg.conf</a></li> </ul> <div id="blog-rss-feeds"><a class="blog-rss-link" href="logbook.xml" rel="alternate" type="application/rss+xml" title="Jules' Logbook">RSS Feed</a><br /></div> <!-- sidebar content such as the blog archive links --> </div><!-- End sidebar content --> </div><!-- End sidebar wrapper --> <div class="clearer"></div> <div id="footer"><!-- Start Footer --> <div id="breadcrumbcontainer"><!-- Start the breadcrumb wrapper --> <ul><li><a href="../../" title="Welcome to my world...">Welcome...</a> | </li><li><a href="../Logbook.html" title="What I get up to at work">Logbook</a> | </li></ul> </div><!-- End breadcrumb --> <p>© 2009 Julian Field <a href="#" id="rw_email_contact">Mail Me</a><script type="text/javascript">var _rwObsfuscatedHref0 = "mai";var _rwObsfuscatedHref1 = "lto";var _rwObsfuscatedHref2 = ":Ju";var _rwObsfuscatedHref3 = "les";var _rwObsfuscatedHref4 = "@Ju";var _rwObsfuscatedHref5 = "les";var _rwObsfuscatedHref6 = ".FM";var _rwObsfuscatedHref = _rwObsfuscatedHref0+_rwObsfuscatedHref1+_rwObsfuscatedHref2+_rwObsfuscatedHref3+_rwObsfuscatedHref4+_rwObsfuscatedHref5+_rwObsfuscatedHref6; document.getElementById('rw_email_contact').href = _rwObsfuscatedHref;</script></p> </div><!-- End Footer --> </div><!-- End container --> <!-- Start Google Analytics --> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-8442741-1"); pageTracker._trackPageview(); } catch(err) {}</script><!-- End Google Analytics --> </body> </html>