In Part 1, you should have learned how to set up a TFTP server and configure your router for network booting.

So let’s add some useful stuff to boot from network.

Here’s the list so far. This list will grow with time, so it’s probably easier just to search for when it does get huge. If anyone has any requests, please post in the comments. If anyone has their own instructions, I’ll amend my list (with credit)

-Generic ISO
-Debian Squeeze amd64
-Parted Magic

-Generic ISO
A few notes of caution here, whatever ISO you load needs to be smaller in size than the amount of RAM you have in the system since it loads the entire ISO into memory. This means that it’s probably a BAD idea to load a DVD sized ISO. This is more suited to tools like Memtest (which is listed below). You can load things like UBCD and Hiren’s, but it takes a significantly long time to boot. It’s better to extract the particular tool you need and load that instead of trying to load an entire ISO.

Despite the warnings above, someone out there I know is gonna try loading a Windows ISO. Let me just tell you now that it won’t work. It’s a long story as to why. I’ll cover loading Windows OSes in Part 3.

Here’s a generic template to stick in /srv/tftp/pxelinux.cfg/default:

        MENU LABEL [Name of ISO]
        LINUX memdisk
        append iso initrd=dir/to/iso.iso

Just make the necessary changes to reflect your particular ISO.

If you have a file server to have a central place to store all your ISOs, you may want to use that directory to serve up said ISOs. It would easily beat out copying ISOs to and from your TFTP directory. You may try to symlink your way in, but you’ll quickly find out that you’re chrooted. There is a way to do it: unionfs-fuse.

Before doing anything, you’ll have to mount your file server, which is outside the scope of this post.
Consult the manufacturer of your file server to see what it serves up in terms of protocol and then consult Google.
You’ll need at least read permissions.

First, you’ll have to amend your sources list at /etc/apt/sources.list to include this line:

deb squeeze-backports main

Now let’s do some installing

apt-get update
apt-get -t squeeze-backports install unionfs-fuse

Now set up your directory and overlay your file server’s directory to the iso directory:

mkdir /srv/tftp/iso
unionfs-fuse -o allow_other /directory/to/your/ISOs/on/your/fileserver=RO /srv/tftp/iso

This won’t survive a reboot. If you want it to, you’ll have to amend your /etc/fstab and add this line:

unionfs-fuse#/directory/to/your/ISOs/on/your/fileserver=ro /srv/tftp/iso fuse default_permissions,allow_other 0 0

-Debian Squeeze amd64-
First off, let’s make some directories to make organization easier:

mkdir -p /srv/tftp/debian/squeeze/amd64
cd /srv/tftp/debian/squeeze/amd64

And let’s download the necessary files:


Now let’s populate the default file. Add this to /srv/tftp/pxelinux.cfg/default

LABEL DebianSqueezeamd64
        MENU LABEL Debian Squeeze amd64
        kernel debian/squeeze/amd64/linux
        append initrd=debian/squeeze/amd64/initrd.gz

NOTE: Unless you have a local repo, each time you install you’re gonna be downloading the entire OS from the internet.
I’ll cover how to setup a local repo one of these days. Keeping 100GB on a file server somewhere (to me at least) is worth it if you deploy any sort of VMs at all.

Let’s do the setup:

mkdir /srv/tftp/iso
cd /srv/tftp/iso

And the additions to /srv/tftp/pxelinux.cfg/default

LABEL Memtest
        MENU LABEL Memtest86+
        LINUX memdisk
        append iso initrd=iso/mt420.iso

-Parted Magic-
First, let’s setup the directories:

cd /srv/tftp
mv pmagic-pxe-6.6/pmagic /srv/tftp/
rm -rf pmagic-pxe-6.6

And the additions to /srv/tftp/pxelinux.cfg/default

LABEL pmagic
        MENU LABEL Parted Magic
        LINUX pmagic/bzImage
        INITRD pmagic/initramfs
        APPEND edd=off load_ramdisk=1 prompt_ramdisk=0 rw vga=normal loglevel=9 max_loop=256


