<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>micolous.id.au &#187; Computers</title>
	<atom:link href="http://micolous.id.au/archives/category/computers/feed/" rel="self" type="application/rss+xml" />
	<link>http://micolous.id.au</link>
	<description>the result of a blogging accident</description>
	<lastBuildDate>Wed, 21 Jul 2010 11:08:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Clearing the &#8220;Mounted Devices&#8221; database in Windows</title>
		<link>http://micolous.id.au/archives/2010/04/15/clearing-the-mounted-devices-database-in-windows/</link>
		<comments>http://micolous.id.au/archives/2010/04/15/clearing-the-mounted-devices-database-in-windows/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 23:01:44 +0000</pubDate>
		<dc:creator>micolous</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://micolous.id.au/?p=238</guid>
		<description><![CDATA[Something I found useful when doing image deployment of Windows: being able to clear the mount devices list.  In some instances, Windows will not boot properly or it will boot from the wrong device until you do it.  You don&#8217;t need to do this with sysprep (it does it for you), however sysprep [...]]]></description>
			<content:encoded><![CDATA[<p>Something I found useful when doing image deployment of Windows: being able to clear the mount devices list.  In some instances, Windows will not boot properly or it will boot from the wrong device until you do it.  You don&#8217;t need to do this with sysprep (it does it for you), however sysprep won&#8217;t work in an iSCSI configuration due to redetecting the network card and resetting all the iSCSI configuration.</p>
<p>For this, you can use the chntpw utility.</p>
<p>First of all, mount the Windows partition.</p>
<p>Then crack it open with chntpw&#8217;s registry editor, and remove the entries.</p>
<pre lang="txt" line="1"># chntpw -e WINDOWS/system32/config/system
chntpw version 0.99.6 080526 (sixtyfour), (c) Petter N Hagen
Hive <WINDOWS/system32/config/system> name (from header): <SYSTEM>
ROOT KEY at offset: 0x001020 * Subkey indexing type is: 686c <lh>
Page at 0x54f000 is not 'hbin', assuming file contains garbage at end
File size 5767168 [580000] bytes, containing 1254 pages (+ 1 headerpage)
Used for data: 108658/5500560 blocks/bytes, unused: 1836/21680 blocks/bytes.

Simple registry editor. ? for help.

> cd MountedDevices</pre>
<p>You can now show the mounted devices table.  This one is populated with a bunch of stuff:</p>
<pre lang="txt" line="1">\MountedDevices> ls
Node has 0 subkeys and 8 values
  size     type            value name             [value if type DWORD]
    12  REG_BINARY        <\??\Volume{a04045a6-480a-11df-8146-806d6172696f}>
    12  REG_BINARY        <\??\Volume{a04045a7-480a-11df-8146-806d6172696f}>
   238  REG_BINARY        <\??\Volume{a04045a8-480a-11df-8146-806d6172696f}>
   164  REG_BINARY        <\??\Volume{a04045a9-480a-11df-8146-806d6172696f}>
    12  REG_BINARY        <\DosDevices\C:>
    12  REG_BINARY        <\DosDevices\D:>
   164  REG_BINARY        <\DosDevices\A:>
   238  REG_BINARY        <\DosDevices\E:>
</pre>
<p>Removing it is as simple as the &#8216;delallv&#8217; command.</p>
<pre lang="txt" line="1">\MountedDevices> delallv

\MountedDevices> q

Hives that have changed:
 #  Name
 0  <WINDOWS/system32/config/system>
Write hive files? (y/n) [n] : y
 0  <WINDOWS/system32/config/system> - OK
</pre>
<p>And then it&#8217;s done.  You can unmount the partition, and boot Windows again.</p>
]]></content:encoded>
			<wfw:commentRss>http://micolous.id.au/archives/2010/04/15/clearing-the-mounted-devices-database-in-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux iSCSI COW Images, and Windows integration.</title>
		<link>http://micolous.id.au/archives/2010/01/23/linux-iscsi-cow-images-and-windows-integration/</link>
		<comments>http://micolous.id.au/archives/2010/01/23/linux-iscsi-cow-images-and-windows-integration/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 10:38:32 +0000</pubDate>
		<dc:creator>micolous</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Lanning]]></category>

		<guid isPermaLink="false">http://micolous.id.au/?p=164</guid>
		<description><![CDATA[More stuff for RetroLAN PCs, yay!
I&#8217;ve now got all the RetroLAN PCs running out of a copy-on-write image.  This means I now have a single 4GB &#8220;base&#8221; image with an installation of Windows XP, instead of having 10 of them.  It also means it is very trivial to reset the machine&#8217;s disk images, [...]]]></description>
			<content:encoded><![CDATA[<p>More stuff for RetroLAN PCs, yay!</p>
<p>I&#8217;ve now got all the RetroLAN PCs running out of a copy-on-write image.  This means I now have a single 4GB &#8220;base&#8221; image with an installation of Windows XP, instead of having 10 of them.  It also means it is very trivial to reset the machine&#8217;s disk images, which I achieved with a bit of scripting. </p>
<p>First up, I needed to setup the copy-on-write images through `device-mapper`.  This program is designed to let you setup software RAID, but it also allows snapshotting disks to provide a backup of a device at a point in time.  Unfortunately, `dmsetup` doesn&#8217;t support accessing file images, only actual devices, so I need to create some loopback devices first.</p>
<pre lang="bash" line="1"># setup loop0 as the "master" image, and mark it as read-only so no changes ever get written back.
losetup -r /dev/loop0 /store/master.img
# we need to get the size of the image in sectors for use later on.
cow_size=`blockdev --getsize /dev/loop0`</pre>
<p>The next step is to create a blank image file and loopback device to commit changes to.  For my setup, I created 200MB images.  Be aware of things like disk-based caches and automatic defragmentation will use up the allocated space very quickly, and when you run out of space in this file further writes will not be allowed, and Windows will soon crash with a blue screen of death.  (More on dealing with this in a bit)</p>
<pre lang="bash" line="1"># remove any existing COW image
rm /store/pc-1.cow

# create a new 200MB image (it's actually comes out 5% more than stated, but it allows for overheads in the filesystem)
dd if=/dev/zero of=/store/pc-1.cow bs=1M count=200

# now hook it to a loopback device
losetup /dev/loop1 /store/pc-1.cow</pre>
<p>Now we have two devices, `/dev/loop0` which contains the master image, and `/dev/loop1` which will contain any changes made to the disk.  The next step is to use dmsetup to create a `device mapper` which will layer the COW image ontop of the original image.</p>
<pre lang="bash" line="1"># create the cow!
echo "0 ${cow_size} snapshot /dev/loop0 /dev/loop1 p 64" | dmsetup create pc1</pre>
<p>This will create a device called `/dev/mapper/pc1`.  You can use it in your iSCSI setup with something like this in your `/etc/ietd.conf`:</p>
<pre lang="txt" line="1">Target iqn.2010-01.lan.someplace.iscsihost:pc1
        Lun 0 Path=/dev/mapper/pc1,Type=fileio</pre>
<p>You can then start `ietd`.</p>
<p>Now the next part is writing a script to let you reset the COW images.  `ietd` does not like you changing things while it is running, so you&#8217;ll need to make sure your script suspends all disk activity before blanking out the COW image.  Something like this:</p>
<pre lang="bash" line="1"># disconnect the COW image #1
ietadm --op delete --tid 1 --lun 0

# suspend dm activity
dmsetup suspend pc1

# clear the cow cache
dd if=/dev/zero of=/dev/loop1

# reload the cow table
master="/dev/loop0"
cow_size=`blockdev --getsize ${master}`
echo "0 ${cow_size} snapshot ${master} /dev/loop1 p 64" | dmsetup reload pc1

# resume dm activity
dmsetup resume pc1

# reconnect the COW image #1
ietadm --op new --tid 1 --lun 0 --params Path=/dev/mapper/pc1</pre>
<p>You could change this script around so that it allows you to pass in a PC number as a command-line argument, and then hook in a CGI script that will call it to reset it remotely.  In my setup, I&#8217;m using gPXE to boot from iSCSI, but it can also be used to access a URL via HTTP.  So your CGI script reads in the request IP address, and if it is one of the resettable machines, it will reset it&#8217;s COW image.  Then it sends back a gPXE script instructing it to run a DOS .com file that will reboot the computer.  For this to work you need to have your CGI script execute the command as the superuser (root).</p>
<p>One of the things about the COWs is if you reset them or they become full while Windows is running, Windows will very soon crash, and refuse to boot up again.  To better inform both yourself and users about the usage levels, you can read the information from `dmsetup`:</p>
<pre lang="bash" line="1"># dmsetup status pc8
0 8385930 snapshot 55296/409600</pre>
<p>In this example, it is indicating that the full image is 8385930 sectors, and 55296 of 409600 sectors are used in the COW image.  So I wrote a Python CGI script that reports this in a parsable fashion to clients:</p>
<pre lang="python" line="1" escaped="true">#!/usr/bin/env python

print "Content-Type: text/plain\r\n\r"

from os import environ
from subprocess import Popen, PIPE

ip = environ['REMOTE_ADDR']
d = int(ip.split(".")[3])
if d &gt;= 41 and d &lt;= 54:
  machine = d - 40
  try:
    p = Popen(('/sbin/dmsetup', 'status', 'retrocow%d' % machine), stdout=PIPE, stderr=PIPE)
    stdout, stderr = p.communicate()
    use, total = stdout.split(' ')[3].split('/')
    use, total = long(use), long(total)
    print "OK %d %d" % (use, total)
  except:
    print "ERR Problem getting parsing information"
else:
  # return error
  print "ERR Not a RetroLAN Machine"
</pre>
<p>For me, the RetroLAN machines have IPs ending in 41 to 54.  That corresponds to their PC number (retro-01 to retro-14).  This script outputs the following text file when requested via CGI if successful:</p>
<pre>OK 55296 409600</pre>
<p>This isn&#8217;t very usable for the end user, so I wrote a .NET 2.0 app called `CowBell` that runs in the system tray showing the percentage of COW usage, and notifies them if they&#8217;re over 75% usage (which means they will crash soon).  I&#8217;ve made <a href="/static/projects/cowbell/cowbell-1.0-src.7z">source code available for download</a>, which you&#8217;ll need to modify `frmMain.cs` line 37 to include the path to where you put the CGI script, and uncomment the line otherwise it <strong>will not compile</strong>.  If you make modifications to this program I do ask that you share your improvements with me.</p>
<p>This is the message that constantly pops up when you&#8217;re over 75% usage:</p>
<p><img src="http://micolous.id.au/static/projects/cowbell/cowbell.png" alt="" /></p>
<p>The application refreshes it&#8217;s status every 10 seconds, and if you right-click the icon it shows the COW usage in sectors.</p>
]]></content:encoded>
			<wfw:commentRss>http://micolous.id.au/archives/2010/01/23/linux-iscsi-cow-images-and-windows-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamically changing Windows&#8217; wallpaper based on hostname</title>
		<link>http://micolous.id.au/archives/2010/01/20/dynamically-changing-windows-wallpaper-based-on-hostname/</link>
		<comments>http://micolous.id.au/archives/2010/01/20/dynamically-changing-windows-wallpaper-based-on-hostname/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 18:06:12 +0000</pubDate>
		<dc:creator>micolous</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Lanning]]></category>

		<guid isPermaLink="false">http://micolous.id.au/?p=159</guid>
		<description><![CDATA[I have a situation where I&#8217;ve got 14 machines booting Windows XP over iSCSI, and they&#8217;ve all got the same computer name set, and they each need to have a different wallpaper set on each machine.  This runs the &#8220;RetroLAN&#8221; machines at StreetGeek in the new setup, to make it much easier to roll [...]]]></description>
			<content:encoded><![CDATA[<p>I have a situation where I&#8217;ve got 14 machines booting Windows XP over iSCSI, and they&#8217;ve all got the same computer name set, and they each need to have a different wallpaper set on each machine.  This runs the &#8220;RetroLAN&#8221; machines at StreetGeek in the new setup, to make it much easier to roll out updates to machines.  They&#8217;re all using the same base image, and this will get restored if things get broken.  I&#8217;m using gPXE to boot the machines in the first place, and I&#8217;ve disabled NetBIOS over TCP/IP (to avoid the problem where Windows complains if two computers have the same name), and manually set the DNS search order (because when you boot Windows over iSCSI, Windows&#8217; own DHCP client doesn&#8217;t get activated).</p>
<p>So I hacked together this VBScript that does a reverse DNS lookup on the IP, and uses that to get a specific wallpaper for the machine using a bit of copy-paste from the &#8216;net.  The script requires you use <a href="http://www.jsware.net/jsware/scripts.php5#jssys">JSWare&#8217;s JSSys</a> addin for VBScript, so make sure you have that DLL installed and registered before trying to use my script.  There&#8217;s a way to do it without JSWare using the registry, but it only applies after logging out and logging in again.</p>
<p>In the code it will try to grab the wallpaper from <code>\\logres\wallpapers</code>.  You&#8217;ll need to change this for your setup.  To activate this, I added it to the Startup folder, so about 5 seconds after login, the wallpaper is automatically changed to be for the correct machine.</p>
<p>One minor caveat: Apparently my network card was network card #2, and there was no #1.  You can check what ID your card is in <code>HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkCards\</code>, and change the line in the script appropriately.</p>
<pre lang="vb" line="1">' Automatically setup wallpaper (autowallpaper.vbs)

Function GetFQDN(ipaddress)
  set sh = createobject("wscript.shell")
  set fso = createobject("scripting.filesystemobject")
  Set Env = sh.Environment("PROCESS")

  workfile = fso.gettempname
  sh.run "%comspec% /c nslookup " &#038; ipaddress &#038; "  > " &#038; workfile,0,true
  set sh = nothing
  set ts = fso.opentextfile(workfile)
  data = split(ts.readall,vbcr)
  ts.close

  set ts = nothing
  fso.deletefile workfile
  set fso = nothing
  for n = 0 to ubound(data)
    if instr(data(n),"Name") then
      parts = split(data(n),":")
      hostname= trim(cstr(parts(1)))
      Exit For
    end if
    hostname = "could not resolve IP address"
  next

  GetFQDN = hostname
End Function

Const HKCU = &#038;H80000001
Const HKLM = &#038;H80000002

Set objReg = GetObject("winmgmts:\\.\root\default:StdRegProv")

' Get NIC service name
objReg.GetStringValue HKLM, "Software\Microsoft\Windows NT\CurrentVersion\NetworkCards\2", "ServiceName", nicService

' Get IP address
objReg.GetMultiStringValue HKLM, "System\CurrentControlSet\Services\TCPIP\Parameters\Interfaces\" &#038; nicService, "IPAddress", addrs

' Resolve name
fullname = GetFQDN(addrs(0))
shortname = split(fullname, ".")(0)

Dim objOps
Set objOps = CreateObject("JSSys3.Ops")

r = objOps.SetWallpaper("\\logres\wallpapers\" &#038; shortname &#038; ".bmp", "center")
</pre>
]]></content:encoded>
			<wfw:commentRss>http://micolous.id.au/archives/2010/01/20/dynamically-changing-windows-wallpaper-based-on-hostname/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dvoraking a Logitech G15/G110/G19</title>
		<link>http://micolous.id.au/archives/2009/06/16/dvoraking-a-logitech-g15/</link>
		<comments>http://micolous.id.au/archives/2009/06/16/dvoraking-a-logitech-g15/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 07:03:06 +0000</pubDate>
		<dc:creator>micolous</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://micolous.id.au/?p=116</guid>
		<description><![CDATA[Update 2010-04-05: These instructions also work for the Logitech G110 Gaming Keyboard, as the keys and their sockets appear to be identical.  It may also work for the Logitech G19 Keyboard, as it appears to be a G110 without a screen.
So, I&#8217;ve had my Logitech G15 Gaming Keyboard for a while.  However, one [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update 2010-04-05</strong>: These instructions also work for the <a href="http://www.logitech.com/index.cfm/keyboards/keyboard/devices/5902&#038;cl=au,en">Logitech G110 Gaming Keyboard</a>, as the keys and their sockets appear to be identical.  It may also work for the <a href="http://www.logitech.com/index.cfm/keyboards/keyboard/devices/4956&#038;cl=au,en">Logitech G19 Keyboard</a>, as it appears to be a G110 without a screen.</p>
<p>So, I&#8217;ve had my <a href="http://www.logitech.com/index.cfm/keyboards/keyboard/devices/3498&#038;cl=au,en">Logitech G15 Gaming Keyboard</a> for a while.  However, one annoying thing about it (like other Logitech keyboards), it has the annoying feature of a different socket for the F and J keys, probably intended as hints for if you take all the keys off for cleaning.  Unlike my previous Logitech wireless keyboard which had the socket rotated 90 degrees, the G15 has a small plastic key/guide which means you have to insert the F, U, J and H keys upside-down if you want to use the Dvorak keyboard layout instead of QWERTY (because you can only seem to order Dvorak keyboards online, at great expense).</p>
<p><img src="/static/resc/g15key.png" alt="" /></p>
<p>This is a diagram of the G15&#8217;s key sockets, looking straight down.  The one on the left is a normal key, while the one on the right is for a F or J key.  I didn&#8217;t use a photo here because my keyboard is so horribly dirty and a close-up shot of the socket makes me ashamed&#8230;</p>
<p><img src="/static/resc/g15screwdriver.jpg" alt="" /></p>
<p>You can easily scrape off the key/gude with a flat-head screwdriver.  You just have to lever the screwdriver up and down a little bit and that key scrapes right off, allowing you to put in keys from either type of socket.  Only a small amount of plastic needs to come off, and you don&#8217;t have to push very hard.</p>
<p><img src="/static/resc/g15finished.jpg" alt=""/></p>
<p>The end result is a G15 without any upside-down keys.  There&#8217;s no disadvantage to doing this to your keyboard, and it&#8217;ll continue to work even if you switch your keyboard back to QWERTY again.</p>
]]></content:encoded>
			<wfw:commentRss>http://micolous.id.au/archives/2009/06/16/dvoraking-a-logitech-g15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows CE 2.0 and OpenSSH</title>
		<link>http://micolous.id.au/archives/2006/08/22/windows-ce-20-and-openssh/</link>
		<comments>http://micolous.id.au/archives/2006/08/22/windows-ce-20-and-openssh/#comments</comments>
		<pubDate>Tue, 22 Aug 2006 11:43:58 +0000</pubDate>
		<dc:creator>micolous</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Toys]]></category>

		<guid isPermaLink="false">http://micolous.id.au/archives/2006/08/22/windows-ce-20-and-openssh/</guid>
		<description><![CDATA[I&#8217;ve found a [good howto][sshwin20howto] on installing OpenSSH on Windows CE 2.0.  The only problem with it, is that you require an ActiveSync partnership with the device in order to insert the nessesary registry keys.  I&#8217;ve found a way to install OpenSSH *without* needing any ActiveSync partership.  I did this on a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve found a [good howto][sshwin20howto] on installing OpenSSH on Windows CE 2.0.  The only problem with it, is that you require an ActiveSync partnership with the device in order to insert the nessesary registry keys.  I&#8217;ve found a way to install OpenSSH *without* needing any ActiveSync partership.  I did this on a HP 320LX H/PC (which runs WinCE 2.0 on SH3).</p>
<p>To do this, install [Registry Explorer][rexplrce11] on your device.  If you don&#8217;t want to boot Windows (or can&#8217;t), you can use [this copy of the files][rexplrce11tbz2], which has the CAB files you&#8217;ll need to install it to your device.  You can then [follow the HOWTO][sshwin20howto], then use Registry Explorer to add in the registry entries.  Registry Explorer uses a GUI similar to the standard Win32 Registry Editor.</p>
<p>For convienience, I&#8217;ve created [a copy of my registry entries][unixreg], which you can import using the Registry Explorer software.  Be aware that I store my UNIX root in `\Storage Card\unix`, due to limited internal memory.  I&#8217;ve found that SSH will still try to store it&#8217;s `known_hosts` file in the `\unix` directory, so you&#8217;ll need to create that directory anyway (just leave it empty &#8211; don&#8217;t copy your UNIX root into it).  The space used by the `known_hosts` file is minimal.  My registry dump also uses the default username of &#8220;michael&#8221;, which you&#8217;ll need to change so it matches what you wrote in your `/etc/passwd` file.</p>
<p>One final thing is that ncurses apps (like irssi) seem to have some problems with the terminal type being set to &#8216;wince&#8217;.  I&#8217;m presently working on getting a working terminfo file for Linux systems, so that they can properly handle OpenSSH on WinCE.</p>
<p>[sshwin20howto]: http://www.eskimo.com/%7Ewebguy/service/openssh.html<br />
[rexplrce11tbz2]: /static/wince/rexplrce-1.1.tar.bz2<br />
[unixreg]: /static/wince/unix.reg<br />
[rexplrce11]: http://www.tucows.com/preview/32379</p>
]]></content:encoded>
			<wfw:commentRss>http://micolous.id.au/archives/2006/08/22/windows-ce-20-and-openssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bridged OpenVPN and DHCP</title>
		<link>http://micolous.id.au/archives/2006/08/16/bridged-openvpn-and-dhcp/</link>
		<comments>http://micolous.id.au/archives/2006/08/16/bridged-openvpn-and-dhcp/#comments</comments>
		<pubDate>Tue, 15 Aug 2006 15:36:17 +0000</pubDate>
		<dc:creator>micolous</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://micolous.id.au/archives/2006/08/16/bridged-openvpn-and-dhcp/</guid>
		<description><![CDATA[I&#8217;ve setup a VPN recently, and I created a large bridged VPN.  I had a little problem though &#8211; the DHCP server from the remote network was leaking through to mine, causing all sorts of troubles, as my network devices were trying to use the remote router, which I had of course blocked VPN [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve setup a VPN recently, and I created a large bridged VPN.  I had a little problem though &#8211; the DHCP server from the remote network was leaking through to mine, causing all sorts of troubles, as my network devices were trying to use the remote router, which I had of course blocked VPN access to the Internet.</p>
<p>So, lets take a hypothetical network:</p>
<p> * eth0: Internet Connection (192.168.0.2)<br />
 * eth1: LAN Connection<br />
 * tap0: VPN Connection<br />
 * br0: Bridge between eth1 and tap0 (10.0.1.1)</p>
<p>Now, your local DHCP server is saying the subnet is 10.0.0.0/8, and it gives out IPs in the range 10.0.1.100 &#8211; 10.0.1.200.  The remote end (10.0.2.1) gives out 10.0.2.100 &#8211; 10.0.2.200, and sets the routing accordingly.  I found running the DHCP server on the bridge was a problem, particulary with the ISC DHCP server, as it uses raw sockets, thus making it quite hard to try and firewall out.  The solution?</p>
<p>Set an IP for eth1 locally (and remotely), that is in the range, say 10.254.1.254, with the netmask 255.255.255.252.  Bind your DHCP server (in /etc/default/dhcp3-server) to eth1.  Then restart the DHCP servers, and voila.  The DHCP servers only give out addresses locally.  To your clients it will appear that 10.254.1.254 is giving out IP addresses.</p>
]]></content:encoded>
			<wfw:commentRss>http://micolous.id.au/archives/2006/08/16/bridged-openvpn-and-dhcp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s been a while.</title>
		<link>http://micolous.id.au/archives/2005/10/03/its-been-a-while/</link>
		<comments>http://micolous.id.au/archives/2005/10/03/its-been-a-while/#comments</comments>
		<pubDate>Mon, 03 Oct 2005 05:07:00 +0000</pubDate>
		<dc:creator>micolous</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.ratemyrackmountedserver.com/blog/archives/2005/10/03/its-been-a-while/</guid>
		<description><![CDATA[It has been a while since I last blogged, so I&#8217;d better write a long update on what&#8217;s happening.
ratemyrackmountedserver.com expired while I was moving.  I decided to leave it dead, as this site kinda bellyflopped anyway.  So there&#8217;s lots of nice broken links out there to my site&#8230; I apologise in advance for [...]]]></description>
			<content:encoded><![CDATA[<p>It has been a while since I last blogged, so I&#8217;d better write a long update on what&#8217;s happening.</p>
<p>ratemyrackmountedserver.com expired while I was moving.  I decided to leave it dead, as this site kinda bellyflopped anyway.  So there&#8217;s lots of nice broken links out there to my site&#8230; I apologise in advance for all that.  I was stuck on dialup for about three weeks<br />
at my new house.  It took a little longer to get DSL provisioned than I had planned.  So it&#8217;s back to mic.kyed.com for a little while.</p>
<p><em>iPrimus is the shittyest ISP ever</em>.  I like how their prepaid access kits were easy to use, but due to them having nonstandard Windows servers running the dialins, I had to use Windows as a gateway for a while.  So I ended up setting up a Windows 2003 box with ICS for a few weeks.  That&#8217;s now been wiped, and was probably comprimised during that time.  Good on them.  Also due to having to put a Windows server in the way and iPrimus&#8217; very strict 5 hour session limits, my website was down for a while.</p>
<p>I&#8217;m now back up again, as of about two weeks ago.  I just haven&#8217;t been bothered to write anything <img src='http://micolous.id.au/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Now I think I may finally be bothered to get a new domain for myself&#8230; maybe.  Once I find some spare money.</p>
<p>On the Saturday after my birthday, I had a rather subdued 18th party, due to the fact half of us had the flu.  Oh well, good to catch up with some people.  Last Saturday I went to <a href="http://www.lanparty-central.com">LPC</a> with some friends.  It was good, though much bigger and slightly more serious than I&#8217;m used to.  I wasn&#8217;t too worried, and we (myself, sherman, Hotsuma, Eecore) managed to trick Thrashbarg into having Windows running on his computer.  It was only Windows 95, but Thrashbarg&#8217;s earlier zealotry on IRC made it still rather good.  He argues that it didn&#8217;t count because it wasn&#8217;t installed on his hard drive.  Oh well <img src='http://micolous.id.au/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://micolous.id.au/archives/2005/10/03/its-been-a-while/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another shedlan.</title>
		<link>http://micolous.id.au/archives/2005/08/14/another-shedlan/</link>
		<comments>http://micolous.id.au/archives/2005/08/14/another-shedlan/#comments</comments>
		<pubDate>Sun, 14 Aug 2005 11:56:21 +0000</pubDate>
		<dc:creator>micolous</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.ratemyrackmountedserver.com/blog/archives/2005/08/14/another-shedlan/</guid>
		<description><![CDATA[I went to another shedlan this weekend.  Much was discussed, much files were moved, and many classic games were played, from around the time I was born!  It was freaky in that regard.
ratemyrackmountedserver.com
notice: I&#8217;m moving house next weekend, so the server will be down during this time&#8230; until I get my internet connection [...]]]></description>
			<content:encoded><![CDATA[<p>I went to another shedlan this weekend.  Much was discussed, much files were moved, and many classic games were played, from around the time I was born!  It was freaky in that regard.</p>
<p>ratemyrackmountedserver.com<br />
notice: I&#8217;m moving house next weekend, so the server will be down during this time&#8230; until I get my internet connection setup again.  Lets hope I can actually get ADSL2+. <img src='http://micolous.id.au/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://micolous.id.au/archives/2005/08/14/another-shedlan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows fun.</title>
		<link>http://micolous.id.au/archives/2005/07/21/windows-fun/</link>
		<comments>http://micolous.id.au/archives/2005/07/21/windows-fun/#comments</comments>
		<pubDate>Thu, 21 Jul 2005 06:33:09 +0000</pubDate>
		<dc:creator>micolous</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.ratemyrackmountedserver.com/blog/archives/2005/07/21/windows-fun/</guid>
		<description><![CDATA[I just tried to do something really simple &#8211; create a new NTFS partition on my laptop in the ~4GB of unpartitioned space on it.  Unfortunately that is too complicated for Windows, and so it wipes out the root of my Linux partition while it&#8217;s at it.  Yay, now I get to do [...]]]></description>
			<content:encoded><![CDATA[<p>I just tried to do something really simple &#8211; create a new NTFS partition on my laptop in the ~4GB of unpartitioned space on it.  Unfortunately that is too complicated for Windows, and so it wipes out the root of my Linux partition while it&#8217;s at it.  Yay, now I get to do two OS installs instead of just one.</p>
<p>Windows x64 is still a pain in the butt, programs rarely exit cleanly if they are more complex than a web browser.  Games randomly reboot the machine during play.  What the hell, why can a program like that be able to do that?   Isn&#8217;t that what all this data execution prevention crap is all about?</p>
<p>I don&#8217;t know how Windows users put up with this.</p>
]]></content:encoded>
			<wfw:commentRss>http://micolous.id.au/archives/2005/07/21/windows-fun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>World of Warcraft 1.5.0 Patch FIX!</title>
		<link>http://micolous.id.au/archives/2005/06/10/world-of-warcraft-150-patch-fix/</link>
		<comments>http://micolous.id.au/archives/2005/06/10/world-of-warcraft-150-patch-fix/#comments</comments>
		<pubDate>Thu, 09 Jun 2005 20:13:43 +0000</pubDate>
		<dc:creator>micolous</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.ratemyrackmountedserver.com/blog/archives/2005/06/10/world-of-warcraft-150-patch-fix/</guid>
		<description><![CDATA[This is a fix I&#8217;m using to patch World of Warcraft to version 1.5.0, US English version.  I found it on the forums, I can&#8217;t remember the exact location, though these are all my own words.  The fact of the matter is that I&#8217;m fed up with their completely unhelpful technical support, and [...]]]></description>
			<content:encoded><![CDATA[<p>This is a fix I&#8217;m using to patch World of Warcraft to version 1.5.0, US English version.  I found it on the forums, I can&#8217;t remember the exact location, though these are all my own words.  The fact of the matter is that I&#8217;m fed up with their completely unhelpful technical support, and this way seems to be a really fast way to do a reinstall without loosing your settings or having to go through four CDs and taking three hours to install.</p>
<h1>Step One: Revert to a 1.0.0 Patch State</h1>
<p>This is easy to do.  Move <code>Data/Patch.MPQ</code> and <code>wow-patch.mpq</code> to another folder, such as your desktop.  Then <a href="http://ftp.blizzard.com/pub/WoW/other/Repair.zip">grab the WoW Repair Utility</a>, and run it.  There will be a warning telling you that your WoW install will need to be reverted to an older version.  Click yes, and leave the checker to run in the background.</p>
<h1>Step Two: Download the 1.5.0 Patch.</h1>
<p>The Blizzard downloader is a really simple (to the point of bad) BitTorrent client.  To get the patch, and not have to run that downloader or the Blizzard Updater (probably you&#8217;re still running<br />
the repair utility at this point), I&#8217;m suggesting you run another BitTorrent client to do the download.  Blizzard don&#8217;t officially supply users with the torrents, however a guild called <a href="http://nomadictendencies.org">Nomadic Tendancies</a> have <a href="http://www.nomadictendencies.org/patcher.html" title="An essay about the patcher and the problems with it">extracted</a> <a href="http://nomadictendencies.org.nyud.net:8090/torrents/WoW-1.5.0-enUS-patch.exe.torrent" title="The 1.5.0 Patch Torrent file">the torrent from the downloader</a>.  Download this in your favourite client.  You can verify that it is official because the tracker should be <code>http://us.tracker.worldofwarcraft.com:3724/announce</code>.  Now that the tracker is up, your download should run smoothly, and in the case of ADSL connections, if you&#8217;re using a properly configured client it won&#8217;t saturate your uplink to the point you can&#8217;t download anything.</p>
<p><a href="http://www.ratemyrackmountedserver.com/~michael/wow-1.5.0-patchdl.png">Screenshot of downloading the 1.5.0 patch in Azureus on WinXP, using Blizzard&#8217;s tracker.  The speeds are rather good for me, so you may go faster (or slower!) <img src='http://micolous.id.au/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </a></p>
<h1>Step Three: Patch and Run!</h1>
<p>Wait for the download to finish, and the repair utility to finish.  Then run the patch file.  If all went well, the patch should have completed correctly.  When you click OK on the patch success dialog, WoW will automatically run.  If you use a UI modification such as Cosmos, close WoW then run it&#8217;s executable first before running WoW again to allow it to patch your Interface files again.  At the time of writing, Thottbot is running very slowly, so Cosmos may<br />
time out and fail to upload any presently cached data.</p>
<h1>Should problems arise&#8230;</h1>
<p>I can&#8217;t really be liable for them &#8211; this is a &#8220;might work&#8221; fix, and I apologize if I&#8217;ve made things worse for you.  Try moving the <code>patch.MPQ</code> and <code>wow-patch.mpq</code> files back to their original location.  If you still have problems, try contacting Technical Support, and also try a complete reinstall.</p>
]]></content:encoded>
			<wfw:commentRss>http://micolous.id.au/archives/2005/06/10/world-of-warcraft-150-patch-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
