<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
	<channel>
<title>Jules&#x27; Logbook</title><link>http://www.jules.fm/index.html</link><description>What I do at work</description><dc:language>en</dc:language><dc:creator>Jules@Jules.FM</dc:creator><dc:rights>Copyright 2010 Julian Field</dc:rights><dc:date>2010-05-24T09:26:38+01:00</dc:date><admin:generatorAgent rdf:resource="http://www.realmacsoftware.com/" />
<admin:errorReportsTo rdf:resource="mailto:Jules@Jules.FM" /><sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
<lastBuildDate>Mon, 24 May 2010 09:48:10 +0100</lastBuildDate><item><title>Apple iTunes DRM-free Songs</title><dc:creator>Jules@Jules.FM</dc:creator><category>Mac</category><dc:date>2010-05-24T09:26:38+01:00</dc:date><link>http://www.jules.fm/Logbook/files/remove_nasty_itunes_plus_information.html#unique-entry-id-68</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/remove_nasty_itunes_plus_information.html#unique-entry-id-68</guid><content:encoded><![CDATA[<span style="font:12px Verdana, serif; color:#0F0F0F;">They may be free of DRM, but they certainly are not free of information identifying exactly who bought them from iTunes and when! If you buy DRM-free, or &ldquo;iTunes Plus&rdquo; songs from the iTunes Store, and then share them with anyone else, you can still easily see exactly who originally bought them and therefore whether any copyright theft has taken place.<br /><br />Fortunately, with a bit of hackery, it&rsquo;s very simple to remove all the identifying information from iTunes Plus tracks.<br /><br />Firstly, you need to download and install the developer tools &ldquo;</span><span style="font:12px Verdana, serif; color:#0F0F0F;"><a href="http://developer.apple.com/technologies/xcode.html" rel="external">XCode</a></span><span style="font:12px Verdana, serif; color:#0F0F0F;">&rdquo; from Apple. The bits you really need are the command-line compilers. Unfortunately you have to register as a developer with Apple, but that only takes a few moments. Or you might have a friend who is already registered. Beware, XCode is a pretty big download!<br /><br />Once all that is installed, log out of your Mac and log back in again to be safe, then open up a Terminal (in Applications / Utilities), and run this command:<br />&nbsp;&nbsp;&nbsp;&nbsp;sudo cpan install Audio::M4P::QuickTime<br />You will have to type in your password, after which it will start doing all sorts of magic stuff to install this little bit. Just say &ldquo;y&rdquo; to all the prompts. Don&rsquo;t worry, it won&rsquo;t do any harm :-)<br /><br />Then </span><span style="font:12px Verdana, serif; color:#0F0F0F;"><a href="http://www.jules.fm/files/anontree.zip" rel="self">download anontree.zip</a></span><span style="font:12px Verdana, serif; color:#0F0F0F;">, put it on your Desktop and double-click on it to unpack it (if your web browser hasn&rsquo;t already done so!). You will get a file &ldquo;anontree.pl&rdquo;, put that on your Desktop.<br /><br />Now go to the Terminal window (open a new one if you closed it), and run these two commands:<br />&nbsp;&nbsp;&nbsp;&nbsp;cd ~/Music/iTunes<br />&nbsp;&nbsp;&nbsp;&nbsp;perl ~/Desktop/anontree.pl 'iTunes Music'<br />and don&rsquo;t forget those single quotes (apostrophes) in that second command, or it won&rsquo;t work.<br />It should now sit and process all the *.m4a files in your iTunes Music Library, removing all identifying marks from them. They will still work just fine in iTunes, nothing will break. This can take a few minutes to run, but it will keep showing you what it&rsquo;s doing.<br /><br />That&rsquo;s it! That wasn&rsquo;t so hard now, was it. And now you can even tell your friends you&rsquo;re a Perl hacker.<br /></span>]]></content:encoded></item><item><title>Dropbox</title><dc:creator>Jules@Jules.FM</dc:creator><category>Linux</category><dc:date>2010-05-13T22:21:40+01:00</dc:date><link>http://www.jules.fm/Logbook/files/dropbox.html#unique-entry-id-67</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/dropbox.html#unique-entry-id-67</guid><content:encoded><![CDATA[<span style="font:12px Verdana, serif; font-weight:bold; color:#0F0F0F;font-weight:bold; ">Update 24 May 2010:</span><span style="font:12px Verdana, serif; color:#0F0F0F;"> I have added some more features to Dropbox and I have released my new &ldquo;Dropoff&rdquo; over at </span><span style="font:12px Verdana, serif; color:#0F0F0F;"><a href="http://www.dropoff.me/" rel="self">www.dropoff.me</a></span><span style="font:12px Verdana, serif; color:#0F0F0F;">. Get all the latest and greatest there in future!<br /><br />I have found a great solution to the common problem of sending and receiving files from other sites and research partners, and generally sending large files around the web where email won&rsquo;t do the trick.<br /><br />It&rsquo;s called &ldquo;</span><span style="font:12px Verdana, serif; color:#0F0F0F;"><a href="http://www.udel.edu/topics/dropbox/" rel="self">Dropbox</a></span><span style="font:12px Verdana, serif; color:#0F0F0F;">&rdquo; and was originally written by the </span><span style="font:12px Verdana, serif; color:#0F0F0F;"><a href="http://www.udel.edu/" rel="self">University of Delaware</a></span><span style="font:12px Verdana, serif; color:#0F0F0F;">.<br /><br />I am launching it as a service at work called &ldquo;</span><span style="font:12px Verdana, serif; color:#0F0F0F;"><a href="http://dropoff.ecs.soton.ac.uk/" rel="self">Dropoff</a></span><span style="font:12px Verdana, serif; color:#0F0F0F;">&rdquo; in order that people don&rsquo;t think you are talking about the service provided by </span><span style="font:12px Verdana, serif; color:#0F0F0F;"><a href="http://www.dropbox.com/" rel="self">www.dropbox.com</a></span><span style="font:12px Verdana, serif; color:#0F0F0F;"> which is a totally different thing.<br /><br />The idea is that you don&rsquo;t even need to login to send a file to a user within your site/company/University/institution, so external people can use it to send files to people in your institution. It can handle arbitrarily large files, there are no fixed limits. If you log in to the Dropbox website, you can send files to people outside your institution. People who cannot log in can only send files to people within your institution. This stops the rest of the world using it to send people to other people who aren&rsquo;t members of your institution.<br /><br />I have added various extra features to it:<br /></span><ul class="disc"><li><span style="font:12px Verdana, serif; color:#0F0F0F;">Active Directory AD authentication (to multiple AD sites at once if needed)</span></li><li><span style="font:12px Verdana, serif; color:#0F0F0F;">Virus scanning of uploaded files, using ClamAV</span></li></ul><span style="font:12px Verdana, serif; color:#0F0F0F;"><br />I have customised it quite a bit just for our site, so if you want a copy of my patched version, along with a guide as to what changes I have made, then please </span><span style="font:12px Verdana, serif; color:#0F0F0F;"><a href="mailto:Jules@Jules.FM" rel="self">contact me</a></span><span style="font:12px Verdana, serif; color:#0F0F0F;">.<br /></span>]]></content:encoded></item><item><title>Cannot copy files from Mac to Samba</title><dc:creator>Jules@Jules.FM</dc:creator><category>Mac</category><category>Samba</category><dc:date>2010-04-19T17:07:41+01:00</dc:date><link>http://www.jules.fm/Logbook/files/cant_copy_mac_to_samba.html#unique-entry-id-66</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/cant_copy_mac_to_samba.html#unique-entry-id-66</guid><content:encoded><![CDATA[<span style="font:12px Verdana, serif; color:#0F0F0F;">There is a new bug in MacOS 10.6.3 which presents problems when you copy files and directories from a Mac to any Samba server or NAS box using Samba or providing Windows (or CIFS or SMB) shares.<br /><br />When you try to copy files and directories onto the Samba/NAS, you will get an error message about you not having permission.<br /><br />The following workaround appears to work:<br /><br />1. Copy all the files you want to put on the filestore into a new directory on your Mac, this just makes things easier. For this example we will call this directory "/Users/Jules/Documents/MyNotes".<br />2. Open the Applications folder in Finder, go into "Utilities" and run "Terminal".<br />3. Type the following commands exactly (even better: copy and paste them from here!), replacing the directory name with the location you used in step 1. Do not miss the dot at the end of 3 of the lines.<br /></span><span style="font:9px Monaco; color:#0F0F0F;">&nbsp;&nbsp; &nbsp;cd /Users/Jules/Documents/MyNotes</span><span style="font:12px Verdana, serif; color:#0F0F0F;"><br /></span><span style="font:9px Monaco; color:#0F0F0F;">&nbsp;&nbsp; &nbsp;xattr -d -r com.apple.quarantine .</span><span style="font:12px Verdana, serif; color:#0F0F0F;"><br /></span><span style="font:9px Monaco; color:#0F0F0F;">&nbsp;&nbsp; &nbsp;xattr -d -r com.apple.FinderInfo .</span><span style="font:12px Verdana, serif; color:#0F0F0F;"><br /></span><span style="font:9px Monaco; color:#0F0F0F;">&nbsp;&nbsp; &nbsp;xattr -d -r&nbsp;com.apple.metadata:kMDItemWhereFroms .</span><span style="font:12px Verdana, serif; color:#0F0F0F;"><br /></span><span style="font:9px Monaco; color:#0F0F0F;">&nbsp;&nbsp; &nbsp;exit</span><span style="font:12px Verdana, serif; color:#0F0F0F;"><br /><br />You should now be able to copy your directory MyNotes over to the Samba server.<br /></span>]]></content:encoded></item><item><title>Resending Unix Mbox Files</title><dc:creator>Jules@Jules.FM</dc:creator><category>Linux</category><category>Mail</category><dc:date>2010-03-25T15:12:46+00:00</dc:date><link>http://www.jules.fm/Logbook/files/resend_mbox.html#unique-entry-id-65</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/resend_mbox.html#unique-entry-id-65</guid><content:encoded><![CDATA[<span style="font:12px Tahoma; color:#0A0A0A;">Unfortunately someone screwed up the installation of one of our servers so that mail to local addresses was being delivered into /var/spool/mail/<username> instead of being sent onwards to our SMTP server.<br /><br />Getting the sendmail.mc correct was the easy bit, there is a simple </span><span style="font:12px Tahoma; color:#0A0A0A;"><a href="http://www.jules.fm/files/nullclient.mc" rel="self">&ldquo;null client&rdquo; sendmail.mc</a></span><span style="font:12px Tahoma; color:#0A0A0A;"> file I wrote years ago which does that nicely.<br /><br />The hard bit was taking all the Unix mbox files in /var/spool/mail and /var/mail and re-delivering them all to their intended recipients. The bit most people get wrong is the separator between messages. The separator is </span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">not</span><span style="font:12px Tahoma; color:#0A0A0A;"> a line starting with &ldquo;From &ldquo;. The separator is a blank line followed by a line starting with &ldquo;From &ldquo;. So I wrote my own script to do it which you are very welcome to </span><span style="font:12px Tahoma; color:#0A0A0A;"><a href="http://www.jules.fm/files/resend.mbox.zip" rel="self">download</a></span><span style="font:12px Tahoma; color:#0A0A0A;"> and use.</span>]]></content:encoded></item><item><title>Windows 7 God Modes</title><dc:creator>Jules@Jules.FM</dc:creator><category>Windows 7</category><dc:date>2010-01-29T11:08:42+00:00</dc:date><link>http://www.jules.fm/Logbook/files/win7_godmodes.html#unique-entry-id-64</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/win7_godmodes.html#unique-entry-id-64</guid><content:encoded><![CDATA[<span style="font:12px Tahoma; color:#0A0A0A;">In Windows 7, there are a whole bunch of shortcuts you can build to really useful places such as a Monster Control Panel, and other useful links that will save you a lot of searching.<br />To get access to these &ldquo;God Modes&rdquo;, all you need to do is open a &ldquo;cmd&rdquo; Command Prompt window, and paste in this bunch of commands:<br /><nobr><br /></span><span style="font:12px Tahoma; color:#0A0A0A;">c:<br />cd \<br />mkdir GodModes<br />cd GodModes<br />mkdir "Monster Control Panel.{ED7BA470-8E54-465E-825C-99712043E01C}"<br />mkdir "Enter a default location.{00C6D95F-329C-409a-81D7-C46C66EA7F33}"<br />mkdir "Use biometric devices with Windows.{0142e4d0-fb7a-11dc-ba4a-000ffe7ab428}"<br />mkdir "Select a power plan.{025A5937-A6BE-4686-A844-36FE4BEC8B6D}"<br />mkdir "Select which icons and notifications appear on taskbar.{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}"<br />mkdir "Store credentials for automatic logon.{1206F5F1-0569-412C-8FEC-3204630DFB70}"<br />mkdir "Install a program from the network.{15eae92e-f17a-4431-9f28-805e482dafd4}"<br />mkdir "Choose the programs that Windows uses by default.{17cd9488-1228-4b2f-88ce-4298e93e0966}"<br />mkdir "Assembly Cache Viewer.{1D2680C9-0E2A-469d-B787-065558BC7D43}"<br />mkdir "Manage wireless networks.{1FA9085F-25A2-489B-85D4-86326EEDCD87}"<br />mkdir "Network.{208D2C60-3AEA-1069-A2D7-08002B30309D}"<br />mkdir "Computer.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"<br />mkdir "Devices and Printers.{2227A280-3AEA-1069-A2DE-08002B30309D}"<br />mkdir "RemoteApp and Desktop Connections.{241D7C96-F8BF-4F85-B01F-E2B043341A4B}"<br />mkdir "Windows Firewall.{4026492F-2F69-46B8-B9BF-5654FC07E423}"<br />mkdir "Windows Explorer.{62D8ED13-C9D0-4CE8-A914-47DD628FB1B0}"<br />mkdir "System.{78F3955E-3B90-4184-BD14-5397C15F1EFC}&rdquo;<br /></nobr><br /><br />Then just open &ldquo;Computer&rdquo; from the Start Menu, double click on C: then on &ldquo;GodModes&rdquo; and you will see the list. Double click on any one of them to see what it can do for you!</span>]]></content:encoded></item><item><title>VMware vSphere Client in Parallels Desktop</title><dc:creator>Jules@Jules.FM</dc:creator><category>Mac</category><category>VMware</category><category>vSphere</category><dc:date>2009-11-15T20:20:18+00:00</dc:date><link>http://www.jules.fm/Logbook/files/vsphere_parallels_ctrl-alt.html#unique-entry-id-63</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/vsphere_parallels_ctrl-alt.html#unique-entry-id-63</guid><content:encoded><![CDATA[<span style="font:12px Tahoma; color:#0A0A0A;">This is a quick solution to a problem I suffered, and thought it was a bug in Parallels Desktop for Mac. You run the vSphere Client application, open a Console to a virtual machine, and after that all your Windows keystrokes and mouse clicks go into the Console and not into any other Windows applications at all, not even the taskbar or Start menu.<br /><br />The key is that the vSphere Client uses the same "Ctrl Alt" key combination to get out of the console, as does Parallels to get out of Windows programs.<br /><br />When running in Coherence or Crystal mode, you never really need this key combination as it works automatically anyway when you click in any other Mac application.<br /><br />The solution is to change the Parallels "Release Input" key combination. Get out of Crystal mode, then go to the Parallels / Preferences window. Select the "Keyboard & Mouse" pane of the dialog box, and work through each Profile in turn. In each profile, set the key combination for "Release Input" to "Cmd-Ctrl-Space" (that's what I used).<br /><br />Then quit and re-run Parallels and you will find the problem has gone away. <br /></span>]]></content:encoded></item><item><title>Fast VMware VCB Backups</title><dc:creator>Jules@Jules.FM</dc:creator><category>VMware</category><category>vSphere</category><dc:date>2009-11-29T11:42:33+00:00</dc:date><link>http://www.jules.fm/Logbook/files/vmware_vcb_backup.html#unique-entry-id-62</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/vmware_vcb_backup.html#unique-entry-id-62</guid><content:encoded><![CDATA[<span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Update</span><span style="font:12px Tahoma; color:#0A0A0A;"> 11th Mar 2010 : Less noisy output and retries backup request if it failed</span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; "><br />Update</span><span style="font:12px Tahoma; color:#0A0A0A;"> 29th Nov 2009 : Major improvement to VM selection rules</span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; "><br />Update</span><span style="font:12px Tahoma; color:#0A0A0A;"> 18th Nov 2009 : Bug fix release.</span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; "><br />Update</span><span style="font:12px Tahoma; color:#0A0A0A;"> 15th Nov 2009 : Now handles zombie processes correctly so will terminate correctly when called from .cmd batch scripts.</span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; "><br />Update</span><span style="font:12px Tahoma; color:#0A0A0A;"> 10th Nov 2009 : Now deletes old backup snapshots left behind by failed previous backups.<br /><br />This is a new program which uses the VMware "Virtual Consolidated Backup" (or VCB) system to work, and will run on any Windows system. It is highly parallel, very fast and will easily saturate a 1Gbps network link. I have had performance of over 100Mbytes/second across our network, with a sustained rate of over 70Mbytes/second for several hours.<br /><br />It is far faster than my previous JKFBackup.sh script mentioned in a previous article. It also does not require any ssh or other "unsupported" access to the VMware host server.<br /><br />It takes a command-line parameter which is the full pathname of the configuration file that it uses. This can be surrounded in double-quotes (") if there are spaces in the path or filename.<br /><br /></span><h2>Configuration</h2><span style="font:12px Tahoma; color:#0A0A0A;"><br />The configuration file is a simple text file:<br /></span><ul class="disc"><li><span style="font:12px Tahoma; color:#0A0A0A;">All leading and trailing spaces are ignored</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">All blank lines are ignored</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">Comments start with a hash character (pound sign in the USA) like this "</span><span style="font:12px Courier, mono; color:#0A0A0A;">#</span><span style="font:12px Tahoma; color:#0A0A0A;">" and continue to the end of the line</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">Each line must start with one of the following keywords, followed by its single parameter:</span></li></ul><ul class="disc"><li><ul class="(null)"><li><span style="font:12px Courier, mono; color:#0A0A0A;">DIRECTORY</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; color:#0A0A0A;"> : the full path, including drive letter, under which all the backups will be stored</span></li></ul></li><li><ul class="(null)"><li><span style="font:12px Courier, mono; color:#0A0A0A;">HOST</span><span style="font:12px Tahoma; color:#0A0A0A;"> : the name of the VMware host server running the VMs to be backed up</span></li></ul></li><li><ul class="(null)"><li><span style="font:12px Courier, mono; color:#0A0A0A;">USER</span><span style="font:12px Tahoma; color:#0A0A0A;"> : the username to access the VMware host server (usually </span><span style="font:12px Courier, mono; color:#0A0A0A;">root</span><span style="font:12px Tahoma; color:#0A0A0A;">)</span></li></ul></li><li><ul class="(null)"><li><span style="font:12px Courier, mono; color:#0A0A0A;">PASSWORD</span><span style="font:12px Tahoma; color:#0A0A0A;"> : the password for the stated </span><span style="font:12px Courier, mono; color:#0A0A0A;">USER</span></li></ul></li><li><ul class="(null)"><li><span style="font:12px Courier, mono; color:#0A0A0A;">INCLUDE</span><span style="font:12px Tahoma; color:#0A0A0A;"> : backup this named VM. Use the &ldquo;</span><span style="font:12px Courier, mono; color:#0A0A0A;">*</span><span style="font:12px Tahoma; color:#0A0A0A;">&rdquo; character as a wildcard to mean &ldquo;0 or more characters&rdquo; to specify several VMs</span></li></ul></li><li><ul class="(null)"><li><span style="font:12px Courier, mono; color:#0A0A0A;">EXCLUDE</span><span style="font:12px Tahoma; color:#0A0A0A;"> : do not backup this named VM. Use the &ldquo;</span><span style="font:12px Courier, mono; color:#0A0A0A;">*</span><span style="font:12px Tahoma; color:#0A0A0A;">&rdquo; character as a wildcard to mean &ldquo;0 or more characters&rdquo; to specify several VMs</span></li></ul></li></ul><span style="font:12px Tahoma; color:#0A0A0A;"><br />The </span><span style="font:12px Courier, mono; color:#0A0A0A;">INCLUDE</span><span style="font:12px Tahoma; color:#0A0A0A;"> and </span><span style="font:12px Courier, mono; color:#0A0A0A;">EXCLUDE</span><span style="font:12px Tahoma; color:#0A0A0A;"> lines work like rules in a firewall. A rule can match several VMs by using &ldquo;</span><span style="font:12px Courier, mono; color:#0A0A0A;">*</span><span style="font:12px Tahoma; color:#0A0A0A;">&rdquo; wildcard characters in them. As a simple example, the line &ldquo;</span><span style="font:12px Courier, mono; color:#0A0A0A;">INCLUDE kanga-*</span><span style="font:12px Tahoma; color:#0A0A0A;">&rdquo; would tell the program to backup all VMs whose names start with &ldquo;</span><span style="font:12px Courier, mono; color:#0A0A0A;">kanga-</span><span style="font:12px Tahoma; color:#0A0A0A;">&rdquo;. The first rule that matches the name of the VM says whether it will be backed up or not. I strongly advise you put either &ldquo;</span><span style="font:12px Courier, mono; color:#0A0A0A;">INCLUDE *</span><span style="font:12px Tahoma; color:#0A0A0A;">&rdquo; or &ldquo;</span><span style="font:12px Courier, mono; color:#0A0A0A;">EXCLUDE *</span><span style="font:12px Tahoma; color:#0A0A0A;">&rdquo; as the last rule in the file, to specify the default action for any VMs that do not match any other rules, such as VMs that have been added since you updated the configuration file.<br /><br />Currently the script uses a different directory for each day of the week, so you have the last week's worth of backups on the disk. If you want to change this, learn a little Perl and you will find the code is very simple and straightforward.<br /><br />As an example, the backups for Thursday for the VM named "Dummy" will be stored in </span><span style="font:12px Courier, mono; color:#0A0A0A;">DIRECTORY\Thu\Dummy</span><span style="font:12px Tahoma; color:#0A0A0A;">.<br /><br />If you want to backup several VMware host servers, then have a separate configuration file for each server. This script is currently aimed at relatively small vSpheres where you only have a few VMware host servers. If you have hundreds of VMware host servers, then please feel free to rip the script apart and use any bits of it you want. If you are prepared to let me include your improvements in a future release, then please </span><span style="font:12px Tahoma; color:#0A0A0A;"><a href="mailto:Jules@Jules.FM" rel="self">contact me!</a></span><span style="font:12px Tahoma; color:#0A0A0A;"><br /><br />To backup VMs as fast as possible, the script splits the list of VMs into 3 and does 3 backups simultaneously in parallel.<br /><br /></span><h2>Data Recovery</h2><span style="font:12px Tahoma; color:#0A0A0A;"><br />Using VCB, data recovery is very simple. Just look in the directory named after the VM you want to restore, and use the VMware Standalone Converter to turn the files in there back into a VM on your VMware server. Easy as that!<br /><br /></span><h2>Download</h2><span style="font:12px Tahoma; color:#0A0A0A;"><br />You can </span><span style="font:12px Tahoma; color:#0A0A0A;"><a href="http://www.jules.fm/files/VMware/VCBBackup.zip" rel="self">download version 1.10 of VCBBackup.pl here</a></span><span style="font:12px Tahoma; color:#0A0A0A;">.<br />I suggest you right-click on that link and choose "Save as..." to download the file.<br /><br />It is written in Perl so you will need to install the free Perl distribution from </span><span style="font:12px Tahoma; color:#0A0A0A;"><a href="http://www.activestate.com/" rel="self">www.activestate.com</a></span><span style="font:12px Tahoma; color:#0A0A0A;">. You will also need to download and install the "VMware Consolidated Backup" distribution from VMware, which you should be able to access if you have purchased VMware products.<br /><br /></span><h2>My Setup</h2><span style="font:12px Tahoma; color:#0A0A0A;"><br />I do my backups onto a little Dell 860 1U rackmount server running Windows Server 2008R2 x64. It backs up to cheap external disk connected via a Firewire-800 interface. This is quite sufficient and can maintain over 700 Mbits/second backup speed.<br /><br />Every couple of nights I swap out the hard disk and take it off-site. That provides us with backups of the last fortnight with some off-site storage.<br /><br /></span><h2>Feedback</h2><span style="font:12px Tahoma; color:#0A0A0A;"><br />I always welcome constructive feedback, and suggestions and requests for new features. If you need any help, just </span><span style="font:12px Tahoma; color:#0A0A0A;"><a href="mailto:Jules@Jules.FM" rel="self">contact me!</a></span>]]></content:encoded></item><item><title>Add cron Job to VMware ESX/ESXi</title><dc:creator>Jules@Jules.FM</dc:creator><category>VMware</category><dc:date>2009-11-01T14:49:48+00:00</dc:date><link>http://www.jules.fm/Logbook/files/add_cron_job_vmware.html#unique-entry-id-61</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/add_cron_job_vmware.html#unique-entry-id-61</guid><content:encoded><![CDATA[<span style="font:12px Tahoma; color:#0A0A0A;">This explains how to add a cron job to VMware in such a way that it will still be there after reboots.<br /><br />Having </span><span style="font:12px Tahoma; color:#0A0A0A;"><a href="http://www.jules.fm/Logbook/files/enable_ssh_vmware.html" rel="self" title="What I get up to at work&#34;&#62;Logbook:Enable SSH access in VMware">enabled ssh access</a></span><span style="font:12px Tahoma; color:#0A0A0A;"> to your ESX/ESXi server, ssh in as root.<br /><br />Firstly, add the cron job to the root crontab:<br /></span><ol class="arabic-numbers"><li><span style="font:12px Tahoma; color:#0A0A0A;">Edit </span><span style="font:12px Courier, mono; color:#0A0A0A;">/var/spool/cron/crontabs/root</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">Add the line (all on one line)</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; color:#0A0A0A;"><br /></span><span style="font:12px Courier, mono; color:#0A0A0A;">5 0 * * * /full/path/to/script arguments/with/full/path > /full/path/to/logfile 2>&1</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">Run the command "</span><span style="font:12px Courier, mono; color:#0A0A0A;">cat /var/run/crond.pid</span><span style="font:12px Tahoma; color:#0A0A0A;">"</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; color:#0A0A0A;"><br /></span><span style="font:12px Tahoma; color:#0A0A0A;">That will print the process number of the running crond, such as </span><span style="font:12px Courier, mono; color:#0A0A0A;">12345</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">Run the command "</span><span style="font:12px Courier, mono; color:#0A0A0A;">kill 12345</span><span style="font:12px Tahoma; color:#0A0A0A;">"</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; color:#0A0A0A;"><br /></span><span style="font:12px Tahoma; color:#0A0A0A;">where "</span><span style="font:12px Courier, mono; color:#0A0A0A;">12345</span><span style="font:12px Tahoma; color:#0A0A0A;">" should be replaced with the number output by the previous command</span></li></ol><span style="font:12px Tahoma; color:#0A0A0A;"><br />For details of the meaning of "5 0 * * *" (5 minutes past midnight every day) read the man page for crontab(5) on any Unix/Linux server, or else </span><span style="font:12px Tahoma; color:#0A0A0A;"><a href="http://www.manpagez.com/man/5/crontab/" rel="self">on the web</a></span><span style="font:12px Tahoma; color:#0A0A0A;">.<br /><br />Now, add a command to </span><span style="font:12px Courier, mono; color:#0A0A0A;">/etc/rc.local</span><span style="font:12px Tahoma; color:#0A0A0A;"> to re-generate the cron job when ESX/ESXi reboots<br /></span><ol class="arabic-numbers"><li><span style="font:12px Tahoma; color:#0A0A0A;">Edit </span><span style="font:12px Courier, mono; color:#0A0A0A;">/etc/rc.local</span><span style="font:12px Tahoma; color:#0A0A0A;">, using a command such as "</span><span style="font:12px Courier, mono; color:#0A0A0A;">vi /etc/rc.local</span><span style="font:12px Tahoma; color:#0A0A0A;">".</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">At the end of the file, add 3 lines (using "</span><span style="font:12px Courier, mono; color:#0A0A0A;">G</span><span style="font:12px Tahoma; color:#0A0A0A;">" then "</span><span style="font:12px Courier, mono; color:#0A0A0A;">O</span><span style="font:12px Tahoma; color:#0A0A0A;">" in vi). The first kills crond, the second adds the new cron job to the root crontab file, ad the third restarts crond:</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; color:#0A0A0A;"><br /></span><span style="font:12px Courier, mono; color:#0A0A0A;">/bin/kill $(cat /var/run/crond.pid)</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; color:#0A0A0A;"><br /></span><span style="font:12px Courier, mono; color:#0A0A0A;">/bin/echo '5 0 * * * /full/path/to/script arguments/with/full/path > /full/path/to/logfile 2>&1' >> /var/spool/cron/crontabs/root<br />/bin/busybox crond</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">Save and exit the editor (Press the "</span><span style="font:12px Courier, mono; color:#0A0A0A;">Esc</span><span style="font:12px Tahoma; color:#0A0A0A;">" key then "</span><span style="font:12px Courier, mono; color:#0A0A0A;">:wq</span><span style="font:12px Tahoma; color:#0A0A0A;">" then press "</span><span style="font:12px Courier, mono; color:#0A0A0A;">Return</span><span style="font:12px Tahoma; color:#0A0A0A;">" in vi)</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">Run the command "</span><span style="font:12px Courier, mono; color:#0A0A0A;">auto-backup.sh</span><span style="font:12px Tahoma; color:#0A0A0A;">" so that the change to </span><span style="font:12px Courier, mono; color:#0A0A0A;">/etc/rc.local</span><span style="font:12px Tahoma; color:#0A0A0A;"> survives a reboot.</span></li></ol><span style="font:12px Tahoma; color:#0A0A0A;"><br />Every time you change the cron job, remember to update </span><span style="font:12px Courier, mono; color:#0A0A0A;">/etc/rc.local</span><span style="font:12px Tahoma; color:#0A0A0A;"> as well and run the "</span><span style="font:12px Courier, mono; color:#0A0A0A;">auto-backup.sh</span><span style="font:12px Tahoma; color:#0A0A0A;">" command to backup the new </span><span style="font:12px Courier, mono; color:#0A0A0A;">/etc/rc.local</span><span style="font:12px Tahoma; color:#0A0A0A;"> file.<br /></span>]]></content:encoded></item><item><title>Enable SSH access in VMware</title><dc:creator>Jules@Jules.FM</dc:creator><category>VMware</category><dc:date>2009-10-31T17:56:11+00:00</dc:date><link>http://www.jules.fm/Logbook/files/enable_ssh_vmware.html#unique-entry-id-60</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/enable_ssh_vmware.html#unique-entry-id-60</guid><content:encoded><![CDATA[<span style="font:12px Tahoma; color:#0A0A0A;">This simply describes how to enable ssh access to a VMware ESX or ESXi server.<br /></span><ol class="arabic-numbers"><li><span style="font:12px Tahoma; color:#0A0A0A;">From the ESX/ESXi console press Alt-F1.</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">Type in the word </span><span style="font:12px Courier, mono; color:#0A0A0A;">unsupported</span><span style="font:12px Tahoma; color:#0A0A0A;"> and press return (nothing will appear as you type).</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">Type in your root password.</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">Edit the /etc/inetd.conf file by typing the command "</span><span style="font:12px Courier, mono; color:#0A0A0A;">vi /etc/inetd.conf</span><span style="font:12px Tahoma; color:#0A0A0A;">".</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">Scroll through the file (</span><span style="font:12px Courier, mono; color:#0A0A0A;">j</span><span style="font:12px Tahoma; color:#0A0A0A;">=down, </span><span style="font:12px Courier, mono; color:#0A0A0A;">k</span><span style="font:12px Tahoma; color:#0A0A0A;">=up) until you find the line that starts "</span><span style="font:12px Courier, mono; color:#0A0A0A;">#ssh</span><span style="font:12px Tahoma; color:#0A0A0A;">" and delete the "</span><span style="font:12px Courier, mono; color:#0A0A0A;">#</span><span style="font:12px Tahoma; color:#0A0A0A;">" symbol by pressing "</span><span style="font:12px Courier, mono; color:#0A0A0A;">x</span><span style="font:12px Tahoma; color:#0A0A0A;">" and save the file by typing "</span><span style="font:12px Courier, mono; color:#0A0A0A;">:wq</span><span style="font:12px Tahoma; color:#0A0A0A;">". If you make a mistake then type "</span><span style="font:12px Courier, mono; color:#0A0A0A;">:q!</span><span style="font:12px Tahoma; color:#0A0A0A;">" and press return, and start editing it again.</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">Type the command "exit".</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">Press Alt-F2.</span></li><li><span style="font:12px Tahoma; color:#0A0A0A;">Reboot the ESX/ESXi server.</span></li></ol><span style="font:12px Tahoma; color:#0A0A0A;"><br />Now you will be able to "ssh root@&lt;your-ESX/ESXi-server-name&gt;" from a Unix/Linux prompt, or use "PuTTY" on Windows to connect to it as the user "root" with your root password.</span>]]></content:encoded></item><item><title>VMware Backups</title><dc:creator>Jules@Jules.FM</dc:creator><category>VMware</category><dc:date>2009-10-31T17:39:18+00:00</dc:date><link>http://www.jules.fm/Logbook/files/vmware_backup.html#unique-entry-id-58</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/vmware_backup.html#unique-entry-id-58</guid><content:encoded><![CDATA[<span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Update:</span><span style="font:12px Tahoma; color:#0A0A0A;"> I have now written another backup script which is based on VMware Consolidated Backup (VCB) which you can download from VMware for Windows systems. It is about 10 times faster at backing up than JKFBackup.sh and will totally saturate a 1Gbps ethernet link. I can get networked backup speeds of 100Mbytes/second with it!<br /><br />I have written my own script to backup VMware volumes. On a vSphere, it can mount all the datastores available on a node simply by running on that node. It backups to an NFS datastore which it will optionally mount and dismount for you. It will also optionally backup just VMs that are powered on, VMs that are powered off and templates, and compress the virtual hard disk files.<br /><br />As far as I am aware it probably does not yet handle a VM that is spread across several datastores, it assumes the files are kept together in one directory for each VM.<br /><br />It was written to suit our environment, and we don't spread a VM across several datastores. :-)<br /><br />The usage is<br /></span><span style="font:12px Courier, mono; color:#0A0A0A;">JKFBackup.sh [ --off ] [ --on ] [ --compress ]</span><span style="font:12px Tahoma; color:#0A0A0A;"><br />or<br /></span><span style="font:12px Courier, mono; color:#0A0A0A;">JKFBackup.sh --help</span><span style="font:12px Tahoma; color:#0A0A0A;"><br />to get the command-line usage.<br /><br /></span><span style="font:12px Courier, mono; color:#0A0A0A;">--off</span><span style="font:12px Tahoma; color:#0A0A0A;"> tells it to backup templates and VMs that are powered off.<br /></span><span style="font:12px Courier, mono; color:#0A0A0A;">--on</span><span style="font:12px Tahoma; color:#0A0A0A;"> tells it to backup VMs that are powered on.<br /></span><span style="font:12px Courier, mono; color:#0A0A0A;">--compress</span><span style="font:12px Tahoma; color:#0A0A0A;"> tells it to compress the virtual hard disk files of the VMs and templates that is backing up.<br />The 3 command line options may be specified in any order.<br /><br />There are a few things you will need to set in your script to fit your local environment, these are documented at the top of the script so you can quickly get started. These defined the NFS datastore where you want all the backups to go, what backup rota you want, and what datastores to backup. It's all pretty obvious.<br /><br />To get this onto your VMware server you will need to </span><span style="font:12px Tahoma; color:#0A0A0A;"><a href="http://www.jules.fm/Logbook/files/enable_ssh_vmware.html" rel="self" title="What I get up to at work&#34;&#62;Logbook:Enable SSH access in VMware">enable ssh logins</a></span><span style="font:12px Tahoma; color:#0A0A0A;">, and if you want it to run regularly then you will need to </span><span style="font:12px Tahoma; color:#0A0A0A;"><a href="http://www.jules.fm/Logbook/files/add_cron_job_vmware.html" rel="self" title="What I get up to at work&#34;&#62;Logbook:Add cron Job to VMware ESX/ESXi">add it to your root crontab</a></span><span style="font:12px Tahoma; color:#0A0A0A;">.<br /><br />You can download version </span><span style="font:12px Tahoma; color:#0A0A0A;"><a href="http://www.jules.fm/files/VMware/JKFBackup.sh" rel="self">1.00 of the script</a></span><span style="font:12px Tahoma; color:#0A0A0A;">. Note that you should not try to edit it on Microsoft Windows systems, certainly not using Notepad, as it is a Unix text file and the line-ending characters are different so Windows will tend to screw the file completely. Learn the basics of using the "vi" text editor and edit it on your VMware server. You will need to edit it a little bit to set it appropriately for your VMware organisation.<br /><br />Install the script within </span><span style="font:12px Courier, mono; color:#0A0A0A;">/vmfs/volumes/*</span><span style="font:12px Tahoma; color:#0A0A0A;">. In other words, it must be stored on one of your VMware datastores. Otherwise it will be automatically deleted every time your ESX/ESXi server boots as part of its house-keeping. If you store it in one of your datastores it will be left alone when the server boots up.<br /><br />Don't forget to back up your backup scripts!<br /><br />When you come to need to recover from a backup, copy the files back onto your VMware server using the "Browse datastore" functionality, then uncompress the </span><span style="font:12px Courier, mono; color:#0A0A0A;">.vmdk.gz</span><span style="font:12px Tahoma; color:#0A0A0A;"> files if necessary using the "</span><span style="font:12px Courier, mono; color:#0A0A0A;">gunzip</span><span style="font:12px Tahoma; color:#0A0A0A;">" command while logged into your ESX/ESXi server using </span><span style="font:12px Courier, mono; color:#0A0A0A;">ssh</span><span style="font:12px Tahoma; color:#0A0A0A;"> or </span><span style="font:12px Courier, mono; color:#0A0A0A;">PuTTY</span><span style="font:12px Tahoma; color:#0A0A0A;">, then register the </span><span style="font:12px Courier, mono; color:#0A0A0A;">.vmx</span><span style="font:12px Tahoma; color:#0A0A0A;"> files by right-clicking on them in the "Browse datastore" function in the vSphere client. That will re-register your restored virtual machines.</span>]]></content:encoded></item><item><title>ScamNailer.ndb</title><dc:creator>Jules@Jules.FM</dc:creator><category>Mail</category><dc:date>2009-10-18T20:25:51+01:00</dc:date><link>http://www.jules.fm/Logbook/files/scamnailer_ndb.html#unique-entry-id-57</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/scamnailer_ndb.html#unique-entry-id-57</guid><content:encoded><![CDATA[<span style="font:12px Tahoma; color:#0A0A0A;">I have made the ScamNailer database of phishing email addresses available as a ClamAV ".ndb" signature database file. All you need to do is download the file from </span><span style="font:12px Tahoma; color:#0A0A0A;"><a href="http://www.mailscanner.eu/scamnailer.ndb" rel="self">http://www.mailscanner.eu/scamnailer.db</a></span><span style="font:12px Tahoma; color:#0A0A0A;"> once every hour and put it into your ClamAV "Database Directory" which is defined in your clamd.conf and/or freshclam.conf file. It's usually somewhere like /var/clamav. Then tell your clamd to reload its database (sending it a "kill -HUP" should do the trick) so it knows something has changed.<br /><br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Note:</span><span style="font:12px Tahoma; color:#0A0A0A;"> Please do not download this file more than once every hour, it does not change that frequently and you will overload my poor little web server!</span>]]></content:encoded></item><item><title>VMware Converter - Converting an Existing Windows System</title><dc:creator>Jules@Jules.FM</dc:creator><category>VMware</category><category>vSphere</category><category>Linux</category><dc:date>2009-10-18T20:23:50+01:00</dc:date><link>http://www.jules.fm/Logbook/files/vmware_converter_windows.html#unique-entry-id-56</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/vmware_converter_windows.html#unique-entry-id-56</guid><content:encoded><![CDATA[<span style="font:12px Arial, Verdana, Helvetica, sans-serif; color:#0A0A0A;">The Converter is a client/server program, where the converter server runs on ecsvm-admin.ecs and the client can run anywhere, such as win-admin.</span><span style="font:12px Tahoma; color:#0A0A0A;"><br /><br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; "><u>Firewall Rules</u></span><span style="font:12px Tahoma; color:#0A0A0A;"><br />If the source physical Windows system is in the DMZ, you will need to add a couple of rules to the firewall "Short-Term Rules" section allowing all traffic from ECS-internal to the source host and from the source host to ECS-internal. You should remove these rules again once the conversion has completed.<br /><br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; "><u>Starting the Conversion</u></span><span style="font:12px Tahoma; color:#0A0A0A;"><br />Start the VMWare Converter Standalone Client program.<br />IP Address/Name = ecsvm-admin:7443<br />Username = administrator (or your own sys* username if you are registered on the vSphere with an account).<br />Password = Windows-infrastructure password<br /><br />Click the "Convert Machine" button in the toolbar.<br />Source type = Powered-on machine<br />Give remote machine full hostname.<br />Give username and password of a user in the "Administrators" group on the source Windows system, such as the "ECS2000\administrator" account and domain password..<br />OS Family = Windows.<br />Next.<br /><br />It should connect to the source physical system.<br />If it fails, then give it the IP address of the source physical system instead of the name of it.<br />If it still fails, then Remote Desktop to the source physical system, download the converter (from browsing the datastores starting at http://ecsvm-admin.ecs.soton.ac.uk/) and install the converter agent (not the client/server setup) onto the source system, then run it again from there.<br />When it asks for the name of the source system to convert, give it the IP address of the source system (which is the same system you are now running the Converter on).<br /><br />Tell it to automatically uninstall the files when the import succeeds.<br />It will then deploy the agent, which takes a few seconds.<br /><br />VMware Infrastructure server details:<br />Server = ecsvm-admin<br />Username = administrator (or your sys* username if you have an account on vSphere).<br />Password = Windows-infrastructure password (or yours).<br />Next.<br /><br />Select host to run the VM on = ecsvm-admin1.ecs.soton.ac.uk.<br />Virtual machine name = short hostname (eg. major-backup).<br />Datastore = infrastore1-Vol2 (an infrastore volume with plenty of free space).<br />Virtual machine version = Version 7.<br />Next.<br /><br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; "><u>Options</u></span><span style="font:12px Tahoma; color:#0A0A0A;"><br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Destination Attributes</span><span style="font:12px Tahoma; color:#0A0A0A;">: Name = short hostname, Folder = ecs<br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Data to copy</span><span style="font:12px Tahoma; color:#0A0A0A;">: Click "Advanced...", then "Target Layout...".<br />Set all large, non-swap filesystems to "Thin provisioning" (this is "Dynamic disks" in Microsoft speak, where only the disk space in use is actually allocated on disk, used disk space expands as necessary to hold the data, up to the maximum set by the size of the filesystem).<br />Set the Size of the normal large filesystems (eg. "C:") to a reasonable number, no point in making them huge, most will fit in 60Gbytes.<br />Switch to the "Source Volumes" tab to see how much space is actually in use at the moment.<br />Normally set C: to thin provisioning, 60GBytes or more.<br />It is important not to waste disk space on Flat-provisioned disks that are not going to use all their space. Disk is relatively expensive.<br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Devices</span><span style="font:12px Tahoma; color:#0A0A0A;">: Numer of processors = 1.<br />Disk controller = SCSI LSI Logic or SCSI Buslogic.<br />Memory = usually the default will be fine.<br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Networks</span><span style="font:12px Tahoma; color:#0A0A0A;">: Network adapters to connect = 1<br />Set the network for the network adapter to be the same Virtual Machine Network VLAN as the physical machine you are converting.<br />The new virtual machine will take over the IP address of the physical source machine.<br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Services</span><span style="font:12px Tahoma; color:#0A0A0A;">: Source Services: switch off services that should not be left running when the VM is created (such as SQL Server or WWW Publishing Service, and Hyper-V services if moving from Hyper-V to VMware). Destination Services: set all Hyper-V services to "Disabled".<br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Advanced Options</span><span style="font:12px Tahoma; color:#0A0A0A;">: Power on target machine = yes<br />Power off source machine = yes<br />Install VMware Tools on the imported virtual machine = yes<br />Configure guest preferences for the virtual machine = no<br />Remove System Restore checkpoints on destination = yes<br />Reconfigure destination virtual machine = yes<br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; "><br /></span><span style="font:12px Tahoma; color:#0A0A0A;">Next.<br /><br />It should now just show you the final option settings and then start the process of converting the host. Wait for the whole process to finish before touching either the source (physical) or destination (virtual) machines.<br /><br />How long it takes depends on the quantity of data that has to be moved. You can expect about 20 to 25 MBytes/second conversion speed. A machine with about 7GB of used disk takes about 25 minutes to convert.<br /><br />As the process is run by the Converter Server (running on ecsvm-admin), it doesn't matter if you quit the Windows app used to watch the process, you can track the progress of the conversion from the Converter Windows app running on any PC.<br /><br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">After the Conversion has Finished</span><span style="font:12px Tahoma; color:#0A0A0A;"><br />Open a console on the new VM.<br />In the "VM/Guest" menu, install the VM tools. This will insert a CD into the virtual CD drive, what happens then is dependent on the Windows Autoplay preferences in the virtual machine.<br />This will force a restart of the virtual machine.<br /><br />Shutdown the virtual machine.<br />Once the VM has stopped, edit the settings of the VM and choose the middle "Options" tab. In the "VMware Tools" settings, right at the bottom right of the dialog there is an option to "Synchronize guest time with host". Tick this box.<br />Okay that, then power on the VM.<br />It should successfully boot.<br /><br />The VM should now be fully running happily and serving its services to the users.<br /><br />Now just remove the two temporary firewall rules you added at the start of this process.</span>]]></content:encoded></item><item><title>VMware Converter - Converting an Existing Linux System</title><dc:creator>Jules@Jules.FM</dc:creator><category>VMware</category><category>vSphere</category><category>Linux</category><dc:date>2009-10-18T20:22:06+01:00</dc:date><link>http://www.jules.fm/Logbook/files/vmware_converter_linux.html#unique-entry-id-55</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/vmware_converter_linux.html#unique-entry-id-55</guid><content:encoded><![CDATA[<span style="font:12px Arial, Verdana, Helvetica, sans-serif; color:#0A0A0A;">The Converter is a client/server program, where the converter server runs on ecsvm-admin.ecs and the client can run anywhere, such as win-admin.</span><span style="font:12px Tahoma; color:#0A0A0A;"><br /><br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; "><u>Firewall Rules</u></span><span style="font:12px Tahoma; color:#0A0A0A;"><br />If the source physical Linux system is in the DMZ, you will need to add a couple of rules to the firewall "Short-Term Rules" section allowing all traffic from ECS-internal to the source host and from the source host to ECS-internal. You should remove these rules again once the conversion has completed.<br /><br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; "><u>Before You Start</u></span><span style="font:12px Tahoma; color:#0A0A0A;"><br />On the final virtual machine, you will need to install the VMware tools and set the VM settings to synchronise the time on the VM with that of the ecsvm-admin server. So you won't want ntpd to be running. Also, you are going to need to reboot the VM at least once after you have converted it, so stop and disable the primary user services (e.g. httpd, mysqld) that are running on the server. You can start up the user services again as the last step after getting the VM Linux system running. So I would start with<br />	service ntpd stop<br />	service httpd stop<br />	service mysqld stop<br />	chkconfig ntpd off<br />	chkconfig httpd off<br />	chkconfig mysqld off<br />Also, if the physical source machine is actually a Windows 2008 Hyper-V VM, then you will want to do the same to the "inputvsc" service, and copy the seth0 device settings to eth0 (remembering to change the device name in /etc/sysconfig/network-scripts/ifcfg-eth0 after copying the ifcfg-seth0 file onto it) as VMware will use the eth0 device and not the seth0 device.<br /><br />Once running in VMware, the kernel will need to be able to "probe" the disk controllers in order to be able to find the controller types. So in /boot/grub/grub.conf, edit the kernel command line arguments and remove any settings that set "hda=noprobe" or similar. You don't need to reboot after this change, this will be applied once the VM conversion has finished and VMware starts the new VM.<br /><br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; "><u>Starting the Conversion</u></span><span style="font:12px Tahoma; color:#0A0A0A;"><br />Start the VMWare Converter Standalone Client program.<br />IP Address/Name = ecsvm-admin:7443<br />Username = administrator (or your own sys* username if you are registered on the vSphere with an account).<br />Password = Windows-infrastructure password<br /><br />Click the "Convert Machine" button in the toolbar.<br />Source type = Powered-on machine<br />Give remote machine full hostname.<br />Give root username and password.<br />Next.<br /><br />VMware Infrastructure server details:<br />Server = ecsvm-admin<br />Username = administrator (or your sys* username if you have an account on vSphere).<br />Password = Windows-infrastructure password (or yours).<br />Next.<br /><br />Select host to run the VM on = ecsvm-admin1.ecs.soton.ac.uk.<br />Virtual machine name = short hostname (eg. gander).<br />Datastore = infrastore1-Vol2 (an infrastore volume with plenty of free space).<br />Virtual machine version = Version 7.<br />Next.<br /><br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; "><u>Options</u></span><span style="font:12px Tahoma; color:#0A0A0A;"><br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Destination Attributes</span><span style="font:12px Tahoma; color:#0A0A0A;">: Name = short hostname, Folder = ecs<br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Data to copy</span><span style="font:12px Tahoma; color:#0A0A0A;">: Click "Advanced...", then "Target Layout...".<br />Set all large, non-swap filesystems to "Thin provisioning" (this is "Dynamic disks" in Microsoft speak, where only the disk space in use is actually allocated on disk, used disk space expands as necessary to hold the data, up to the maximum set by the size of the filesystem).<br />Set the Size of the normal large filesystems (eg. "/") to a reasonable number, no point in making them huge, most will fit in 40Gbytes.<br />Switch to the "Source Volumes" tab to see how much space is actually in use at the moment.<br />Normally set / to thin provisioning, 40GBytes, leave /boot and swap alone.<br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Devices</span><span style="font:12px Tahoma; color:#0A0A0A;">: Numer of processors = 1.<br />Disk controller = SCSI LSI Logic or SCSI Buslogic.<br />Memory = usually the default will be fine.<br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Networks</span><span style="font:12px Tahoma; color:#0A0A0A;">: Network adapters to connect = 1<br />Set the network for the network adapter to be the same Virtual Machine Network VLAN as the physical machine you are converting.<br />The new virtual machine will take over the IP address of the physical source machine.<br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Advanced Options</span><span style="font:12px Tahoma; color:#0A0A0A;">: Power on target machine = yes<br />Power off source machine = yes<br />Reconfigure destination virtual machine = yes<br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">Helper VM Network</span><span style="font:12px Tahoma; color:#0A0A0A;">: Look up the IP address of the host "ecsvm-<VLAN>-helper" which is a spare IP address unused by anything else in the same "<VLAN>" as the physical host you are converting. There are currently hosts defined such as "ecsvm-systems-helper", "ecsvm-dmz-helper" and "ecsvm-servers-helper". The IP configuration parameters and DNS setup for the Helper VM Network must all be consistent with its IP address. This "helper" machine is a temporary system setup by the VMware Converter just for use during the process of converting a Linux box, it disappears again at the end.<br /><br />Next.<br /><br />It should now just show you the final option settings and then start the process of converting the host. Wait for the whole process to finish before touching either the source (physical) or destination (virtual) machines.<br /><br />How long it takes depends on the quantity of data that has to be moved. You can expect about 20 to 25 MBytes/second conversion speed. A machine with about 7GB of used disk takes about 25 minutes to convert.<br /><br />As the process is run by the Converter Server (running on ecsvm-admin), it doesn't matter if you quit the Windows app used to watch the process, you can track the progress of the conversion from the Converter Windows app running on any PC.<br /><br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">After the Conversion has Finished</span><span style="font:12px Tahoma; color:#0A0A0A;"><br />Open a console on the new VM.<br />In the "VM/Guest" menu, install the VM tools.<br />	mount /dev/cdrom /mnt<br />	cd /tmp<br />	tar xzf /mnt/VM*<br />	umount /mnt<br />	cd vmware*<br />	./vmware-tools-install.pl<br />Accept all the defaults. It will find suitable modules for your kernel, or else will compile them itself, and build a new initrd, grub.conf and modprobe.conf for your kernel.<br />Assuming that succeeded, then<br />	shutdown -h now<br />Once the VM has stopped, edit the settings of the VM and choose the middle "Options" tab. In the "VMware Tools" settings, right at the bottom right of the dialog there is an option to "Synchronize guest time with host". Tick this box.<br />Okay that, then power on the VM.<br />It should successfully boot.<br /><br />The only remaining tasks are to enable and start up the user services, but&nbsp;</span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; ">not</span><span style="font:12px Tahoma; color:#0A0A0A;">&nbsp;ntpd.<br />	chkconfig mysqld on<br />	chkconfig httpd on<br />	service mysqld start<br />	service httpd start<br /><br />The VM should now be fully running happily and serving its services to the users. If you prefer, you can always reboot the VM again instead of running those last two "service ... start" commands to prove it is all okay and booting correctly.<br /><br />Now just remove the two temporary firewall rules you added at the start of this process.</span>]]></content:encoded></item><item><title>Run iPulse Without a Password Prompt</title><dc:creator>Jules@Jules.FM</dc:creator><category>Mac</category><dc:date>2009-10-06T20:30:25+01:00</dc:date><link>http://www.jules.fm/Logbook/files/ipulse_without_password.html#unique-entry-id-54</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/ipulse_without_password.html#unique-entry-id-54</guid><content:encoded><![CDATA[<span style="font:12px Tahoma; color:#0A0A0A;">The latest version of iPulse runs very nicely in Snow Leopard. Great. Except that every time you start it you have to type in your password! What a pain. So this will tell you how to avoid having to type in your password every time you start iPulse, which is probably every time you login.<br /><br />Open a Terminal (it's in /Applications / Utilities).<br />Run the command "sudo visudo".<br />It will prompt you for your password, so type it in. Oh, you need an Administrator account to be able to do any of this, sorry.<br />Press G (capital G) to go to the bottom of the file, then press o (little Oh, not a zeo) to open up a new line.<br />Enter the following line, changing "jkf" for the "short name" of your account:<br /><br />jkf ALL=NOPASSWD: /Applications/iPulse.app/Contents/MacOS/iPulse<br /><br />Press "esc" to stop editing. If anything went wrong, type ":q!" and press return to quit without saving. If the line looks okay, type ":wq" and press return to save and exit.<br /><br />Now your Mac knows you can run iPulse as an administrator without a password.<br /><br />Because iPulse will be running as the root user, it needs to know what Jacket to load when it starts. So back into the Terminal window.<br />This time type this command, all on 1 line:<br /><br />cd ; sudo cp Library/Preferences/com.iconfactory.iPulse.plist /var/root/Library/Preferences<br /><br />Next stop is the AppleScript Editor (it's in /Applications/Utilities). We're going to create a little application that joins everything together.<br />Create a new script. Paste the following line into it, noting that it should be pasted in all on 1 line, though the editor will word-wrap it to make it look pretty.<br /><br />do shell script "SUDO_ASKPASS=/usr/bin/true /usr/bin/sudo -b -n /Applications/iPulse.app/Contents/MacOS/iPulse &lt;/dev/null &amp;&gt;/dev/null"</span><span style="font:12px Verdana, serif; "><br /><br />Click on the "Compile" button to make it look nice, it shouldn't produce any errors.<br />Using File / Save As..., save this as an Application in /Applications with a neat name like "Start iPulse".<br /><br />If you try to run this new application, you should see iPulse start without asking for a password! Yay!<br /><br />Nearly there.<br />Now just go into System Preferences / Accounts / Login Items, click the little "+" button at the bottom of the list of appications to start when you login, and add your new "Start iPulse" application.<br /><br />Now you are all set. Try logging out, then login again and you should find that iPulse starts up without asking for a password.<br /></span>]]></content:encoded></item><item><title>Installing Windows 7</title><dc:creator>Jules@Jules.FM</dc:creator><category>Windows 7</category><dc:date>2009-09-25T16:14:56+01:00</dc:date><link>http://www.jules.fm/Logbook/files/ea7611484ca9118193b5238b6556d257-53.html#unique-entry-id-53</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/ea7611484ca9118193b5238b6556d257-53.html#unique-entry-id-53</guid><content:encoded><![CDATA[<span style="font:12px Tahoma; color:#0A0A0A;">This is a highly-polished installation of Windows 7. It has been used mostly on Dell laptops, but is not hardware-specific at all. This will produce a very nice, usable installation of Windows 7 containing the basic software that most people need for everyday office and travel use.<br /><br />Customising a Windows 7 Enterprise Installation<br /><br /></span><span style="font:12px Arial, Verdana, Helvetica, sans-serif; ">Boot off Windows 7 Enterprise DVD<br />Choose English (United Kingdom)<br />Custom install<br />Advanced drive options, delete all partitions<br />Leave it to install<br /><br />User account<br />&nbsp;&nbsp;- Username "User"<br />&nbsp;&nbsp;- Computer name: "Dell " + the model number<br />&nbsp;&nbsp;- Password "password"<br />Updates<br />&nbsp;&nbsp;- Use recommended settings<br />Time Zone<br />&nbsp;&nbsp;- UTC<br />Wireless Network (if presented)<br />&nbsp;&nbsp;- Use ECS-WLAN, tick "Start this connection automatically"<br />&nbsp;&nbsp;- Work Network<br /><br />Start / Computer / Properties<br />&nbsp;&nbsp;- / Advanced / Computer Name - Change suffix to ecs.soton.ac.uk<br />&nbsp;&nbsp;- / Remote - Untick Allow Remote Assistance Connections<br /><br />ECS VPN<br />&nbsp;&nbsp;- staffvpn.ecs.soton.ac.uk<br />&nbsp;&nbsp;- Name "ECS vpn"<br />&nbsp;&nbsp;- Allow other people to use<br />&nbsp;&nbsp;- Don't Connect<br />&nbsp;&nbsp;- No username or password, leave all blank<br /><br />Start Menu Properties<br />&nbsp;&nbsp;- Power button: Hibernate<br />&nbsp;&nbsp;- Untick "Store and disp... and the taskbar"<br />&nbsp;&nbsp;- Customize<br />&nbsp;&nbsp; &nbsp;- Control Panel - menu<br />&nbsp;&nbsp; &nbsp;- no Default Programs<br />&nbsp;&nbsp; &nbsp;- no Music<br />&nbsp;&nbsp; &nbsp;- no Open submenus when I pause<br />&nbsp;&nbsp; &nbsp;- no Pictures<br />&nbsp;&nbsp; &nbsp;- yes Run Command<br />&nbsp;&nbsp; &nbsp;- System Administrative Tools on All Programs menu<br />&nbsp;&nbsp;- Toolbar tab<br />&nbsp;&nbsp; &nbsp;- no Lock the taskbar<br />&nbsp;&nbsp; &nbsp;- Notification area: customise and Always show all icons<br /><br />Control Panel / Personalization<br />&nbsp;&nbsp;- Window color / Advanced Appearance settings<br />&nbsp;&nbsp; &nbsp;- Border Padding = 0<br />&nbsp;&nbsp; &nbsp;- Active Title Bar = minimum allowed<br />&nbsp;&nbsp;- Desktop background<br />&nbsp;&nbsp; &nbsp;- Picture location = Top Rated Photos<br />&nbsp;&nbsp; &nbsp; &nbsp;- Untick all except penguins<br />&nbsp;&nbsp;- Left-hand pane / Change desktop icons<br />&nbsp;&nbsp; &nbsp;- Hide all<br /><br />Control Panel / Action Center<br />&nbsp;&nbsp;- Left-hand pane / Change User Account Control settings<br />&nbsp;&nbsp; &nbsp;- Change to bottom level + 1<br /><br />Control Panel / Autoplay<br />&nbsp;&nbsp;- no Use AutoPlay for all media and devices<br /><br />Control Panel / Folder Options<br />&nbsp;&nbsp;- Navigation Pane / yes Show all folders<br />&nbsp;&nbsp;- View tab<br />&nbsp;&nbsp; &nbsp;- Hidden files and folders - Show hidden files<br />&nbsp;&nbsp; &nbsp;- no Hide Empty Drives<br />&nbsp;&nbsp; &nbsp;- no Hide Extentions<br />&nbsp;&nbsp; &nbsp;- no Hide protected operating systems files<br /><br />Control Panel / Internet Options<br />&nbsp;&nbsp;- Home page = https://secure.ecs.soton.ac.uk/community/<br />&nbsp;&nbsp;- Search / Settings...<br />&nbsp;&nbsp; &nbsp;- Find more search providers...<br />&nbsp;&nbsp; &nbsp; &nbsp;- IE8<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;- yes Use Suggested sites<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;- yes Use express settings<br />&nbsp;&nbsp; &nbsp; &nbsp;- Search the gallery for "google"<br />&nbsp;&nbsp; &nbsp; &nbsp;- Search with Google United Kingdom<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;- Add to Internet Explorer<br />&nbsp;&nbsp; &nbsp; &nbsp;- Google Search Suggestions<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;- Add to Internet Explorer<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;- yes Make this my default<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;- yes Use search suggestions<br />&nbsp;&nbsp; &nbsp; &nbsp;- Close IE<br />&nbsp;&nbsp; &nbsp;- yes Prevent Programs<br />&nbsp;&nbsp;- Tabs / Settings...<br />&nbsp;&nbsp; &nbsp;- no Warn me when closing multiple tabs<br />&nbsp;&nbsp; &nbsp;- yes Always switch to new tabs<br />&nbsp;&nbsp; &nbsp;- yes Always open pop-ups in a new tab<br />&nbsp;&nbsp;- Security tab<br />&nbsp;&nbsp; &nbsp;- Custom level<br />&nbsp;&nbsp; &nbsp; &nbsp;- Display mixed contents = Enable (just over half way down)<br />&nbsp;&nbsp;- Programs tab<br />&nbsp;&nbsp; &nbsp;- HTML Editor = Notepad<br /><br />Control Panel / Power Options<br />&nbsp;&nbsp;- Require a password on wakeup<br />&nbsp;&nbsp; &nbsp;- When I press the power button = hibernate, Shut down<br />&nbsp;&nbsp; &nbsp;- Change settings that are currently unavailable<br />&nbsp;&nbsp; &nbsp; &nbsp;- Don't require a password<br />&nbsp;&nbsp;- Choose when to turn off the display<br />&nbsp;&nbsp; &nbsp;- Plugged in = never, never, never<br /><br />Control Panel / Programs and Features<br />&nbsp;&nbsp;- Turn Windows features on or off<br />&nbsp;&nbsp; &nbsp;- Printing and Document Services<br />&nbsp;&nbsp; &nbsp; &nbsp;- no Internet Printing Client<br />&nbsp;&nbsp; &nbsp; &nbsp;- no Windows Fax and Scan<br />&nbsp;&nbsp; &nbsp;- no Remote Differential Compression<br />&nbsp;&nbsp; &nbsp;- no Tablet PC Components<br />&nbsp;&nbsp; &nbsp;- yes Telnet Client<br />&nbsp;&nbsp; &nbsp;- no Windows Gadget Platform<br />&nbsp;&nbsp; &nbsp;- no XPS Services<br />&nbsp;&nbsp;- Restart later.<br /><br />Control Panel / User Accounts<br />&nbsp;&nbsp;- Change your picture<br />&nbsp;&nbsp; &nbsp;- Choose the kitten :-)<br /><br />Restart Windows.<br /><br />Start Windows Explorer<br />&nbsp;&nbsp;- Organise / Layout / Menu bar<br />&nbsp;&nbsp;- find Recycle Bin / Properties<br />&nbsp;&nbsp; &nbsp;- no Display delete confirmation dialog<br /><br />Firefox<br />&nbsp;&nbsp;- www.mozilla.com<br />&nbsp;&nbsp;- Standard Install<br />&nbsp;&nbsp;- yes Launch on completion<br />&nbsp;&nbsp;- Don't import anything<br />&nbsp;&nbsp;- Tools / Options<br />&nbsp;&nbsp; &nbsp;- Main<br />&nbsp;&nbsp; &nbsp; &nbsp;- Home page = https://secure.ecs.soton.ac.uk/community/<br />&nbsp;&nbsp; &nbsp;- Tabs<br />&nbsp;&nbsp; &nbsp; &nbsp;- no Warn me when closing multiple tabs<br />&nbsp;&nbsp; &nbsp; &nbsp;- yes When I open a new tab<br />&nbsp;&nbsp;- Quit Firefox<br />&nbsp;&nbsp;- Quit and restart IE<br />&nbsp;&nbsp; &nbsp;- When it asks about being default browser<br />&nbsp;&nbsp; &nbsp; &nbsp;- no Always perform this Check<br />&nbsp;&nbsp; &nbsp; &nbsp;- Click "No" button<br />&nbsp;&nbsp; &nbsp;- Right-click on Favorites bar and untick the Favorites bar<br /><br />Adobe Acrobat Reader<br />&nbsp;&nbsp;- Button on right side of www.adobe.com<br />&nbsp;&nbsp;- Scroll down the download page and untick all "Also install"s<br />&nbsp;&nbsp;- Allow the add-on to install<br />&nbsp;&nbsp;<br />Adobe Flash Player<br />&nbsp;&nbsp;- Button on right side of www.adobe.com<br />&nbsp;&nbsp;- Scroll down the download page and untick all "Also install"s<br />&nbsp;&nbsp;- At end of installation manager, Firefox will start and need to install Flash plug-in.<br />&nbsp;&nbsp;- Quit Firefox and IE<br /><br />Office 2007<br />&nbsp;&nbsp;- Install from DVD<br />&nbsp;&nbsp;- Get activation code from https://secure.ecs.soton.ac.uk/kb/entry/68/<br />&nbsp;&nbsp;- Thump the big Install button<br /><br />Sophos<br />&nbsp;&nbsp;- Use IE to go to www.sophos.ecs.soton.ac.uk<br />&nbsp;&nbsp;- Install and run "Sophos 7 Remote Installer for Windows" (35MB)<br />&nbsp;&nbsp;- Allow to put temporary files in c:\savwsa<br />&nbsp;&nbsp;- In user details page of wizard:<br />&nbsp;&nbsp; &nbsp;- Address = http://www.update.ecs.soton.ac.uk/esxp/<br />&nbsp;&nbsp; &nbsp;- Username = ecs2000\your-username<br />&nbsp;&nbsp; &nbsp;- Password = your-Password<br />&nbsp;&nbsp; &nbsp;- no Access the update source via a proxy<br />&nbsp;&nbsp; &nbsp;- yes Remote third-party security software<br />&nbsp;&nbsp;- Right-click tiny Sophos taskbar icon and "Update now"<br />&nbsp;&nbsp;<br />&nbsp;&nbsp; &nbsp;<br />Putty<br />&nbsp;&nbsp;- Google for "putty" and download Putty, pscp, psftp & pageant<br />&nbsp;&nbsp;- Download into C:\Users\User\Downloads<br />&nbsp;&nbsp;- Move then into C:\Windows<br />&nbsp;&nbsp;- Right-click Putty.exe, paste a shortcut in C:\Users\User\AppData\Roaming\Microsoft\Windows\Start menu\Programs<br />&nbsp;&nbsp;- Rename shortcut to "Putty"<br /><br />Device drivers<br />&nbsp;&nbsp;- Open Device Manager<br />&nbsp;&nbsp;- Check for unknown devices<br />&nbsp;&nbsp;- If mouse is just a PS/2 mouse, get Vista driver from www.synaptics.com<br />&nbsp;&nbsp;- Dell Mini 12 Vista drivers often work on a Windows 7 Dell Mini 9<br />&nbsp;&nbsp;- You can only download 1 driver at once from Dell!<br />&nbsp;&nbsp;- Download any drivers necessary from www.dell.co.uk to make all unknowns vanish<br />&nbsp;&nbsp;- Install ControlPoint if necessary to make fingerprint reader work<br /><br />Control Panel / Folder Options<br />&nbsp;&nbsp;- View tab, yes Don't show hidden files, folders or Drives<br /><br />Control Panel / Windows Update<br />&nbsp;&nbsp;- Get updates for other Microsoft products<br />&nbsp;&nbsp; &nbsp;- Agree and install<br />&nbsp;&nbsp;- Check for updates<br />&nbsp;&nbsp;- Optional Updates<br />&nbsp;&nbsp; &nbsp;- Don't install Windows Live Essentials or any Language Packs<br />&nbsp;&nbsp;- Install all other updates<br />&nbsp;&nbsp;- After updates are complete, retry if any failed<br />&nbsp;&nbsp;- Restart Windows<br />&nbsp;&nbsp;- Check for updates again and install all new updates (there will be some)<br />&nbsp;&nbsp;- Rinse and repeat until no new updates are found<br /><br />Control Panel / System<br />&nbsp;&nbsp;- Change product key (right at the bottom)<br />&nbsp;&nbsp;- Get activation code<br />&nbsp;&nbsp; &nbsp;- Staff: https://secure.ecs.soton.ac.uk/kb/entry/68/<br />&nbsp;&nbsp; &nbsp;- Students: Microsoft e-Academy<br />&nbsp;&nbsp;- That will activate Windows<br />&nbsp;&nbsp;- System Protection (left pane of window)<br />&nbsp;&nbsp; &nbsp;- Configure... / Delete<br /><br />Taskbar<br />&nbsp;&nbsp;- Right-click on Windows Media and IE in the taskbar and "unpin"<br />&nbsp;&nbsp;- Firefox and Outlook<br />&nbsp;&nbsp; &nbsp;- Right-click on them in the Start menu<br />&nbsp;&nbsp; &nbsp;- Pin to taskbar<br />&nbsp;&nbsp;- Make order (left to right) Start, Firefox, Outlook, Windows Explorer<br /><br />Start Menu<br />&nbsp;&nbsp;- Right-click Firefox and "Pin to Start Menu"<br />&nbsp;&nbsp;- Right-click Outlook and "Pin to Start Menu"<br /><br />Clean Up<br />&nbsp;&nbsp;- Start menu<br />&nbsp;&nbsp; &nbsp;- Right-click on each icon, select "Remove from this menu" for most<br />&nbsp;&nbsp; &nbsp;- Leave only Getting Started, Connect to a Projector<br />&nbsp;&nbsp;- Control Panel / Internet options<br />&nbsp;&nbsp; &nbsp;- Browsing history / Delete... / tick all boxes<br />&nbsp;&nbsp;- Firefox<br />&nbsp;&nbsp; &nbsp;- Tools / Clear Recent History... / Everything<br />&nbsp;&nbsp;- Desktop<br />&nbsp;&nbsp; &nbsp;- Delete all icons, files and directories<br />&nbsp;&nbsp;- Filesystem<br />&nbsp;&nbsp; &nbsp;- Delete C:\Dell, C:\savwsa, C:\PerfLogs<br />&nbsp;&nbsp;- Windows update<br />&nbsp;&nbsp; &nbsp;- Start / Administrative Tools / Services<br />&nbsp;&nbsp; &nbsp;- Stop "Windows Update"<br />&nbsp;&nbsp; &nbsp;- Delete the whole of C:\Windows\SoftwareDistribution<br />&nbsp;&nbsp; &nbsp;- Start "Windows Update"<br />&nbsp;&nbsp;- Recycle Bin<br />&nbsp;&nbsp; &nbsp;- Empty Recycle Bin<br /><br />Control Panel / Windows Update<br />&nbsp;&nbsp;- Get updates for other Microsoft products<br />&nbsp;&nbsp; &nbsp;- Agree and install<br />&nbsp;&nbsp;- Optional Updates<br />&nbsp;&nbsp; &nbsp;- Right-click on each Language Pack and "Hide update"<br />&nbsp;&nbsp; &nbsp;- Okay and close window<br /><br /></span><span style="font:12px Tahoma; color:#0A0A0A;">Restart the PC<br /><br />Backup system image to external hard disk (Control Panel / Backup and Restore / Create a system image), having checked there is no "WindowsImageBackup" dir in the root directory. If there is, first move it back to its home in a sub-dir if present. Backup will create a new "WindowsImageBackup" directory in the root directory of the external disk.<br /><br />You're done!<br /></span>]]></content:encoded></item><item><title>Install VMware Tools on a Linux Client</title><dc:creator>Jules@Jules.FM</dc:creator><category>VMware</category><category>vSphere</category><category>Linux</category><dc:date>2009-09-23T20:13:39+01:00</dc:date><link>http://www.jules.fm/Logbook/files/install_vmware_tools_on_linux.html#unique-entry-id-52</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/install_vmware_tools_on_linux.html#unique-entry-id-52</guid><content:encoded><![CDATA[<span style="font:12px Tahoma; color:#0A0A0A;">First, log in to the VM as root and "yum update".<br />Then "yum install gcc make binutils kernel-devel kernel-headers".<br />Then reboot the VM.<br />Then start up the vSphere Client, right click on the VM and choose Guest - Install VMware Tools.<br />Back into the VM's root session.<br />mount /dev/cdrom /mnt<br />cd /tmp<br />tar xzf /mnt/VM*<br />umount /mnt<br />cd vmware-tools-distrib<br />./vmware-install.pl<br />Accept all the defaults, and let it do everything it wants. If you have a fully updated and correct system, it should install flawlessly.<br /><br />Check the "ifconfig -a" and ensure that all the network devices that exist have startup scripts in /etc/sysconfig/network-scripts/ifcfg-eth*.<br /><br />Go into the vSphere Client again and right-click on the VM. Look in the "Guest" sub-menu and tell it to stop installing the VMware Tools if it offers you that.<br /><br />Reboot the VM.<br /><br />If you have problems...<br /><br />The most likely problem is that you are running an el5xen kernel or some other xen kernel, which you don't want to be doing.<br />Once you've done a yum update, take the xen kernel you are running (uname -a will tell you) and do something like this:<br />yum install kernel-2.6.18-164.el5<br />Then edit /boot/grub/grub.conf and ensure that the "default=" setting at the top is set to boot the kernel you just installed and not the xen kernel (they start numbering from the top of the file from 0).<br />Then reboot so you are running the non-xen kernel.<br />Then<br />yum install kernel-devel-2.6.18-164.el5<br />Then re-run /tmp/vmware-tools-distrib/vmware-install.pl and if it asks you for the kernel headers location, give it<br />/usr/src/kernels/2.6.18-164.el5/include<br />But you will most likely find that it just happily works on its own!<br />Then just reboot to pick up all the VMware tools in a fresh boot.<br /></span>]]></content:encoded></item><item><title>VMware Converter Fails for Linux Client</title><dc:creator>Jules@Jules.FM</dc:creator><category>vSphere</category><category>Linux</category><category>VMware</category><dc:date>2009-09-23T20:11:47+01:00</dc:date><link>http://www.jules.fm/Logbook/files/vmware_clone_linux_fails.html#unique-entry-id-51</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/vmware_clone_linux_fails.html#unique-entry-id-51</guid><content:encoded><![CDATA[<span style="font:12px Tahoma; color:#0A0A0A;">You need to change the installed SCSI controller to be a LSI Logic controller. The original machine may have been configured for a Transtec 3Ware SCSI controller.<br /><br />The main relevant article is here:<br /></span><span style="font:12px Tahoma; color:#0000F1;"><u><a href="http://tipstricksandmore.blogspot.com/2009/01/after-converting-physical-rhel4-system.html">http://tipstricksandmore.blogspot.com/2009/01/after-converting-physical-rhel4-system.html</a></u></span><span style="font:12px Tahoma; color:#0A0A0A;"><br /><br />Once the VM has been converted, you can change the hardware of the VM in the "Edit Settings..." menu from right-clicking on the VM. You can only change it when the VM is powered off.<br /><br />Edit the VM settings and connect the DVD drive to a "Datastore ISO File": infra1-localDisk/vSphere Management Assistant/rhel-5-server-i386-dvd.iso.<br />Set the Device Status to "Connected" and "Connect at power on".<br />In the VM options page, set it to go into the BIOS setup at next boot.<br /><br />Open a console on the VM and power it on. It will go into the BIOS setup.<br />In the "Boot" BIOS menu, select the DVD drive and press + to move it to the top.<br />Save and exit the BIOS setup.<br /><br />It will boot from DVD.<br />Enter "linux rescue".<br />You don't need any network interfaces.<br />Let it look for the installed system to mount under /mnt/sysimage.<br /><br />chroot /mnt/sysimage<br />Replace hda with sda in /etc/fstab, /boot/grub/device.map and /boot/grub/grub.conf<br />grub-install /dev/sda<br /><br />Make sure /etc/modules.conf is empty or non-existent.<br /><br />Edit /etc/modprobe.conf and set<br />alias eth0 pcnet32<br />alias eth1 pcnet32<br />alias scsi_hostadapter mptbase<br />alias scsi_hostadapter1 mptscsih<br /><br />Work out the full path to the initrd image you are going to rebuild. They are in /boot and are called initrd*.<br />The /boot/grub/grub.conf will point to the right one.<br />So in my example it is "/boot/initrd-2.6.18-128.7.1.el5xen.img".<br />There should be a directory under /lib/modules called the same version number.<br /><br />Then you use a command like this to rebuild it<br />mkinitrd -v -f /boot/initrd-2.6.18-128.7.1.el5xen.img 2.6.18-128.7.1.el5xen<br /><br />exit<br />reboot<br /><br />Press Esc to get the boot menu and force it to boot from the hard disk.<br />Hopefully it will boot this time!<br /><br />Shut it down again, edit the VM settings and set the DVD drive back to "Client Device".<br />Boot your VM normally.<br /></span>]]></content:encoded></item><item><title>VMware Hot Clone of an Existing System</title><dc:creator>Jules@Jules.FM</dc:creator><category>VMware</category><category>vSphere</category><dc:date>2009-09-23T20:10:36+01:00</dc:date><link>http://www.jules.fm/Logbook/files/vmware_hot_clone.html#unique-entry-id-50</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/vmware_hot_clone.html#unique-entry-id-50</guid><content:encoded><![CDATA[<span style="font:12px Tahoma; color:#0A0A0A;">This article describes how to create a VMware virtual machine from an existing live (Windows) system.<br />The same process should work with Linux but I've not tested it yet.<br /><br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; "><u>Starting the Client</u></span><span style="font:12px Tahoma; color:#0A0A0A;"><br />1. Open a Remote Desktop session to ecsvm-admin.ecs.soton.ac.uk and login as ecs2000\administrator<br />2. Start the VmWare Converter Standalone Client on ecsvm-admin.&nbsp; Start --> All Programs --> VMWare --> Converter Standalone Client<br />3. Select "Connect to local Server" and click ok.<br />4. The client software should start :-)<br /><br /></span><span style="font:12px Tahoma-Bold; font-weight:bold; color:#0A0A0A;font-weight:bold; "><u>Creating the VM</u></span><span style="font:12px Tahoma; color:#0A0A0A;"><br />1. Click the "Convert Machine" button&nbsp; (towards the top left)<br />2. Select the "A Remote machine" radio button<br />3. Enter the IP address of the machine to be cloned<br />4. Enter the user ID and password of an Administrator on the machine being cloned<br />5. Click Next<br />6. You should see a prompt asking if you want to "Automatically uninstall" the agent software when the clone has finished. Select the option and click Yes.<br />7. It'll now wait while the client agent is installed.<br /><br />8. Next you're prompted for the VMware Virtual Infrastructure details:<br />Server=ecsvm-admin.ecs.soton.ac.uk<br />User Name=ecs2000\administrator<br />&nbsp;9. You should now see a view of our VI Infrastructure:<br />a. Click server "ecsvm-infra1.ecs.soton.ac.uk"<br />b. Select one of the&nbsp;infrastore1 disk&nbsp;volumes for the datastore<br />c. Type the virtual machine name you want to use (normally just the host name and not the FQDN)<br /><br />10. Click next<br />11. You now get a chance to configure the VM "hardware" and select which disks to&nbsp;clone etc<br />12 Click Next<br /><br />13. Click finish and the clone should start.<br /><br /><br />14 After the clone has finished you need to make sure the VM is connected to the correct virtual network:<br />Using the Vsphere client right click on the VM and click edit settings.<br />Click the network adapter, choose the correct network in the list box and click OK.<br />15. Install/Upgrade VMware tools:<br />Using vSphere client right click on the VM and click Guest --> Install/Upgrade VMware tools<br /></span>]]></content:encoded></item><item><title>vSphere Client will not Run on Windows 7</title><dc:creator>Jules@Jules.FM</dc:creator><category>VMware</category><category>Windows 7</category><category>vSphere</category><dc:date>2009-09-23T20:08:39+01:00</dc:date><link>http://www.jules.fm/Logbook/files/vsphere_client_fails_windows_7.html#unique-entry-id-49</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/vsphere_client_fails_windows_7.html#unique-entry-id-49</guid><content:encoded><![CDATA[<span style="font:12px Tahoma; color:#0A0A0A;">When you start the vSphere Client on Windows 7, you get an error about it being unable to read the "clients.xml" file, followed by an another error "</span><span style="font:12px Arial, Verdana, Helvetica, sans-serif; color:#323232;">The type initializer for "VirtualInfrastructure.Utils.HttpWebRequestProxy" threw an exception".</span><span style="font:12px Tahoma; color:#0A0A0A;"><br /><br />The workaround is this:<br /></span><ul class="(null)"><li><span style="font:12px Verdana, serif; color:#242424;">Create a folder (e.g.&nbsp;</span><span style="font:9px Monaco; color:#535353;">Lib</span><span style="font:12px Verdana, serif; color:#242424;">) in the Windows 7 machine where the vSphere client is installed (</span><span style="font:9px Monaco; color:#535353;">%ProgramFiles%\</span><span style="font:9px Monaco; color:#265C94;">VMware</span><span style="font:9px Monaco; color:#535353;">\Infrastructure\Virtual Infrastructure Client\Launcher\</span><span style="font:12px Verdana, serif; color:#242424;">).</span></li><li><span style="font:12px Verdana, serif; color:#242424;">Obtain a copy of&nbsp;</span><span style="font:9px Monaco; color:#535353;">%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\System.dll</span><span style="font:12px Verdana, serif; color:#242424;">&nbsp;from a non-Windows 7 machine that has .NET 3.5 SP1 installed. Copy this file into the folder created in Step 1.</span></li><li><span style="font:12px Verdana, serif; color:#242424;">In the vSphere client launcher directory, open the&nbsp;</span><span style="font:9px Monaco; color:#535353;">VpxClient.exe.config</span><span style="font:12px Verdana, serif; color:#242424;">&nbsp;file in a text editor and add a </span><span style="font:9px Monaco; color:#535353;">&lt;runtime&gt;</span><span style="font:12px Verdana, serif; color:#242424;">&nbsp;element and a&nbsp;</span><span style="font:9px Monaco; color:#535353;">&lt;developmentMode&gt;</span><span style="font:12px Verdana, serif; color:#242424;">&nbsp;element within the&nbsp;</span><span style="font:9px Monaco; color:#535353;">&lt;configuration&gt;</span><span style="font:12px Verdana, serif; color:#242424;">&nbsp;element. Save the file.</span></li></ul><ul class="(null)"><li><span style="font:9px Monaco; color:#535353;">&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />&lt;configuration&gt;<br />...<br />&lt;runtime&gt;<br />&lt;developmentMode developerInstallation="true"/&gt;<br />&lt;/runtime&gt;<br />&lt;/configuration&gt;</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; color:#646464;"><br /></span></li></ul><ul class="(null)"><li><span style="font:12px Verdana, serif; color:#242424;">Create a batch file (e.g.&nbsp;</span><span style="font:9px Monaco; color:#535353;">VpxClient.cmd</span><span style="font:12px Verdana, serif; color:#242424;">) in a suitable location (e.g. Desktop). In this file add a command to set the DEVPATH environment variable to the folder where you copied the System.dll assembly in step 2 and a second command to launch the vSphere client. Save the file.</span></li></ul><ul class="(null)"><li><span style="font:9px Monaco; color:#535353;">SET DEVPATH=%ProgramFiles%\</span><span style="font:9px Monaco; color:#265C94;">VMware</span><span style="font:9px Monaco; color:#535353;">\Infrastructure\Virtual Infrastructure Client\Launcher\Lib<br />"%ProgramFiles%\</span><span style="font:9px Monaco; color:#265C94;">VMware</span><span style="font:9px Monaco; color:#535353;">\Infrastructure\Virtual Infrastructure Client\Launcher\VpxClient.exe"</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; color:#646464;"><br /></span></li></ul><span style="font:12px Verdana, serif; color:#242424;">NOTE: If you are running 64-bit Windows, replace all instances of&nbsp;</span><span style="font:9px Monaco; color:#535353;">Program Files</span><span style="font:12px Verdana, serif; color:#242424;">&nbsp;with&nbsp;</span><span style="font:9px Monaco; color:#535353;">Program Files (x86)</span><span style="font:12px Verdana, serif; color:#242424;">.<br />You can now use the VpxClient.cmd (or the shortcut) to launch the vSphere client in Windows 7.<br />This workaround bypasses the normal .NET Framework loading mechanism. Assembly versions found in the DEVPATH folder are not checked.&nbsp;</span>]]></content:encoded></item><item><title>Tethering on 3G / 3GS iPhone</title><dc:creator>Jules@Jules.FM</dc:creator><category>iPhone</category><dc:date>2009-06-18T12:02:35+01:00</dc:date><link>http://www.jules.fm/Logbook/files/tethering_iphone.html#unique-entry-id-48</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/tethering_iphone.html#unique-entry-id-48</guid><content:encoded><![CDATA[<span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">You obviously need iPhone OS 3.0 first, or else none of this is ever going to work.<br />It is dead easy, use your iPhone Safari to go to </span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "><a href="http://help.benm.at/" rel="self">http://help.benm.at/</a></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">, choose your carrier and install the profile.<br />Then go into Settings / General / Network / Internet Tethering and switch it on.<br />Your iPhone will go a pretty blue colour when it starts tethering.<br />On a Mac, just plug the iPhone in, or connect with Bluetooth and it will automatically detect the new network interface.<br />On a Windows PC, you need to download the &ldquo;</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "><a href="http://www.benm.at/2009/03/02/pdanet-iphone-als-modem-windows/" rel="self">PDANet Desktop Client</a></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">&rdquo; to use it.<br /><br />For more information, go </span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "><a href="http://richardlai.xanga.com/704930537/enable-tethering-on-iphone-30---too-easy-worldwide-carriers/" rel="self">here</a></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">.<br /><br /></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; font-weight:bold; font-weight:bold; ">Update 2009-06-18:</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "> The guys at Benm.at set the APN wrong in their settings file, their one will work but it will be trivial for O2 to find you have installed the file. If you use my version instead, then they won&rsquo;t see any change in your APN settings. Point your iPhone at this page and </span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "><a href="http://www.jules.fm/files/uk.o2.mobileconfig" rel="self">follow this link</a></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "> to install my version.</span>]]></content:encoded></item><item><title>Anti-Phishing and Spear-Phishing Version 2</title><dc:creator>Jules@Jules.FM</dc:creator><category>Email</category><category>Spam</category><dc:date>2009-06-15T11:31:49+01:00</dc:date><link>http://www.jules.fm/Logbook/files/anti-phishing-v2.html#unique-entry-id-47</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/anti-phishing-v2.html#unique-entry-id-47</guid><content:encoded><![CDATA[<span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; font-weight:bold; font-weight:bold; ">Update 11 October 2009:</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "> This has now been moved to </span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "><a href="http://www.scamnailer.com/" rel="self">www.ScamNailer.com</a></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">. Please check there for all future information and updates to this package.<br /></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; font-weight:bold; font-weight:bold; "><br />Update 20 September 2009:</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "> The Google-hosted data file has been moved to SourceForge, so I have updated the URL it downloads it from. You </span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; font-weight:bold; font-weight:bold; ">need</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "> to update your script to the new version 2.05.<br /></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; font-weight:bold; font-weight:bold; "><br />Update 16 June 2009: </span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">I have changed the rule structures to make them considerably faster than the old ones. Download the updated script from the link below.<br /><br />I have acquired a new reliable feed of email addresses used in phishing attacks. These addresses have all been checked by real people, and they come from a very reliable and well-known source.<br /><br />The new data file is provided by means of DNS and an Anycast network, which makes it pretty resilient to attack. The previous spear-phishing data is gathered from the project hosted by Google in the traditional way, that hasn&rsquo;t changed.<br /><br />I have updated my script so that it fetches both sets of data. It makes use of a temporary directory under /var/cache, which is configurable at the start of the script, and which needs to be writable by the user the scripts runs as (normally just &lsquo;root&rsquo; so this doesn&rsquo;t present any problem at all to most people).<br /><br />You can </span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "><a href="http://www.jules.fm/files/Spear.Phishing.Rules.v2.05.gz" rel="self">download version 2.05 of the script</a></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">.<br /><br />If you are not using MailScanner with this script, you will need to comment out or delete the line that mentions &ldquo;service MailScanner reload&rdquo; about 1/3 of the way down the script (search and ye shall find!).<br /><br />For more explanation of this whole problem and the way this script works, please refer back to </span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "><a href="http://www.jules.fm/Logbook/files/anti-spear-phishing.html" rel="self">my earlier article</a></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">.</span>]]></content:encoded></item><item><title>Upgrading Windows 7 from Beta to Release Candidate</title><dc:creator>Jules@Jules.FM</dc:creator><category>Windows</category><category>Windows 7</category><dc:date>2009-05-07T09:37:01+01:00</dc:date><link>http://www.jules.fm/Logbook/files/upgrade_win7beta_to_rc.html#unique-entry-id-46</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/upgrade_win7beta_to_rc.html#unique-entry-id-46</guid><content:encoded><![CDATA[<span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">This is actually very easy.<br /><br />Copy all the files from the Release Candidate DVD into a directory on your hard disk. Go into that directory, look in the &ldquo;sources&rdquo; sub-directory for a file &ldquo;cversion.ini&rdquo;.<br />Change the line<br />MinClient=7100.0<br />to<br />MinClient=6900.0<br />and save it.<br /><br />Burn a new DVD from the directory containing everything, and use that to upgrade your Windows 7 Beta system to Windows 7 Release Candidate.<br /><br />This information is available officially from Microsoft, but I forget where.</span>]]></content:encoded></item><item><title>Best TV Ad in Months</title><dc:creator>Jules@Jules.FM</dc:creator><category>TV</category><category>Advert</category><dc:date>2009-05-01T09:57:16+01:00</dc:date><link>http://www.jules.fm/Logbook/files/robinsons_advert.html#unique-entry-id-45</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/robinsons_advert.html#unique-entry-id-45</guid><content:encoded><![CDATA[<span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">This is simply the best TV advert I have seen in months. It is a fine example of the amazing quality of TV advertising we have here in the UK. The advert would not work in many other countries, it&rsquo;s way too subtle for an American audience. No insult intended, but your advertising is very different from ours, and clever companies appreciate that and work with it. This should win some awards, it&rsquo;s simply brilliant. </span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "><a href="http://www.jules.fm/Logbook/files/Robinsons-Advert.mp4" rel="self">MP4 Format, 10Mb, 40 seconds</a></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">.</span>]]></content:encoded></item><item><title>Mouse support in Hyper-V</title><dc:creator>Jules@Jules.FM</dc:creator><category>Linux</category><category>Hyper-V</category><dc:date>2009-04-18T20:30:34+01:00</dc:date><link>http://www.jules.fm/Logbook/files/hyper-v-mouse-support.html#unique-entry-id-44</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/hyper-v-mouse-support.html#unique-entry-id-44</guid><content:encoded><![CDATA[<span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">This is how to add mouse support to the LICs (Linux Integration Components) provided by Microsoft. This does not involve using the Beta version of the LICs at all, it is all done with the production release version.<br /><br />Firstly install everything else involved in getting the LICs working. There is another article in this blog that will explain how to get the LICs working with RedHat or CentOS 5.2.<br /><br />On your Windows 2008 or Hyper-V server, download the &ldquo;inputvsc.iso&rdquo; from </span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "><a href="http://www.xen.org/download/satori.html" rel="self">http://www.xen.org/download/satori.html</a></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">.<br />Using the Hyper-V &ldquo;Connect&rdquo; window and its Media menu, set the DVD drive to point to the &ldquo;inputvsc.iso&rdquo; you just downloaded.<br />In the virtual machine, &ldquo;mkdir /mnt&rdquo; and &ldquo;mount /dev/hdc /mnt&rdquo;. That should mount the ISO on /mnt.<br />Make somewhere to put it, such as &ldquo;mkdir -p /opt/inputdriver&rdquo;.<br />Copy the contents of the ISO to there, &ldquo;cp -pr /mnt/* /opt/inputdriver&rdquo;.<br />Unmount the ISO, &ldquo;umount /mnt&rdquo;.<br />Eject the media using the Media menu in the Hyper-V &ldquo;Connect&rdquo; window.<br />Go into that directory, &ldquo;cd /opt/inputdriver&rdquo;.<br />Install one required package, &ldquo;yum install xorg-x11-server-sdk&rdquo;.<br />Install the mouse driver, &ldquo;perl setup.pl inputdriver&rdquo;.<br />That should succeed.<br /><br />Start X Windows with &ldquo;startx&rdquo; to test it. If the mouse support doesn&rsquo;t work, you can always kill X by pressing Ctrl-Alt-Backspace, or by logging in remotely to the virtual machine as root and typing &ldquo;killall X&rdquo;.<br /><br />That&rsquo;s about it. It worked fine for me!</span>]]></content:encoded></item><item><title>Anti Spear Phishing</title><dc:creator>Jules@Jules.FM</dc:creator><category>Email</category><category>Spam</category><dc:date>2009-01-13T13:50:13+00:00</dc:date><link>http://www.jules.fm/Logbook/files/anti-spear-phishing.html#unique-entry-id-43</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/anti-spear-phishing.html#unique-entry-id-43</guid><content:encoded><![CDATA[<span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; font-weight:bold; font-weight:bold; ">Update 2009-October-11:</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "> This package is now hosted at </span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "><a href="http://www.scamnailer.com/" rel="self">www.scamnailer.com</a></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">. Please check there for all future information and updates.<br /></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; font-weight:bold; font-weight:bold; "><br />Update 2009-June-15:</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "> There is now a brand new additional data feed of known phishing email addresses, which </span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "><a href="http://www.jules.fm/Logbook/files/anti-phishing-v2.html" rel="self" title="What I get up to at work&#34;&#62;Logbook:Anti-Phishing and Spear-Phishing Version 2">I have added to my script</a></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">.<br /><br /><br />Spear phishing is a technique used by spammers and scammers to try to get your email username and password. They send you an email claiming to be from your email provider, in which they say that your account will be deleted unless you supply them with your username and password &ldquo;for authentication&rdquo; or some other similar ruse.<br /><br />If they get your username and password, they then use your email account and email provider to send out millions of spam messages. Because the spam comes from a genuine email system (yours!) it will be accepted by most sites and will automatically pass many spam checks.<br /><br />I have written a script which takes a file of addresses commonly used in these attacks. It also allows an additional list of addressed you can add to. From these, it generates a set of SpamAssassin rules that detect the presence of these addresses, which can be used in MailScanner to stop the spear-phishing attacks completely.<br /><br />Download the script </span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "><a href="http://www.jules.fm/files/Spear.Phishing.Rules.gz" rel="self">here</a></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; ">. Note that the script is gzipped to ensure your browser doesn&rsquo;t do anything silly when fetching it, so you&rsquo;ll need to &ldquo;gunzip&rdquo; it before doing anything with it. To start with, just copy it into your &ldquo;/etc/cron.hourly&rdquo; directory, and run the command &ldquo;chmod a+rx /etc/cron.hourly/Spear.Phishing.Rules&rdquo; to make it run every hour.<br /><br />It is pretty much a finished script, and is directly usable by you guys without you having to do much to it except read the settings at the top and tweak the filenames if you want to change where it puts things. <br /><br />I have taken a lot of care to ensure that this won't match any false alarms, I don't just dumbly look for the strings in any surrounding text, which certain commercial AV vendors have been caught doing in the past! <br /><br />I make a suggestion in the comments at the top of the script about how I use the rule within MailScanner, you probably want to do something similar, and not just delete anything that matches, just in case you do get any false alarms. <br /><br />It also looks for numbers at the end of the username bit of the address, and assumes that these are numbers which the scammers may change; so if it finds them, it replaces them with a pattern that will match any number instead. There's starting to be a lot of this about, as it's the easiest way for the scammers to try to defeat simple address lists targeted against them, while still being able to remember what addresses they have to check for replies from your dumb users. :-) I thought I would make it a tiny bit harder for them... <br /><br />You can also add addresses of your own (which can include "*" as a wildcard character to mean "any series of valid characters" in the email address), one address per line, in an optional extra file. Again, read the top of the script and you'll see it mentioned there. That file is optional, it doesn't matter if it doesn't exist. As a starter, you might want to put <br />m i c h a e l l o u c a s * @ g m a i l . c o m <br />(without the extra spaces) in that file, as it will nicely catch a lot of "Job opportunity" spams. <br /><br />It looks for any of these addresses appearing **anywhere** in the message, not just in the headers. So if you start talking to people about these addresses, don't be surprised when the messages get caught by the trap. <br /><br />It does a "wget", so make sure you have that binary installed, or else change the script to fetch the file by some other means. <br /><br />The very end of the script does a "service MailScanner restart", so if you need some other command to restart MailScanner or your SpamAssassin setup, then edit it for your system. It needs to be a "restart" and not a "reload" as I have to force it to re-build the database of SpamAssassin rules. If you don&rsquo;t use MailScanner, but do use &ldquo;spamd&rdquo; in some setup or other, then a simple &ldquo;service spamd restart&rdquo; would do at the end of the script.<br /><br />My aim was that, on a RedHat system running MailScanner, you could just copy the script into /etc/cron.hourly and make it executable, and it will just get on with the job for you. I do advise you read the bit in the script about "SpamAssassin Rule Actions" though. <br /><br />Please do let me know how you would like me to improve it, and tell me what you think of it in general. (be polite, now!)<br /><br /></span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; font-weight:bold; font-weight:bold; ">Update 13th January 2009:</span><span style="font:12px &#39;Lucida Grande&#39;, LucidaGrande, Verdana, sans-serif; "><br />A colleague on the MailScanner mailing list has made this simpler to use. You don&rsquo;t have the flexibility of adding your own addresses to the list, but you can get the latest list along with all your regular SpamAssassin updates with the &ldquo;sa-update&rdquo; command.<br />Here are his instructions:<br />wget http://www.bastionmail.co.uk/spear.txt<br />sa-update --import spear.txt<br />Add &ldquo;spear.bastionmail.com&rdquo; to the list of channels that you update from (either add &ldquo;--channel spear.bastionmail.com&rdquo; to your sa-update command, or add &ldquo;spear.bastionmail.com&rdquo; to the file pointed to by the sa-update &ldquo;--channelfile&rdquo; command-line option).<br />Add the key &ldquo;06EF70A3&rdquo; to the trusted keys (either add &ldquo;--gpgkey 06EF70A3&rdquo; to your sa-update command, or add &ldquo;06EF70A3&rdquo; to the file pointed to by the sa-update &ldquo;--gpgkeyfile&rdquo; command-line option).<br />Then these SpamAssassin rules will be automatically updated every time your system runs the &ldquo;sa-update&rdquo; command, which is daily on a standard MailScanner system.</span>]]></content:encoded></item><item><title>Hyper-V CentOS 5.2 Distributions</title><dc:creator>Jules@Jules.FM</dc:creator><category>Hyper-V</category><category>Linux</category><dc:date>2008-12-28T09:59:15+00:00</dc:date><link>http://www.jules.fm/Logbook/files/hyperv_centos52.html#unique-entry-id-42</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/hyperv_centos52.html#unique-entry-id-42</guid><content:encoded><![CDATA[<strong>Update:</strong> 22nd May 2009 - This does <strong>not</strong> work with CentOS 5.3 or RedHat 5.3.<strong><br />Update:</strong> 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.<br /><br />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.<br /><br />The root password for each of them is the word &ldquo;password&rdquo; (without the quotes).<br /><br />To construct each one, go to the relevant directories for<br />the <a href="http://www.jules.fm/files/CentOS5.2.x86/" rel="self">x86</a> (32-bit)<br />or <a href="http://www.jules.fm/files/CentOS5.2.x64/" rel="self">x64</a> (64-bit)<br />versions and download all the zip files in the directory.<br /><br />Unpack each zip file and you will have a string of files partaa, partab, partac and so on. <br /><br />On a Windows system you can join these together into the .vhd file with the command (in a normal Command Prompt window)<br /><strong>x86:</strong> copy /B partaa+partab+partac+partad+partae+partaf+partag+partah+partai+partaj+partak+partal CentOS5.2.x86.vhd<br />(all of that should be on one line)<br /><strong>x64:</strong> copy /B partaa+partab+partac+partad+partae+partaf+partag+partah+partai+partaj+partak+partal CentOS5.2.x64.vhd<br />(all of that should be on one line)<br /><br />You should end up with a single .vhd file with the following size:<br /><strong>x86:</strong> 16173279232 bytes<br /><strong>x64:</strong> 18433592832 bytes<br /><br />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.<br /><br />Remember that the root password is the word &ldquo;password&rdquo; (without the quotes).<br /><br />You will need to edit these files<br /><ul class="disc"><li>/etc/hosts</li><li>/etc/resolv.conf</li><li>/etc/sysconfig/network</li></ul><br />and then run the command &ldquo;setup&rdquo; to configure the IP address and so on of the &ldquo;seth0&rdquo; network device. Then just reboot and you&rsquo;re away.<br /><br />If you need a graphical interface with a mouse and such, then change the &ldquo;3&rdquo; to a &ldquo;5&rdquo; in the &ldquo;default&rdquo; line in /etc/inittab and reboot. But I would advise leaving it in text-only mode.<br />]]></content:encoded></item><item><title>Creating iPhone Ringtones</title><dc:creator>Jules@Jules.FM</dc:creator><category>iPhone</category><dc:date>2008-12-18T19:42:03+00:00</dc:date><link>http://www.jules.fm/Logbook/files/iphone_ringtones.html#unique-entry-id-41</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/iphone_ringtones.html#unique-entry-id-41</guid><content:encoded><![CDATA[The easiest way to create iPhone ringtones is to use <a href="http://audiko.net/" rel="self">audiko.net</a>.<br /><br />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 &ldquo;Library&rdquo; heading in your iTunes.]]></content:encoded></item><item><title>Speeding Up Ext3 Filesystems</title><dc:creator>Jules@Jules.FM</dc:creator><category>Linux</category><dc:date>2008-12-02T15:22:30+00:00</dc:date><link>http://www.jules.fm/Logbook/files/speedup_ext3.html#unique-entry-id-40</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/speedup_ext3.html#unique-entry-id-40</guid><content:encoded><![CDATA[There are a few things you can do to speed up the ext3 filesystem, and when combined they make a lot of difference!<br /><br />Firstly, you probably don&rsquo;t need to store the &ldquo;last accessed&rdquo; time of every file and/or every directory, so add &ldquo;noatime,nodiratime&rdquo; to the mount options in /etc/fstab (add a comma then that text straight after the word &ldquo;defaults&rdquo; in the relevant line of /etc/fstab).<br /><br />Furthermore, you can optimise the caching of data in the filesystem by adding &ldquo;data=writeback&rdquo; to the mount options in /etc/fstab. This is pretty safe as long as your system isn&rsquo;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.<br /><br />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.<br /><ol class="arabic-numbers"><li>Unmount the filesystem, having stopped all processes that are using it, with &ldquo;umount /dev/sdb1&rdquo;.</li><li>Change the directory indexing with &ldquo;tune2fs -O dir_index /dev/sdb1&rdquo;.</li><li>Re-build all the existing directories with &ldquo;e2fsck -D /dev/sdb1&rdquo;.</li><li>Reboot, or else remount the filesystem and start the processes back up. Rebooting is simpler :-)</li><li>That should make your filesystem run a whole lot faster!</li></ol>]]></content:encoded></item><item><title>Overnight EyeTV Exports</title><dc:creator>Jules@Jules.FM</dc:creator><category>Mac</category><category>AppleScript</category><dc:date>2008-11-06T09:38:07+00:00</dc:date><link>http://www.jules.fm/Logbook/files/scheduled_eyetv_exports.html#unique-entry-id-39</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/scheduled_eyetv_exports.html#unique-entry-id-39</guid><content:encoded><![CDATA[I have taken a script written by someone else and totally re-written it.<br />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 &ldquo;<title> - <recorded date>.<extension>&rdquo;. You get to choose the format, and the extension.<br /><br />You can download the <a href="http://www.jules.fm/Logbook/files/JKFEyeTVExport.scpt" rel="self">JKFEyeTVExport.scpt script here</a> or the <a href="http://www.jules.fm/Logbook/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!]]></content:encoded></item><item><title>Installing Mailman</title><dc:creator>Jules@Jules.FM</dc:creator><category>Email</category><dc:date>2008-10-20T09:26:28+01:00</dc:date><link>http://www.jules.fm/Logbook/files/install_mailman.html#unique-entry-id-38</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/install_mailman.html#unique-entry-id-38</guid><content:encoded><![CDATA[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&rsquo;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&rsquo;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 />]]></content:encoded></item><item><title>Converting Majordomo Mailing Lists to Mailman</title><dc:creator>Jules@Jules.FM</dc:creator><category>Email</category><dc:date>2008-10-20T09:08:07+01:00</dc:date><link>http://www.jules.fm/Logbook/files/convert_majordomo_to_mailman.html#unique-entry-id-37</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/convert_majordomo_to_mailman.html#unique-entry-id-37</guid><content:encoded><![CDATA[This appears to be a fairly common problem, with very few decent solutions to the problem. It&rsquo;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="http://www.jules.fm/Logbook/files/majordomo2mailman" rel="self">majordomo2mailman script here</a>.<br /><br />If you run it as &ldquo;majordomo2mailman --help&rdquo; 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&rsquo;t forget to make the <a href="http://www.jules.fm/Logbook/files/majordomo2mailman" rel="self">majordomo2mailman</a> script executable after you have downloaded it!]]></content:encoded></item><item><title>Windows Vista Speed-Ups</title><dc:creator>Jules@Jules.FM</dc:creator><category>Windows Vista</category><dc:date>2008-09-16T20:41:43+01:00</dc:date><link>http://www.jules.fm/Logbook/files/vista_speedup.html#unique-entry-id-36</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/vista_speedup.html#unique-entry-id-36</guid><content:encoded><![CDATA[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&rsquo;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&rsquo;s all been drawn with a 5-year old&rsquo;s crayon.</li></ul><br />The main one to hit is Start / Administration Tools / Services. If you don&rsquo;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&rsquo;s the idea anyway. If you don&rsquo;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&rsquo;s still to start up applications, but that&rsquo;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&rsquo;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&rsquo;ll get it going. Look up &ldquo;Speed up Windows Vista&rdquo; in Google too, that will give you some tricks I have also done and forgotten about here.<br />]]></content:encoded></item><item><title>MailScanner Watermarks from Exchange Server 2007</title><dc:creator>Jules@Jules.FM</dc:creator><category>MailScanner</category><category>Exchange Server 2007</category><dc:date>2008-08-29T10:33:25+01:00</dc:date><link>http://www.jules.fm/Logbook/files/mailscanner_watermarks_exchange.html#unique-entry-id-35</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/mailscanner_watermarks_exchange.html#unique-entry-id-35</guid><content:encoded><![CDATA[Someone has written a very handy utility for Exchange Server 2007 so that it can generate MailScanner-compatible &ldquo;watermarks&rdquo;. This means that you don&rsquo;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&rsquo;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 />]]></content:encoded></item><item><title>Hyper-V Linux Integration Components RC2 Download</title><dc:creator>Jules@Jules.FM</dc:creator><category>Hyper-V</category><category>Linux</category><dc:date>2008-07-28T15:44:11+01:00</dc:date><link>http://www.jules.fm/Logbook/files/hyper-v_lic_rc2_download.html#unique-entry-id-34</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/hyper-v_lic_rc2_download.html#unique-entry-id-34</guid><content:encoded><![CDATA[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>.]]></content:encoded></item><item><title>Speeding Up ext3 Filesystems</title><dc:creator>Jules@Jules.FM</dc:creator><category>Linux</category><dc:date>2008-07-22T12:13:19+01:00</dc:date><link>http://www.jules.fm/Logbook/files/speed_up_ext3.html#unique-entry-id-33</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/speed_up_ext3.html#unique-entry-id-33</guid><content:encoded><![CDATA[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>]]></content:encoded></item><item><title>Hyper-V Linux Integration Components in x86_64 and x86 CentOS and RHEL</title><dc:creator>Jules@Jules.FM</dc:creator><category>Hyper-V</category><category>Windows Server 2008</category><dc:date>2008-07-22T11:53:41+01:00</dc:date><link>http://www.jules.fm/Logbook/files/win2008_linuxic_rc2_rhel.html#unique-entry-id-32</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/win2008_linuxic_rc2_rhel.html#unique-entry-id-32</guid><content:encoded><![CDATA[<span style="color:#000000;font-weight:bold; ">Update: 16th February 2010:</span><span style="color:#000000;"> Added &ldquo;unifdef&rdquo; 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="http://www.jules.fm/Logbook/files/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 &ldquo;setup&rdquo; 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&rsquo;s start by doing that. Using the &ldquo;Media&rdquo; menu in the Hyper-V &ldquo;Connect...&rdquo; window, choose &ldquo;DVD Drive&rdquo;, &ldquo;Insert Disk...&rdquo; and select the Linux Integration Components ISO image, usually called &ldquo;LinuxIC.iso&rdquo;. 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 &ldquo;<span style="font:12px Courier, mono; ">yum update</span>&ldquo;.<br /><br />Next, get the kernel source for the exact version of kernel you are using. &ldquo;rpm -q kernel&rdquo; will tell you what kernel you have. Remember that a &ldquo;yum update&rdquo; may change the kernel version. For this example HOWTO, &ldquo;rpm -q kernel&rdquo; produced &ldquo;kernel-2.6.18-92.el5&rdquo; so my kernel source RPM will be &ldquo;kernel-2.6.18-92.el5.src.rpm&rdquo;.<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&rsquo;t worry. If you didn&rsquo;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&rsquo;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 &ldquo;%build&rdquo; 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 &ldquo;xen&rdquo; version of the kernel. So find the line that defined &ldquo;%define with_xen&rdquo; and change it to<br /><span style="font:12px Courier, mono; ">%define with_xen 1<br /></span>and the line containing &ldquo;%define with_xenonly&rdquo;, 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 &ldquo;Not enough random bytes available&rdquo; then do this to make some more entropy:<br /><br />   1. Press Ctrl-Z<br />   2. Run the command &ldquo;du / ; grep -r hello /&ldquo;<br />   3. Let this run for 30 seconds or so, then press Ctrl-C<br />   4. Run the command &ldquo;fg&rdquo;<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 &ldquo;rpm&rdquo; commands give any errors, add &ldquo;--force&rdquo; 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 &ldquo;kernel&rdquo; 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 &ldquo;<span style="font:12px Courier, mono; ">kernel</span>&rdquo; line, and make sure it says &ldquo;<span style="font:12px Courier, mono; ">pae</span>&rdquo; and not &ldquo;<span style="font:12px Courier, mono; ">32</span>&rdquo;.<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 &ldquo;build&rdquo; link in the /lib/modules/ directory will be broken, and you need a module build environment.<br /><br />To fix the &ldquo;build&rdquo; 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 &ldquo;kernel-devel&rdquo;. Change that to &ldquo;kernel-xen-devel&rdquo; 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 &ldquo;Legacy Network Adapter&rdquo;) to your virtual machine, you should find that &ldquo;ifconfig -a&rdquo; outputs a new network device &ldquo;seth0&rdquo;. 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 &ldquo;yum&rdquo; 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&rsquo;s it!</h2>You can now use the &ldquo;setup&rdquo; command to configure the networking and then edit the /etc/sysconfig/network-scripts/ifcfg-*eth* files to configure the new &ldquo;seth0&rdquo; interface to start on boot, and configure the old legacy &ldquo;eth0&rdquo; interface to not start on boot (set &ldquo;ONBOOT=no&rdquo; 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 />]]></content:encoded></item><item><title>Hyper-V Virtual LANs</title><dc:creator>Jules@Jules.FM</dc:creator><category>Hyper-V</category><category>Networks</category><dc:date>2008-07-17T16:25:08+01:00</dc:date><link>http://www.jules.fm/Logbook/files/hyperv_vlans.html#unique-entry-id-31</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/hyperv_vlans.html#unique-entry-id-31</guid><content:encoded><![CDATA[<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 &ldquo;parent domain&rdquo;. 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&rsquo;t go over-riding its choices here unless you know exactly what you&rsquo;re doing, in which case you probably aren&rsquo;t reading this anyway :-) Don&rsquo;t assign IPv4 or IPv6 to a network interface because you think Windows forgot and got it wrong. It didn&rsquo;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&rsquo;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&rsquo;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&rsquo;s really all there is to it. If you can&rsquo;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&rsquo;s not much that can go wrong.<br /></span>]]></content:encoded></item><item><title>Mac Internet Sharing to Squeezebox or XBox 360</title><dc:creator>Jules@Jules.FM</dc:creator><category>Mac</category><dc:date>2008-06-26T10:00:36+01:00</dc:date><link>http://www.jules.fm/Logbook/files/mac_squeezebox_connection_sharing.html#unique-entry-id-28</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/mac_squeezebox_connection_sharing.html#unique-entry-id-28</guid><content:encoded><![CDATA[<span style="color:#000000;">If you try to share a Mac internet connection, and you can&rsquo;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&rsquo;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: &ldquo;cp /etc/bootpd.plist /tmp/&ldquo;</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 &ldquo;reply_threshold_seconds&rdquo; 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: &ldquo;sudo cp /tmp/bootpd.plist /etc/&ldquo;</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&rsquo;s Internet Sharing.</span><span style="color:#000000;"><br /></span>]]></content:encoded></item><item><title>Extracting OLE Objects from Word Documents</title><dc:creator>Jules@Jules.FM</dc:creator><category>Linux</category><dc:date>2008-06-12T18:12:37+01:00</dc:date><link>http://www.jules.fm/Logbook/files/extract_ole_from_word.html#unique-entry-id-27</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/extract_ole_from_word.html#unique-entry-id-27</guid><content:encoded><![CDATA[<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&rsquo;s very simple. Not this code doesn&rsquo;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>]]></content:encoded></item><item><title>Talking from sendmail to Exchange over SMTP auth</title><dc:creator>Jules@Jules.FM</dc:creator><category>Exchange Server 2007</category><category>Email</category><dc:date>2008-06-05T09:42:13+01:00</dc:date><link>http://www.jules.fm/Logbook/files/51ad979fd5f3fde2c2306ef25f54261e-26.html#unique-entry-id-26</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/51ad979fd5f3fde2c2306ef25f54261e-26.html#unique-entry-id-26</guid><content:encoded><![CDATA[<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 &ldquo;Using sendmail as a client with AUTH&rdquo;. 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>]]></content:encoded></item><item><title>RedHat 5.2 yum update errors</title><dc:creator>Jules@Jules.FM</dc:creator><category>Linux</category><dc:date>2008-06-04T17:21:18+01:00</dc:date><link>http://www.jules.fm/Logbook/files/redhat_5.2_yum_update#unique-entry-id-25</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/redhat_5.2_yum_update#unique-entry-id-25</guid><content:encoded><![CDATA[<span style="color:#000000;font-weight:bold; ">If you install RedHat 5.2 and try to do a &ldquo;yum update&rdquo; command, you get loads of errors about libxslt and libvorbis.<br /><br />To solve these errors, type the following commands before you do a &ldquo;yum update&rdquo;.<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 &ldquo;yum update&rdquo; works as expected.</span>]]></content:encoded></item><item><title>Obfuscating Email Addresses for Web Pages</title><dc:creator>Jules@Jules.FM</dc:creator><category>Email</category><dc:date>2008-06-03T14:04:05+01:00</dc:date><link>http://www.jules.fm/Logbook/files/77c6523ab328a5647f1273213efc42ef-24.html#unique-entry-id-24</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/77c6523ab328a5647f1273213efc42ef-24.html#unique-entry-id-24</guid><content:encoded><![CDATA[<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>]]></content:encoded></item><item><title>X Windows ModeLine Generators</title><dc:creator>Jules@Jules.FM</dc:creator><category>X Windows</category><dc:date>2008-06-03T14:01:51+01:00</dc:date><link>http://www.jules.fm/Logbook/files/dcb9d083cd4acd8c21682444f1488c08-23.html#unique-entry-id-23</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/dcb9d083cd4acd8c21682444f1488c08-23.html#unique-entry-id-23</guid><content:encoded><![CDATA[<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>]]></content:encoded></item><item><title>X in Solaris 10 on a MacBook</title><dc:creator>Jules@Jules.FM</dc:creator><category>X Windows</category><category>Solaris</category><category>Mac</category><dc:date>2008-06-03T14:00:50+01:00</dc:date><link>http://www.jules.fm/Logbook/files/8fc0bc587ae9a43f62575c1f6ebc4114-22.html#unique-entry-id-22</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/8fc0bc587ae9a43f62575c1f6ebc4114-22.html#unique-entry-id-22</guid><content:encoded><![CDATA[<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>]]></content:encoded></item><item><title>X in CentOS/RHEL 5 on a MacBook</title><dc:creator>Jules@Jules.FM</dc:creator><category>X Windows</category><category>Mac</category><dc:date>2008-06-03T13:59:25+01:00</dc:date><link>http://www.jules.fm/Logbook/files/248cadde2b88af75b1b73786b0f7bc94-21.html#unique-entry-id-21</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/248cadde2b88af75b1b73786b0f7bc94-21.html#unique-entry-id-21</guid><content:encoded><![CDATA[<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>]]></content:encoded></item><item><title>X in CentOS/RHEL 4 on a MacBook Pro</title><dc:creator>Jules@Jules.FM</dc:creator><category>X Windows</category><category>Mac</category><dc:date>2008-06-03T13:58:24+01:00</dc:date><link>http://www.jules.fm/Logbook/files/fd7592f81a8c142715684fe6d8905f96-20.html#unique-entry-id-20</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/fd7592f81a8c142715684fe6d8905f96-20.html#unique-entry-id-20</guid><content:encoded><![CDATA[<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>]]></content:encoded></item><item><title>X in Ubuntu on a MacBook Pro</title><dc:creator>Jules@Jules.FM</dc:creator><category>X Windows</category><category>Mac</category><dc:date>2008-06-03T13:56:37+01:00</dc:date><link>http://www.jules.fm/Logbook/files/x_ubuntu_macbook_pro.html#unique-entry-id-19</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/x_ubuntu_macbook_pro.html#unique-entry-id-19</guid><content:encoded><![CDATA[<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>]]></content:encoded></item><item><title>Exchange Server 2007 Rejecting Unknown Recipients</title><dc:creator>Jules@Jules.FM</dc:creator><category>Exchange Server 2007</category><dc:date>2008-06-02T12:21:15+01:00</dc:date><link>http://www.jules.fm/Logbook/files/exchange_anti-spam.html#unique-entry-id-18</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/exchange_anti-spam.html#unique-entry-id-18</guid><content:encoded><![CDATA[<span style="color:#000000;">Start up the Exchange Management Shell<br /></span><span style="color:#000000;font-weight:bold; ">cd &ldquo;C:\Program Files\Microsoft\Exchange Server\Scripts&rdquo;<br />.\install-AntiSpamAgents.ps1</span><span style="color:#000000;"><br /><br />Open up Start / Administrative Tools / Services.<br />Restart the &ldquo;Microsoft Exchange Transport&rdquo; service.<br /><br />Start up the Exchange Management Console.<br />In Organization Configuration / Hub Transport, there is now an &ldquo;Anti-spam&rdquo; tab.<br />Right-click on &ldquo;Recipient Filtering&rdquo; and choose &ldquo;Properties&rdquo;.<br />In the &ldquo;Blocked Recipients&rdquo; tab, tick the tick box &ldquo;Block messages sent to recipients not listed in the Global Address List&rdquo;.<br />Click &ldquo;Okay&rdquo;.<br /><br />You may well want to disable some of the anti-spam tests if you do not intend to use them.<br /></span>]]></content:encoded></item><item><title>Windows 2008 Hyper-V and Solaris 10</title><dc:creator>Jules@Jules.FM</dc:creator><category>Hyper-V</category><dc:date>2008-04-04T12:20:40+01:00</dc:date><link>http://www.jules.fm/Logbook/files/hyper-v_solaris_broken.html#unique-entry-id-17</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/hyper-v_solaris_broken.html#unique-entry-id-17</guid><content:encoded><![CDATA[<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&rsquo;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 &lsquo;Legacy Network Adapter&rsquo; 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&rsquo;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&frac12; 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&rsquo;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 &ldquo;Failsafe&rdquo; 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 &ldquo;$ISADIR/&rdquo; from the boot entries in this file. If you don&rsquo;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&rsquo;ve fixed this, &ldquo;reboot&rdquo; 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&rsquo;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 &ldquo;Failsafe&rdquo; boot option which will eventually take you to a single-user prompt. You can&rsquo;t edit the services database now, but you can edit the script that actually tries to start up the graphical login :-) So edit /a/lib/svc/method/svc-kdmconfig and change the file to do &ldquo;exit $SMF_EXIT_OK&rdquo; just before it sets the &ldquo;TERM&rdquo; 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 &ldquo;$ISADIR/&rdquo; strings in it, and so will fail to boot. So as soon as the GRUB menu appears on the screen, choose the &ldquo;Failsafe&rdquo; boot option. Say &ldquo;y&rdquo; when it asks you about mounting the real Solaris installation on &ldquo;/a&rdquo;. 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 &ldquo;$ISADIR/&rdquo; from the new section it added to the bottom of the list. Save and exit, then &ldquo;reboot&rdquo;. 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. :-(<br /></span>]]></content:encoded></item><item><title>Hyper-V beta Linux Integration Components</title><dc:creator>Jules@Jules.FM</dc:creator><category>Hyper-V</category><dc:date>2008-03-31T12:19:51+01:00</dc:date><link>http://www.jules.fm/Logbook/files/hyper-v_beta_download.html#unique-entry-id-16</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/hyper-v_beta_download.html#unique-entry-id-16</guid><content:encoded><![CDATA[<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&rsquo;t think Microsoft can complain much about me doing this, it&rsquo;s just a temporary solution for the few people who need it now and cannot wait until the new version is released.<br /></span>]]></content:encoded></item><item><title>Activating Windows Server 2008</title><dc:creator>Jules@Jules.FM</dc:creator><category>Windows Server 2008</category><dc:date>2008-03-11T12:19:14+00:00</dc:date><link>http://www.jules.fm/Logbook/files/activating_win_2008.html#unique-entry-id-15</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/activating_win_2008.html#unique-entry-id-15</guid><content:encoded><![CDATA[<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 :-)</span>]]></content:encoded></item><item><title>Exchange Server 2007 Availability and Autodiscover Service</title><dc:creator>Jules@Jules.FM</dc:creator><category>Exchange Server 2007</category><dc:date>2008-03-06T12:18:37+00:00</dc:date><link>http://www.jules.fm/Logbook/files/exchange_availability_autodiscovery.html#unique-entry-id-14</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/exchange_availability_autodiscovery.html#unique-entry-id-14</guid><content:encoded><![CDATA[<span style="color:#000000;">The availability service only works with client computers that are members of the domain, or else it can&rsquo;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&rsquo;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 &ldquo;EXCH&rdquo; | fl<br /><br />You might as well tick the &ldquo;require secure channel (SSL)&rdquo; 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 &lsquo;on&rsquo; with<br />Set-AutodiscoverVirtualDirectory -Identity &ldquo;EXCHANGE3\Autodiscover (autodiscover)&rdquo; -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 &ldquo;Test Email configuration&rdquo;. 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>]]></content:encoded></item><item><title>Exchange Server 2007 &#x201c;Service Unavailable&#x201d; on /public</title><dc:creator>Jules@Jules.FM</dc:creator><category>Exchange Server 2007</category><dc:date>2008-03-03T12:18:06+00:00</dc:date><link>http://www.jules.fm/Logbook/files/exchange_unavailable_2.html#unique-entry-id-13</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/exchange_unavailable_2.html#unique-entry-id-13</guid><content:encoded><![CDATA[<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 &ldquo;Service Unavailable&rdquo; error.<br /></span>]]></content:encoded></item><item><title>ButYouDontLookSick.com</title><dc:creator>Jules@Jules.FM</dc:creator><category>Sick</category><dc:date>2008-03-02T12:17:25+00:00</dc:date><link>http://www.jules.fm/Logbook/files/the_spoons_theory.html#unique-entry-id-12</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/the_spoons_theory.html#unique-entry-id-12</guid><content:encoded><![CDATA[<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&rsquo;s called the &ldquo;Spoons Theory&rdquo; 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 :-) It&rsquo;s only a couple of sides and will just take a few minutes to read, it&rsquo;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&rsquo;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&rsquo;t try to explain this, how could I ever expect her to understand. If I can&rsquo;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 &ldquo;Here you go, you have Lupus&rdquo;. 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&rsquo;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 &ldquo;loss&rdquo; 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&rsquo;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 &ldquo;spoons&rdquo; you are starting with. It doesn&rsquo;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&rsquo;ve wanted more "spoons" for years and haven&rsquo;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&rsquo;t just get up. You have to crack open your eyes, and then realize you are late. You didn&rsquo;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&rsquo;t, you can't take your medicine, and if you don&rsquo;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&rsquo;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&rsquo;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&rsquo;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 &ldquo;spoons&rdquo; are gone, they are gone. Sometimes you can borrow against tomorrow&rsquo;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&rsquo;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&rsquo;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&rsquo;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&rsquo;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&rsquo;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 &ldquo;Christine, How do you do it? Do you really do this everyday?&rdquo; 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&rsquo;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, &ldquo;I have learned to live life with an extra spoon in my pocket, in reserve. You need to always be prepared&rdquo;  <br /><br />It&rsquo;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 &ldquo;Don&rsquo;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&rsquo;t have room for wasted time, or wasted &ldquo;spoons&rdquo; and I chose to spend this time with you.&rdquo;  <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&rsquo;t just good for understanding Lupus, but anyone dealing with any disability or illness. Hopefully, they don&rsquo;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; ">&copy; 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 &ldquo;The Spoon Theory&rdquo; 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>]]></content:encoded></item><item><title>Exchange Server 2007 &#x201c;Service Unavailable&#x201d; on OWA</title><dc:creator>Jules@Jules.FM</dc:creator><category>Exchange Server 2007</category><dc:date>2008-03-02T12:16:53+00:00</dc:date><link>http://www.jules.fm/Logbook/files/exchange_service_unavailable.html#unique-entry-id-11</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/exchange_service_unavailable.html#unique-entry-id-11</guid><content:encoded><![CDATA[<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 &ldquo;ISAPI Filter &lsquo;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\\aspnet_filter.dll&rsquo;&rdquo;.<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 &ldquo;ASP.NET 2.0, 64-bit version&rdquo; 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>]]></content:encoded></item><item><title>Entourage 2008 and Exchange Server 2007</title><dc:creator>Jules@Jules.FM</dc:creator><category>Exchange Server 2007</category><category>Mac</category><dc:date>2008-02-29T12:16:14+00:00</dc:date><link>http://www.jules.fm/Logbook/files/entourage_2008_exchange.html#unique-entry-id-10</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/entourage_2008_exchange.html#unique-entry-id-10</guid><content:encoded><![CDATA[<span style="color:#000000;">Out of the box, even with an Exchange 2007 server installation including support for Exchange 2003 and earlier (ie. a &ldquo;legacy&rdquo; install), Entourage 2008 simply does not connect to the Exchange 2007 Server. That&rsquo;s pretty poor in my view, they are both the latest versions of Microsoft&rsquo;s own products, and it just does not work. Pretty crap :-(<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 &ldquo;Administrative Tools&rdquo;.<br /><br />Delete the Exchange subweb from IIS on the Exchange 2007 server.<br />This only deletes it from IIS, it doesn&rsquo;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 &ldquo;exchange3&rdquo; which should be replaced with the name of your Exchange 2007 server. This is assuming your Exchange 2007 server is called &ldquo;exchange3&rdquo;, 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 &ldquo;Edit Account&rdquo; 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&rsquo;t work, try this instead:<br />Account ID: ECS2000\jkf-private<br />where &ldquo;ECS2000&rdquo; is your Active Directory domain name, and &ldquo;jkf-private&rdquo; is your username. Again, leave the &ldquo;Domain&rdquo; and &ldquo;Password&rdquo; blank, it will prompt you for the password. Never type in anything into the &ldquo;Domain&rdquo; 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>]]></content:encoded></item><item><title>Building an MX the Easy Way</title><dc:creator>Jules@Jules.FM</dc:creator><category>Email</category><category>MX</category><dc:date>2008-02-06T12:15:35+00:00</dc:date><link>http://www.jules.fm/Logbook/files/easy_build_mx.html#unique-entry-id-9</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/easy_build_mx.html#unique-entry-id-9</guid><content:encoded><![CDATA[<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 &lsquo;dump 0f - /dev/sda3&rsquo; | ( cd /mnt2 && restore -rf - )<br />umount /mnt2<br />mount /dev/sda3 /mnt2<br />ssh crow.ecs.soton.ac.uk &lsquo;dump 0f - /dev/mapper/VolGroup00-LogVol00&rsquo; | ( cd /mnt2 && restore -rf - )<br />or else<br />ssh crow.ecs.soton.ac.uk &lsquo;cd / && tar clf - .&rsquo; | ( 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 &ldquo;e2label&rdquo; 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 &ldquo;MailScanner --lint&rdquo; 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>]]></content:encoded></item><item><title>USB Serial Port Adapter for Mac</title><dc:creator>Jules@Jules.FM</dc:creator><category>Mac</category><dc:date>2008-01-22T12:14:59+00:00</dc:date><link>http://www.jules.fm/Logbook/files/mac_serial_port.html#unique-entry-id-8</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/mac_serial_port.html#unique-entry-id-8</guid><content:encoded><![CDATA[<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 &ldquo;port install minicom&rdquo;. You have to bodge one little bit that doesn&rsquo;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>]]></content:encoded></item><item><title>MAPI/CDO with Exchange Server 2007</title><dc:creator>Jules@Jules.FM</dc:creator><category>Exchange Server 2007</category><dc:date>2008-01-08T12:14:11+00:00</dc:date><link>http://www.jules.fm/Logbook/files/exchange_mapi.html#unique-entry-id-7</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/exchange_mapi.html#unique-entry-id-7</guid><content:encoded><![CDATA[<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>]]></content:encoded></item><item><title>Applying Exchange Server 2007 Service Pack 1</title><dc:creator>Jules@Jules.FM</dc:creator><category>Exchange Server 2007</category><dc:date>2008-01-05T12:13:30+00:00</dc:date><link>http://www.jules.fm/Logbook/files/exchange_sp1.html#unique-entry-id-6</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/exchange_sp1.html#unique-entry-id-6</guid><content:encoded><![CDATA[<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&rsquo;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! :-( The service pack doesn&rsquo;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&rsquo;s very badly titled and so most of the obvious search terms don&rsquo;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 &ldquo;.Net 2 SP1&rdquo;. 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&rsquo;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&rsquo;s wasn&rsquo;t due to our campus network managers&rsquo; 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 &ldquo;https required&rdquo; 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 &ldquo;I can&rsquo;t get at the webmail&rdquo; complaints.</span>]]></content:encoded></item><item><title>Hyper-V Integration Components in x86_64 CentOS and RHEL</title><dc:creator>Jules@Jules.FM</dc:creator><category>Hyper-V</category><dc:date>2008-01-02T12:12:46+00:00</dc:date><link>http://www.jules.fm/Logbook/files/hyper-v_rhel_centos.html#unique-entry-id-5</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/hyper-v_rhel_centos.html#unique-entry-id-5</guid><content:encoded><![CDATA[<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&rsquo;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. &ldquo;rpm -qa | grep kernel&rdquo; will tell you what kernel-headers you have. Remember that a &ldquo;yum update&rdquo; 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&rsquo;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 &ldquo;buildid&rdquo; 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 &ldquo;unifdef&rdquo; in GNU make. So find the line that sets &ldquo;with_headers&rdquo; 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 &ldquo;%build&rdquo; 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&rsquo;t match what Microsoft think it is. So do a &ldquo;rpmbuild -bp kernel-2.6.spec&rdquo; 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&rsquo;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 &ldquo;%build&rdquo; line, add a chunk of shell script that does something like this: (I am assuming here that you know what you&rsquo;re doing :-)<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 &ldquo;/boot&rdquo; leading path, as all paths must be given relative to /boot. You *do* need the leading &ldquo;/&rdquo; 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 &ldquo;hiddenmenu&rdquo; 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 &ldquo;build&rdquo; 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 &ldquo;modprobe vmbus&rdquo; command. And you should find that &ldquo;ifconfig&rdquo; outputs a new network device &ldquo;seth0&rdquo;. 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&rsquo;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>]]></content:encoded></item><item><title>TomTom Update for HP iPAQ</title><dc:creator>Jules@Jules.FM</dc:creator><category>Tomtom</category><category>iPAQ</category><dc:date>2008-01-02T12:11:46+00:00</dc:date><link>http://www.jules.fm/Logbook/files/tomtom_ipaq.html#unique-entry-id-4</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/tomtom_ipaq.html#unique-entry-id-4</guid><content:encoded><![CDATA[<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 &ldquo;on your computer&rdquo; list of objects you can install to your PDA.</span>]]></content:encoded></item><item><title>Hyper-V Integration Components in SuSE 10</title><dc:creator>Jules@Jules.FM</dc:creator><category>Hyper-V</category><dc:date>2007-12-17T12:10:47+00:00</dc:date><link>http://www.jules.fm/Logbook/files/hyper-v_suse10.html#unique-entry-id-3</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/hyper-v_suse10.html#unique-entry-id-3</guid><content:encoded><![CDATA[<span style="color:#000000;">Make sure you install the Xen kernels in the installation process. Else install them separately, packages are kernel-xen or kernel-xen-pae.<br />Copy the whole of the LinuxIC.iso to /opt/linux_ic<br />cd /opt/linux_ic<br />perl setup.pl x2v /boot/grub/menu.lst<br />Reboot the VM.<br />perl setup.pl drivers<br /><br />Once you&rsquo;ve done that, &ldquo;ifconfig&rdquo; should list the &ldquo;seth0&rdquo; ethernet interface; &ldquo;cat /proc/scsi/scsi&rdquo; should list the hard disk device. Create a partition with fdisk and mkfs.ext3 /dev/sda1 to build a new partition.<br /><br />There is also a HAL patch for the device manager in X, but you don&rsquo;t need that.<br /><br />If on an x86_64 system, you need to build a new kernel. Do all of this instead of the x2v line above.<br />Install the kernel_source package.<br />cd /usr/src/linux<br />cp /opt/linux_ic/patch/x2v-x64-sles.patch .<br />patch -l p1 < x2v-x64-sles.patch<br />cp /boot/config-....-xen .patch<br />make oldconfig<br />make vmlinuz<br />cp vmlinux /boot/vmliuz-...-xen<br />cd /opt/linux_ic<br />perl setup.pl x2v /boot/grub/menu.lst<br />Reboot the VM<br />perl setup.pl drivers<br /><br /></span>]]></content:encoded></item><item><title>Windows Hyper-V Beta</title><dc:creator>Jules@Jules.FM</dc:creator><category>Hyper-V</category><dc:date>2007-12-14T12:09:38+00:00</dc:date><link>http://www.jules.fm/Logbook/files/hyper-beta_win2008rc1.html#unique-entry-id-2</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/hyper-beta_win2008rc1.html#unique-entry-id-2</guid><content:encoded><![CDATA[<span style="color:#000000;">Windows Server 2008 RC1 with Hyper-V Beta is publicly available here:<br /><br /></span><span style="color:#000000;"><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=8F22F69E-D1AF-49F0-8236-2B742B354919&displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyId=8F22F69E-D1AF-49F0-8236-2B742B354919&displaylang=en</a></span><span style="color:#000000;"><br /><br /> <br /><br />Beta Integration Components for Linux available through connect.microsoft.com:<br /><br /></span><span style="color:#000000;"><a href="https://connect.microsoft.com/site/sitehome.aspx?SiteID=495">https://connect.microsoft.com/site/sitehome.aspx?SiteID=495</a></span><span style="color:#000000;"><br />is the home page for them.<br /><br />The &ldquo;Downloads&rdquo; link on the left contains the links to where you get it all. Only support for SLES 10 at the moment. Expect RHEL5 support in a later beta.<br /><br />Can&rsquo;t get Windows Server Backup to see that my backup disk is on-line. I have told it that it is to use the disk as a backup drive. But still won&rsquo;t recognise it. Now testing to see if a reboot will fix it.<br />No good. The drive now has a different GUID. &ldquo;wbadmin restore catalog&rdquo; command doesn&rsquo;t work, always gives error about -backupTarget: setting missing, despite its being there. Bug.<br />Can&rsquo;t file a bug report as there&rsquo;s no icon on the desktop which is how we&rsquo;re supposed to do it. You would have thought they might have seen this one! :-(<br />I&rsquo;ll ask JL about filing bug reports.<br /><br /></span>]]></content:encoded></item><item><title>Windows PE</title><dc:creator>Jules@Jules.FM</dc:creator><category>Windows PE</category><dc:date>2007-12-13T12:07:45+00:00</dc:date><link>http://www.jules.fm/Logbook/files/winpe_howto.html#unique-entry-id-1</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/winpe_howto.html#unique-entry-id-1</guid><content:encoded><![CDATA[<span style="font:14px Futura-Medium; color:#000000;">Creating a bootable CD-ROM of WinPE is here: </span><span style="color:#000000;"><a href="http://technet2.microsoft.com/WindowsVista/en/library/7a47a896-ca59-4586-b688-3a3c098d34241033.mspx?mfr=true">http://technet2.microsoft.com/WindowsVista/en/library/7a47a896-ca59-4586-b688-3a3c098d34241033.mspx?mfr=true</a></span><span style="color:#000000;"><br /></span><span style="font:14px Futura-Medium; color:#000000;"><br />Adding things to the bootable CD-ROM image: </span><span style="color:#000000;"><a href="http://www.svrops.com/svrops/articles/winvistape2.htm">http://www.svrops.com/svrops/articles/winvistape2.htm</a></span><span style="color:#000000;"><br /></span>]]></content:encoded></item><item><title>Windows Server 2008</title><dc:creator>Jules@Jules.FM</dc:creator><category>Windows Server 2008</category><dc:date>2007-12-13T12:03:20+00:00</dc:date><link>http://www.jules.fm/Logbook/files/windows_2008_blog.html#unique-entry-id-0</link><guid isPermaLink="true">http://www.jules.fm/Logbook/files/windows_2008_blog.html#unique-entry-id-0</guid><content:encoded><![CDATA[<span style="color:#555555;">Summary only available when permalinks are enabled.</span>]]></content:encoded></item></channel>
</rss>