NOTE: I’m gonna make reference to “CD” a lot in this post. Replace “CD” with basically any round disc based media that may be appropriate.

Every time someone makes a post somewhere about “burn an ISO to a CD” or “Just make a bootable USB flash drive” I laugh. The amount of work/waste behind it is laughable. Not to mention that once a CD is burnt, it’s forever. Unless you have a rewritable, but those are expensive. Plus you need pesky CD drives. Or spare USB Flash Drives. With the advent of the internet and Dropbox (Shameless referral link. If you don’t have Dropbox by now, please sign up using the link. You get an additional 250MB if you use the referral.) there’s very little use for flash drives any more.
And with those new fangled netbooks not having CD Drives and external CD drives costing money, there’s more and more reason to have your own PXE server.

Having a little server somewhere serving up all sorts of bootable goodness is frickin’ awesome. No more hunting for that stack of blank CDs or using program after program to make that USB Flash Drive bootable. Plus if you have some of the fancier IP phones, you can auto provision the device via TFTP. But that’s another show.
Here’s a step by step tutorial on how to get your own PXE server.

Before you get started, make sure that the DHCP server on your network supports DHCP Option 66 and 67. Mikrotik and pfSense both support this. Consumer routers do not. Some 3rd party firmwares might. I’ll cover configuration on Mikrotik and pfSense. Otherwise you’ll have to also install a DHCP server that does.

First, set up a server with Debian Squeeze on it. It doesn’t matter what kind of server, but in this case a Virtual Machine is probably best. Unless you have a room full of techs, this machine will probably sit idle 99.99% of the time. At least if it’s on a Virtual Server, the host can allocate most of the cycles elsewhere when it’s idle.

Let’s get all the packages installed.

apt-get install tftpd-hpa syslinux unzip

You could use dnsmasq if you like, especially if you have a router with a DHCP server that fails. But for simplicity sake, this tutorial will use tftpd-hpa.

tftpd-hpa is gonna ask where you want to serve files up from. The default location is fine. Change it if you like.
Bonus points if you have a file server mounted and have it serving up files from a directory there. This way you don’t have to screw with SCP. For now, we’ll leave it as /srv/tftp

Let’s make sure TFTP is running.

netstat -a | grep tftp

If you see something like

udp 0 0 *:tftp *:*

you’re good to go.

Time to copy some basic files and make a directory:

mkdir /srv/tftp/pxelinux.cfg
cp /usr/lib/syslinux/pxelinux.0 /srv/tftp
cp /usr/lib/syslinux/menu.c32 /srv/tftp
cp /usr/lib/syslinux/memdisk /srv/tftp
cp /usr/lib/syslinux/mboot.c32 /srv/tftp
cp /usr/lib/syslinux/chain.c32 /srv/tftp
touch /srv/tftp/pxelinux.cfg/default

Now edit /srv/tftp/pxelinux.cfg/default and shove this in it:

default menu.c32
prompt 0
timeout 100

LABEL local
        MENU LABEL --Boot Local Disk--
        LOCALBOOT 0

You’ll need to add more to this file later. This is basically a placeholder until we fill it with useful stuff.
This file basically just tells PXE to boot from the local disk, so you can leave all your machines with network booting enabled. After 10 seconds (or however many 1/10th of a second you specify as a timeout) it automatically chooses whatever label is specified in “ONTIMEOUT”. For most people, Local Disk is best, but if you have some sort of network bootable OS, you’d want to change it to that.

Now is a good time to make note of the IP of your TFTP server, and perhaps give it a static entry in your DHCP server.
For those COMPLETELY new to Linux, the command is:


The TFTP side is finished, so it’s time to setup routers.
As I mentioned, consumer routers don’t have this capability. Some of the better consumer routers that support 3rd party firmwares MAY have this capability, but I cannot guarantee it.
Since I it’s my article, I’m only listing instructions for DH Stamp-of-Approval equipment.
So here’s Mikrotik and pfSense:

Login to your router. Assuming the firmware is up to date enough, just use webfig. Otherwise you’ll have to Winbox.

http://[URL of Mikrotik]/webfig/#IP:DHCP_Server.Networks.1

(If that link doesn’t work, login to Winbox/WebFig -> IP -> DHCP Server -> Networks -> [Double Click First Network]

Set “Next Server” and “Boot File Name” to look like this:

pfSense 2.0:
Log into pfSense.

https://[IP of pfSense]/services_dhcp.php

If that doesn’t work, it’s under Services -> DHCP Server

Scroll down to network booting. Change it to look like this:

That’s pretty much it. Obviously this is only the beginning, since the only thing it currently does is ask you if you want to boot from the local disk. Part 2 will include entries for booting various network tools and how to boot ISOs. Windows will have to wait til Part 3 as they’re always 1000x more complicated than it needs to be.


It’s shockingly easy. Install these 2 applications on your phone:

-Open up File Expert
-Hit the “Network” Tab
-Fill in the Details of your SMB Share:

-Browse for the file you want to watch. I haven’t tested anything beyond “standard” *cough* AVI files found on the interwebs.
-Look for Mirage:

Wait a few seconds and you should see a video playing.
On my Galaxy Tab it’s a touch choppy, but not unwatchable.


Screenshots are awesome. The problem is… finding a decent app to do it. “Screenshot ER” looked promising, but I couldn’t get it working.
Long story short, there’s a built in function to take screenshots:

Hold Back -> Press Power

Screenshots are stored in /sdcard/ScreenCapture/

I wish I would have known about this before I spent a bunch of time screwing with screenshot apps….


I’ve been recommending Mikrotiks quite frequently lately on various forums and stuff and have promised a few people out on the interwebs a small howto.

Since most people are on a budget it seems like, I’ll start easy: Mikrotik 750G

Stuff you’ll need:
-Mikrotik 750G
-Ethernet Cable(s)

While I’m at it, here’s an unbox.

Yup. That’s it. No manuals/CDs/registration cards/extra (or in this case necessary) cords/etc.
Now for the meat of the post. The setup.
Since this guide will be targeting n00bs, I’ll go step by step.

1. Plug the 750G into a live AC outlet with the AC adapter provided
2. Plug in your broadband modem* via Ethernet to Port 1
3. Plug in your computer(s)/WirelessAP/game consoles/etc to Ports 2-5

*Assuming your ISP supports DHCP. If it requires something silly like PPPoE, you’ll have to do a touch more work.

That’s it. Apparently some people think Mikrotiks are complicated.
That’s literally all you need to do to have a fully functional router.

Obviously there’s MUCH more if you want there to be, but this is all you need to do to start with. Part 2 will cover a few more advanced topics.


I’ve been getting my television on the internet for years now. It just makes sense. It’s HD, it’s commercial free and it’s well… free.
Hell I would pay for this kind of service assuming I could get it. Netflix is close (well not in Canada) but it’s still no cigar.

I’ve been also using Usenet for years. $8 a month so I don’t have to maintain a ratio/deal with seedboxes/public trackers/etc? Where do I sign?

Team those 2 with an RSS feed and you have a pretty decent PVR.
Until you install Sickbeard. No more fiddling with show titles, quality, propers etc. Sickbeard automates it all. You enter in your SABNZBD credentials (which already have your usenet credentials) and a show name. It then automagically downloads new episodes. It can even download recent old episodes. It also looks through your previously downloaded episodes and makes sure you have them all.

I’ve been using it for all of 1 day now and it’s the best thing I’ve used since SAB.

My show list is a bit skimpy for now since it does take a good bit of time to add and index shows, plus I’m at a remote location.
When I get a little more permanent again, it’s going to get my full show list and collection.

Bottom Line: Go signup for usenet, install SABNZBD+, Sickbeard and start adding shows.
Might as well kiss that remote good bye.


DRM free too.

See! I buy games. If these were DRM infested, I wouldn’t go near them with a 20ft pole. BECAUSE they are DRM free I am supporting the developer.

I’m a proponent of Piracy. Insert the “Why!?!? You’re stealing from hard working developers!” from the MAFIAA. Simple: There’s no satisfaction guarantee. If I buy a toaster and it sucks because the bread I use doesn’t work with it, I can return it and get a full refund.
Or if it has an undocumented feature of telling me that I can no longer use my deep fryer, I can tell it to go to hell.
No such luck with the Music/Movie/Game/Application community. Once I buy it, it’s a final sale. In fact… it’s so NOT mine that in some instances I can have stuff I’ve legitimately paid for revoked from me without a refund or recourse.

I lost my Steam account a while back because I got screwed by a prepaid credit card. I used it to buy some games on Steam and they somehow forced the transaction even though there wasn’t enough to cover it. Due to some bad math (and underestimation on fees associated with cross border purchases) the card ended up being a few bucks overdrawn. So the prepaid card company initiated a chargeback. Steam doesn’t like chargebacks. So they revoked my account with literally THOUSANDS of dollars worth of games. It wasn’t enough that it was an honest mistake and I could repay it, I had to find a way to add money onto a prepaid credit card that was already closed. To make a long story short, I managed to pull it out of my ass and I have a reinstated account.

Piracy puts me in control. If I feel the content is worthy of continued use, I will pay for it. Otherwise off to /dev/null it goes.

Oh and LOL at the suckers that actually paid for not so quality content and also bit in the ass with something as hilarious like UBISoft’s new DRM platform that demands a constant internet connection.
At least something like Steam is non-intrusive DRM that has an offline mode.

Hear that UBI? I’m actively NOT purchasing your content based on your choice of DRM. I was seriously considering buying Settlers 7 while it was on sale on Steam. That and a few other games. Notice that they’re not on my Steam Games list?
That goes for any other developer that thinks DRM is a good idea.
I did accidentally buy Flock! that did include Securom, but that was due to my own personal negligence. Whoops.

Anyway…. this post has become about DRM and how evil it is.
Go support some devs that do the right thing.
Oh and pay more than $0.01 you cheap jerks.

Gigabit to home
three hundred fifty a month
I have a boner

(LOL Haiku)

Oh and it’s symmetrical.
And uncapped.
In Tennessee.



I’ve been hanging around with someone southern recently and it rekindled my love for sweet tea. It’s SO simple to make, but SO [expletive deleted]ing delicious.

I was in a US 4Pack (aka Costco) and discovered that they have GIANT gallon sized tea bags from Lipton. EIGHT bucks for 48 bags. Team that with about 50lbs of sugar (for $20) and you have enough sweet tea to flood the south.

For those REALLY dense, here’s a recipe:

-1 Gallon sized tea bag
-2.5 cups white sugar (to taste)
-1/2Gallon Water
-3x 1/2 gallon pitchers (4 if you want to be able to rotate)

1. Boil water.
2. Add Sugar
3. Kill heat
4. Add teabag
5. Wait 2 hours
6. Squeeze Tea bag (NO JOKES!)
7. Split tea between 3 1/2 gallon pitchers
8. Fill each with cold water
9. Chill
10. omnomnomnom

Seriously… 2 of us have literally consumed 14lbs of sugar in the last month.
Hilariously… this is about the same as 1x 1L Coke per person per day for a month. Not to mention that I’m drinking literally a gallon and a half of fluid rather than 1/4 gal. So in terms of sugar, it’s 6X more awesome.

In terms of taste, it’s over 9000x more awesome.
Oh and tea apparently has antioxidants. Because fuck you oxidation.


© 2012 The Mind of DH Suffusion theme by Sayontan Sinha