<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-5092411346605811465</id><updated>2009-10-17T22:10:47.611-07:00</updated><title type='text'>Automating a Cup of Joseph</title><subtitle type='html'>If there is return to automating something, I try to get it done!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://automated-joseph.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5092411346605811465/posts/default'/><link rel='alternate' type='text/html' href='http://automated-joseph.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Joe Talbot</name><uri>http://www.blogger.com/profile/02221132811451500667</uri><email>joe.talbot@gmail.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5092411346605811465.post-2295691471615884102</id><published>2008-07-30T10:38:00.000-07:00</published><updated>2008-07-30T13:21:13.045-07:00</updated><title type='text'>Booting from PXE to NFS (using Ubuntu)</title><content type='html'>&lt;a href="http://www.facebook.com/profile.php?id=1270940751"&gt;&lt;span style="color: rgb(51, 204, 0);font-size:180%;" &gt;SILLY ME&lt;/span&gt;&lt;/a&gt; for thinking that the latest greatest release of Ubuntu (&lt;a href="http://mirrors.xmission.com/ubuntu-cd/hardy/"&gt;Hardy Heron 8.04.1&lt;/a&gt;) would support PXE / NFS booting for clients with multiple NICs...  Silly me and a couple days wasted trying to get that &lt;a href="http://en.wikipedia.org/wiki/Shit"&gt;&lt;span style="font-weight: bold; color: rgb(153, 102, 51);"&gt;shit&lt;/span&gt;&lt;/a&gt; to work (even after patching my kernel)...&lt;br /&gt;&lt;br /&gt;Point to note:&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-size:130%;" &gt;DO NOT USE HARDY IF YOU HAVE INTENTIONS OF PXE / NFS BOOTING CLIENTS WITH MODERN NICS!&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;OS Configuration:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I &lt;span style="font-style: italic;"&gt;upgraded&lt;/span&gt; from Hardy 8.04.1 to the release that I know is actually "stable" when they called it "stable" (&lt;a href="http://mirrors.xmission.com/ubuntu-cd/dapper/"&gt;Dapper Drake 6.06.2&lt;/a&gt; AKA my bread and butter lately).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;First up, installation of Dapper...  I installed LAMP default.   Nothing fancy here.   Once installed update your /etc/apt/sources.list so that the universe, multiverse, and restricted sites are no longer commented out.  I also recommend commenting out the deb cdrom from the sources.list so you don't have to worry about having your cd handy.&lt;br /&gt;&lt;br /&gt;Here's what is in my sources.list:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;deb http://us.archive.ubuntu.com/ubuntu/ dapper main restricted&lt;br /&gt;deb-src http://us.archive.ubuntu.com/ubuntu/ dapper main restricted&lt;br /&gt;deb http://us.archive.ubuntu.com/ubuntu/ dapper-updates main restricted&lt;br /&gt;deb-src http://us.archive.ubuntu.com/ubuntu/ dapper-updates main restricted&lt;br /&gt;deb http://us.archive.ubuntu.com/ubuntu/ dapper universe&lt;br /&gt;deb-src http://us.archive.ubuntu.com/ubuntu/ dapper universe&lt;br /&gt;deb http://us.archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse&lt;br /&gt;deb-src http://us.archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse&lt;br /&gt;deb http://security.ubuntu.com/ubuntu dapper-security main restricted&lt;br /&gt;deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted&lt;br /&gt;deb http://security.ubuntu.com/ubuntu dapper-security universe&lt;br /&gt;deb-src http://security.ubuntu.com/ubuntu dapper-security universe&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Now you'll need to update apt and install the required packages by performing:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install dhcp3-server tftpd-hpa syslinux nfs-kernel-server initramfs-tools&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;PXE / TFTP configuration:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(Next two steps not necessary but makes life easier)&lt;br /&gt;1 - Let's setup the tftp locations for files we'll be using:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;sudo mkdir -p /tftpboot/pxelinux.cfg&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;2 - Change the /etc/default/tftpd-hpa file to reflect the new directory and to start on boot.  Here's what mine looks like:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;RUN_DAEMON="yes"&lt;br /&gt;OPTIONS="-l -s /tftpboot"&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Start up your tftp daemon:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;/etc/init.d/tftpd-hpa start&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;TFTP is now up and ready (you can check to see that it is listening by doing:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt; netstat -anu|grep 69&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;PXE is really just a boot loader file ("pxlinux.0" is included in your syslinux package) that allows one to boot via a NIC versus CD-ROM, USB key, hard drive, etc...  Most NICs nowadays support PXE booting and you will need to visit your client(s) to enable and bring your NIC to the top / first of the boot order in the BIOS.&lt;br /&gt;&lt;br /&gt;Copy your "pxelinux.0" file and kernel into your tftpboot directory:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;sudo cp /usr/lib/syslinux/pxelinux.0 /tftpboot&lt;br /&gt;sudo cp /boot/vmlinuz* /tftpboot/vmlinuz&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;ORDER IS IMPORTANT FOR THE NEXT THREE STEPS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1 - We're going to create our own initrd.img for booting purposes.  Because I have nuked many (&lt;span style="font-weight: bold;"&gt;MANY&lt;/span&gt;) systems in my day, I now have a policy of always copying whatever I'm working on to a new location (sandbox) and work with the new copy.  We're going to need an entire directory tree copied:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;sudo cp -Rp /etc/mkinitramfs /etc/mkinitramfs-pxe&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;2 - We now have our own mkinitramfs sandbox.  Modify the /etc/mkinitramfs-pxe/initramfs.conf so that "BOOT=nfs" "DEVICE=eth1" (We're using eth1 as an example since this &lt;span style="font-style: italic;"&gt;IS&lt;/span&gt; a lament post regarding multi-NIC clients.  Typically eth0 is your first NIC)  and "NFSROOT=192.168.0.254:/nfsroot" where 192.168.0.254 is your NFS server.&lt;br /&gt;&lt;br /&gt;Here's what my /etc/mkinitramfs-pxe/initramfs.conf looks like:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;BUSYBOX=y&lt;br /&gt;BOOT=nfs&lt;br /&gt;MODULES=most&lt;br /&gt;DEVICE=eth1&lt;br /&gt;NFSROOT=192.168.0.254:/nfsroot&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;3 - Now we can make our own initrd.img (which is nothing more than a cpio file that is gzipped):&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;sudo mkinitramfs -d /etc/mkinitramfs-pxe -o /tftpboot&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Now we'll need to create / edit our /tftpboot/pxelinux.cfg/default  (or the hardware address of the client, mine is named "01-00-30-48-2d-1b-a3") and I am a visual person, so I create a pause with dialog.  Here's what's inside my pxe configuration file:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;timeout 100&lt;br /&gt;prompt 1&lt;br /&gt;display a3-menu.txt&lt;br /&gt;default 0&lt;br /&gt;&lt;br /&gt;label 0&lt;br /&gt;kernel vmlinuz&lt;br /&gt;append root=/dev/nfs nfsroot=192.168.0.254:/nfsroot ip=dhcp initrd=initrd.img rw --&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;DHCP Configuration:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You'll need to configure your dhcp server now so the client(s) can get IP addresses and boot to their PXE image.  Modify your /etc/dhcp3/dhcpd.conf file to reflect the correct settings for your network.&lt;br /&gt;Here's what mine looks like:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;allow booting;&lt;br /&gt;ddns-update-style none;&lt;br /&gt;default-lease-time 600;&lt;br /&gt;max-lease-time 7200;&lt;br /&gt;option domain-name "sandbox.local";&lt;br /&gt;option domain-name-servers 172.24.17.21,172.24.17.23;&lt;br /&gt;authoritative;&lt;br /&gt;&lt;br /&gt;subnet 192.168.0.0 netmask 255.255.255.0 {&lt;br /&gt;range 192.168.0.1 192.168.0.200;&lt;br /&gt;option routers 192.168.0.254;&lt;br /&gt;next-server 192.168.0.254;&lt;br /&gt;filename "pxelinux.0";&lt;br /&gt;# i1620&lt;br /&gt;  host i1620 {&lt;br /&gt;  hardware ethernet 00:30:48:2D:1B:A3;&lt;br /&gt;  fixed-address 192.168.0.69;&lt;br /&gt;  option host-name "i1620";&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Your configuration will probably have different:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;domain-name = the domain suffix for the clients&lt;br /&gt;domain-name-servers = ip addresses of your DNS servers&lt;br /&gt;subnet = the subnet that you will be handing out IP addresses on&lt;br /&gt;netmask = the network mask for the subnet (above)&lt;br /&gt;range = the range of IP addresses to use for your clients&lt;br /&gt;routers = your default route and / or all other routes&lt;br /&gt;next-server = your tftp / PXE server&lt;br /&gt;filename = the name of the PXE boot loader file&lt;br /&gt;host = name and configurations for any given host&lt;br /&gt;hardware ethernet = your (above) host's machine address&lt;br /&gt;fixed-address = the address your (above) host will always get&lt;br /&gt;host-name = the hostname for your (above) host if it doesn't already have one&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Start the DHCP service:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;sudo /etc/init.d/dhcp3-server start&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;NFS Configuration:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(your location may vary) Create a location for the NFS root:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;sudo mkdir /nfsroot&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Edit your /etc/exports file to reflect your NFS root folder you will be using.&lt;br /&gt;Mine looks like this:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;/nfs    192.168.0.0/255.255.255.0(rw,no_root_squash,async)&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Now start the service:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;sudo /etc/init.d/nfs-kernel-server start&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Client configuration:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Many people will install locally to their client, copy the OS files to the nfsroot, and then pull the drive from the client.  I'm lazy, so I just copied my server files over to the /nfsroot directory and modified a handful of files.  There are only a few gotchas, that I will explain after you modify your basic files.  Your configurations will vary from mine, so make sure you at least look into each of the following:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;/etc/hostname&lt;br /&gt;/etc/hosts&lt;br /&gt;/etc/fstab&lt;br /&gt;/etc/network/interfaces&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;The last two will need some serious changing.  First edit your /etc/fstab to reflect correct mount points for "/proc" and "/"&lt;br /&gt;Mine looks like this:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;# /etc/fstab: static file system information.&lt;br /&gt;#&lt;br /&gt;# &lt;file&gt; &lt;mount&gt;   &lt;type&gt;  &lt;options&gt;       &lt;dump&gt;  &lt;pass&gt;&lt;br /&gt;proc            /proc           proc    defaults        0       0&lt;br /&gt;/dev/nfs        /               nfs     defaults        1       1&lt;br /&gt;&lt;/pass&gt;&lt;/dump&gt;&lt;/options&gt;&lt;/type&gt;&lt;/mount&gt;&lt;/file&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Finally you will need to edit your /etc/network/interfaces file to reflect correct activation.&lt;br /&gt;Mine looks like this:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;auto lo&lt;br /&gt;iface lo inet loopback&lt;br /&gt;iface eth0 inet manual&lt;br /&gt;iface eth1 inet manual&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;You're done!&lt;/span&gt;  (weeeeeee *plop*)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Go reboot your client and it will boot up PXE and mount / to your nfsroot!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5092411346605811465-2295691471615884102?l=automated-joseph.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://automated-joseph.blogspot.com/feeds/2295691471615884102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5092411346605811465&amp;postID=2295691471615884102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5092411346605811465/posts/default/2295691471615884102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5092411346605811465/posts/default/2295691471615884102'/><link rel='alternate' type='text/html' href='http://automated-joseph.blogspot.com/2008/07/booting-from-pxe-to-nfs-using-ubuntu.html' title='Booting from PXE to NFS (using Ubuntu)'/><author><name>Joe Talbot</name><uri>http://www.blogger.com/profile/02221132811451500667</uri><email>joe.talbot@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07300383870678173532'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5092411346605811465.post-5303304955201691457</id><published>2008-01-14T10:46:00.000-08:00</published><updated>2008-01-14T11:16:09.812-08:00</updated><title type='text'>Intel, Microsoft, and their dicktard antics</title><content type='html'>Recently, I needed to replace my old file server in my house. I bought pieces here and there, from &lt;a href="http://www.newegg.com"&gt;newegg&lt;/a&gt;, &lt;a href="http://www.ebay.com"&gt;ebay&lt;/a&gt;, and other computer shops, until I finally had all the stuff required to replace my old machine.&lt;br /&gt;&lt;br /&gt;The old machine was an old Dell desktop machine that had more than served a full life sentence in my basement. It had an old PATA &lt;a href="http://www.3ware.com"&gt;3ware RAID card&lt;/a&gt; and 4 250GB drives attached. Regardless, the drives were starting to go bad and it was long since time to replace that old P II 350 with something that had a little more horsepower.&lt;br /&gt;&lt;br /&gt;This post is dedicated to &lt;a href="http://www.intel.com"&gt;Intel&lt;/a&gt;, &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt;, and their dicktard antics in trying to force the consumer to use a specific set of software on a specific set of hardware.&lt;br /&gt;&lt;br /&gt;The motherboard for the new machine is an &lt;a href="http://www.intel.com/products/motherboard/DG33TL/index.htm"&gt;Intel DF33TL&lt;/a&gt;, (yeah, I know... not bleeding edge stuff here).  However, it has a built in RAID controller, 6 SATA ports, and was cheap.&lt;br /&gt;&lt;br /&gt;If you look at the &lt;a href="http://downloadmirror.intel.com/15251/ENG/STOR_AllOS_7.8.0.1012_PV_Intel_readme.txt"&gt;RAID driver's readme&lt;/a&gt;, section 2.2, you will notice that Windows Server 2003 is in the list.&lt;br /&gt;&lt;br /&gt;Here's where I think Microsoft and Intel have been in bed doing nasty things with each other's anal sphincters and tongues. The drivers for this motherboard (not just the RAID drivers) WILL NOT install on Windows Server 2003. This is because in the inf (the file that tells windows what driver to load for hardware instance IDs) Intel has "purposefully left no support for NT &gt;= 5.2" which means no 2003 on it...  Since this is a workstation motherboard, I can only assume that there is anal-dickery going on here between the makers of the board and the seller of the operating systems.&lt;br /&gt;&lt;br /&gt;And this is how to fix your problems, so the drivers will install and run on Windows Server 2003:&lt;br /&gt;&lt;br /&gt;1 - For each driver, download, extract, and find the corresponding inf file&lt;br /&gt;2 - Find the sections (an inf section is defined by [label.in.braces]) NTx86.5.2 and NTx86.5.1&lt;br /&gt;3 - Copy the section NTx86.5.1 and paste it into the NTx86.5.2 section&lt;br /&gt;4 - manually install driver by searching for the location where you just updated the driver to support 5.2&lt;br /&gt;&lt;br /&gt;Now, on top of that fun, I had to do this before making my OEM install disk (see &lt;a href="http://automated-joseph.blogspot.com/2007/05/creating-your-own-oem-windows-installer.html"&gt;my OEM cd blog&lt;/a&gt;... since there's no floppy controller and I don't have a USB floppy...&lt;br /&gt;&lt;br /&gt;WHAT.A.FUCKING.JOKE&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5092411346605811465-5303304955201691457?l=automated-joseph.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://automated-joseph.blogspot.com/feeds/5303304955201691457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5092411346605811465&amp;postID=5303304955201691457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5092411346605811465/posts/default/5303304955201691457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5092411346605811465/posts/default/5303304955201691457'/><link rel='alternate' type='text/html' href='http://automated-joseph.blogspot.com/2008/01/intel-microsoft-and-their-dicktard.html' title='Intel, Microsoft, and their dicktard antics'/><author><name>Joe Talbot</name><uri>http://www.blogger.com/profile/02221132811451500667</uri><email>joe.talbot@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07300383870678173532'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5092411346605811465.post-9006604077791562343</id><published>2008-01-14T08:37:00.001-08:00</published><updated>2008-01-14T09:08:29.753-08:00</updated><title type='text'>Recovering (not resetting) Lost Windows Passwords</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_rzdGhV1iDZ8/R4uWwi_UK2I/AAAAAAAAAC0/tmAsfeEkKGs/s1600-h/ophcrack.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_rzdGhV1iDZ8/R4uWwi_UK2I/AAAAAAAAAC0/tmAsfeEkKGs/s320/ophcrack.png" alt="" id="BLOGGER_PHOTO_ID_5155379959225920354" border="0" /&gt;&lt;/a&gt;I suppose I did it to myself, by choosing software engineering as my career path: I am my family's and my wife's family's personal and free tech support. All they have to do is put up with my bad attitude and condescending remarks as they pertain to computer (and life) literacy...&lt;br /&gt;&lt;br /&gt;The problems I 'get' to help them resolve are rarely technical issues... This weekend's example, a surprise visit from the in-laws resulted in my being volunteered to recover their lost passwords on their laptop. This is NOT a technical issue or even a computer / software problem. This is a process / policy execution problem, manifested in all areas of their lives.&lt;br /&gt;&lt;br /&gt;Well, after a quick visit to &lt;a href="http://ophcrack.sourceforge.net/"&gt;Ophcrack&lt;/a&gt; on sourceforge, a download of the ISO, finally a burned CD, I was set in motion for recovering (not resetting) the lost / forgotten passwords.&lt;br /&gt;&lt;br /&gt;You might ask why I went this route as apposed to resetting the password. This is a multifaceted answer. 1 - I've never used Ophcrack, so this was kind of fun for me (please, for the love of God, do NOT tell my in-laws that I enjoyed ANY part of this)... and 2 - I prefer to pick locks, instead of breaking them.&lt;br /&gt;&lt;br /&gt;I knew my dear in-laws would not have &lt;a href="http://ophcrack.sourceforge.net/tables.php"&gt;complex or long passwords&lt;/a&gt;, so Ophcrack shouldn't run into any problems. Ophcrack recovered the admin, guest, and mother-in-law's passwords in about 5 minutes... Not too shabby, considering the dinosaur laptop it was running on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5092411346605811465-9006604077791562343?l=automated-joseph.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://automated-joseph.blogspot.com/feeds/9006604077791562343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5092411346605811465&amp;postID=9006604077791562343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5092411346605811465/posts/default/9006604077791562343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5092411346605811465/posts/default/9006604077791562343'/><link rel='alternate' type='text/html' href='http://automated-joseph.blogspot.com/2008/01/recovering-not-resetting-lost-windows.html' title='Recovering (not resetting) Lost Windows Passwords'/><author><name>Joe Talbot</name><uri>http://www.blogger.com/profile/02221132811451500667</uri><email>joe.talbot@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07300383870678173532'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_rzdGhV1iDZ8/R4uWwi_UK2I/AAAAAAAAAC0/tmAsfeEkKGs/s72-c/ophcrack.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5092411346605811465.post-2115234396180795351</id><published>2007-05-22T08:49:00.001-07:00</published><updated>2007-05-29T16:53:22.882-07:00</updated><title type='text'>Creating Your Own OEM Windows Installer</title><content type='html'>If you've ever tried to install &lt;a href="http://www.microsoft.com/windows/default.mspx"&gt;Windows&lt;/a&gt; on a machine that requires custom controller drivers, I think you'll like this post.  This post's birth is in thanks to &lt;a href="http://www.dell.com/"&gt;Dell&lt;/a&gt; and their relationship with &lt;a href="http://www.microsoft.com/en/us/default.aspx"&gt;Microsoft&lt;/a&gt;, more specifically, their inability to get their drivers into Microsoft releases and Dell's inability to provide tools that support legitimate versions of Windows (Windows 2003 Small Business Server R2 to be exact).&lt;br /&gt;&lt;br /&gt;Let's say that you have an &lt;a href="http://www.dell.com/content/products/productdetails.aspx/pvaul_2950"&gt;PowerEdge 2950&lt;/a&gt; with a PERC5/i controller, that you want to install &lt;a href="http://www.windowsmarketplace.com/details.aspx?itemid=3268461"&gt;Windows Small Business 2003 R2&lt;/a&gt;.  If you made the assumption of R2 having the PERC5/i drivers, you'd have made the same mistake as I made.  Sadly, R2 does not have the drivers you're looking for.  You'll also be pleased to know that it also doesn't have your Broadcom drivers either (but we'll address this later).  On a side note, the 2950 has no floppy, and the Windows installer doesn't give a damn about your USB key / drive when you're talking about specifying additional drivers.  You are obviously not going to be installing from the canned W2K3SB-R2 disk.&lt;br /&gt;&lt;br /&gt;Next up, Dell provides an "&lt;a href="http://support.dell.com/support/downloads/download.aspx?c=us&amp;cs=555&amp;amp;l=en&amp;s=biz&amp;amp;releaseid=R146318&amp;SystemID=PWE_2950&amp;amp;servicetag=&amp;os=WNET&amp;amp;osl=en&amp;deviceid=10655&amp;amp;amp;amp;amp;amp;devlib=0&amp;typecnt=0&amp;amp;vercnt=4&amp;catid=-1&amp;amp;impid=-1&amp;formatcnt=1&amp;amp;libid=36&amp;fileid=204270"&gt;Installation and Management ISO&lt;/a&gt;" for installing Windows on your 2950... Let's spin this up and see what it's all about...&lt;br /&gt;&lt;br /&gt;This is great stuff... if only it supported Small Business.  Damn.  Time to break out the rubber gloves, lock pick, and hand grenades.&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;To start off, I have purchased my own copy of &lt;a href="http://www.magiciso.com/"&gt;MagicISO&lt;/a&gt; and know a little bit about breaking into install disks.  I'm not saying you have to use MagicISO or even need to know much about making your own OEM installation disks... just keep reading.&lt;br /&gt;&lt;br /&gt;Once you have an ISO vibrator and adequate massage oils, you'll need to make an ISO of your Windows 2003 Small Business Server installation disk.  Open up your ISO you just made and at the root of the image, create a folder named "$OEM$" then create a folder inside $OEM$ named "$1" and finally create a folder that you would like to have transfered to the root of your installation drive (C:\ by default).  It should look something like this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_rzdGhV1iDZ8/RlyvXPyIyFI/AAAAAAAAAAw/2yX6Mjq5www/s1600-h/OEM_directories.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_rzdGhV1iDZ8/RlyvXPyIyFI/AAAAAAAAAAw/2yX6Mjq5www/s320/OEM_directories.JPG" alt="" id="BLOGGER_PHOTO_ID_5070120094421010514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Next you'll need to download your unsupported drivers from wherever they might live.  For the 2950's PERC5/i look no further than &lt;a href="http://support.dell.com/support/downloads/format.aspx?c=us&amp;l=en&amp;amp;s=gen&amp;deviceid=9182&amp;amp;libid=46&amp;releaseid=R149460&amp;amp;vercnt=4&amp;formatcnt=0&amp;amp;SystemID=PWE_2950&amp;servicetag=&amp;amp;os=WNET&amp;osl=EN&amp;amp;catid=46&amp;impid=-1"&gt;Dell's support and download site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Unpack all the drivers you're wanting to include support in your custom ISO install... put them in folders as per your inner most desires see fit and then add them to your ISO image \$OEM$\$1\DRIVERS\RAID... Also, copy the files into the I386 directory of your installation ISO.  It should look something like this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_rzdGhV1iDZ8/RlyxwPyIyHI/AAAAAAAAABA/nhJFdfvMSQc/s1600-h/OEM_drivers.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_rzdGhV1iDZ8/RlyxwPyIyHI/AAAAAAAAABA/nhJFdfvMSQc/s400/OEM_drivers.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5070122722940995698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;The next part is where you're going to need either the lock-pick or the hand grenades... if you don't do this part right, you'll feel like blowing something up.&lt;br /&gt;&lt;br /&gt;Let's address the easy file first.  Here's a link to &lt;a href="http://www.utards.org/files/blog/WINNT.SIF"&gt;my WINNT.SIF&lt;/a&gt; which you will modify and put in your \I386 directory.  This should be relatively self explanatory, with exception of the one line: ' OemPnPDriversPath="DRIVERS\RAID" '  You will need to make sure this is the correct driver folder name... (remember up above, you made the \$OEM$\$1\DRIVERS\YOURDRIVER directory tree and dumped a bunch of drivers in there?)  Modify this file as you see fit for your own installation, save it, and let's move on to the fun part.&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;There is a file in the \I386 directory named "TXTSETUP.SIF" yes?  You found it? Good, now copy it and make 2 backups just in you run into the rare event where you'll want a back up of the back up of the original... you see where I'm going with this?&lt;br /&gt;&lt;br /&gt;There are four sections we have interest in that reside in this file (for our RAID drivers that is):&lt;br /&gt;[SourceDisksFiles]&lt;br /&gt;[HardwareIdsDatabase]&lt;br /&gt;[SCSI.Load]&lt;br /&gt;[SCSI]&lt;br /&gt;&lt;br /&gt;Start by finding the first "[SourceDisksFiles]" and add the name of your driver, with some installation and driver information... long story short, just dump the name of your driver with what I have here because I don't remember what all the parameters mean (3AM coffee fueled creativity and research rarely results in long-term memory commitment) and this worked.  My added line looked like this:&lt;br /&gt;percsas.sys  = 1,,,,,,_x,4,1&lt;br /&gt;&lt;br /&gt;Next, find the first instance of "[HardwareIdsDatabase]" and add (now here's some of the fun part) a modified portion of your driver's txtsetup.oem "HardwareIds...." section.&lt;br /&gt;&lt;br /&gt;My UNMODIFIED lines looked like this:&lt;br /&gt;id = "PCI\VEN_1028&amp;DEV_0015&amp;SUBSYS_1F011028", "percsas"&lt;br /&gt;id = "PCI\VEN_1028&amp;DEV_0015&amp;SUBSYS_1F021028", "percsas"&lt;br /&gt;id = "PCI\VEN_1028&amp;DEV_0015&amp;SUBSYS_1F031028", "percsas"&lt;br /&gt;&lt;br /&gt;What we are adding to the first instance of "[HardwareIdsDatabase]" looks like this:&lt;br /&gt;PCI\VEN_1028&amp;DEV_0015&amp;SUBSYS_1F011028 = "percsas"&lt;br /&gt;PCI\VEN_1028&amp;DEV_0015&amp;SUBSYS_1F021028 = "percsas"&lt;br /&gt;PCI\VEN_1028&amp;DEV_0015&amp;SUBSYS_1F031028 = "percsas"&lt;br /&gt;&lt;br /&gt;See the similarity?&lt;br /&gt;&lt;br /&gt;Let's move on to the next section we need to modify, "[SCSI.Load]"  Find this section and add a line under it with the HardwareIdsDatabase ID and the name of the driver with a load parameter of 4.  Mine looked like this:&lt;br /&gt;percsas = percsas.sys,4&lt;br /&gt;&lt;br /&gt;We're almost done with the delicate stuff...  Lastly, find the "[SCSI]" section and add the HardwareIdsDatabase ID with a name... you could use whatever name you really wanted but mine was stripped from my txtsetup.oem file provided with the driver.  Here's what my line looked like:&lt;br /&gt;percsas = "DELL PERC5 RAID Controller Driver (Server 2003 32-bit)"&lt;br /&gt;&lt;br /&gt;Here's a link to my original &lt;a href="http://www.utards.org/files/blog/TXTSETUP-SB-ORIG.SIF"&gt;TXTSETUP.SIF&lt;/a&gt; and my modified &lt;a href="http://www.utards.org/files/blog/TXTSETUP.SIF"&gt;TXTSETUP.SIF&lt;/a&gt;.  I recommend you use something like &lt;a href="http://winmerge.org/"&gt;WinMerge&lt;/a&gt; to compare the two...&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Save your ISO and burn it... you now have a self customized installation disk that will load up your unsupported RAID drivers.&lt;br /&gt;&lt;br /&gt;If you have further questions, the only real witness to this voodoo was an always draining coffee mug and my ever restless Weimaraner, Boreas.  Boreas can be reached via barkmail:neuteredweim@hotbark.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5092411346605811465-2115234396180795351?l=automated-joseph.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://automated-joseph.blogspot.com/feeds/2115234396180795351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5092411346605811465&amp;postID=2115234396180795351' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5092411346605811465/posts/default/2115234396180795351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5092411346605811465/posts/default/2115234396180795351'/><link rel='alternate' type='text/html' href='http://automated-joseph.blogspot.com/2007/05/creating-your-own-oem-windows-installer.html' title='Creating Your Own OEM Windows Installer'/><author><name>Joe Talbot</name><uri>http://www.blogger.com/profile/02221132811451500667</uri><email>joe.talbot@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07300383870678173532'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_rzdGhV1iDZ8/RlyvXPyIyFI/AAAAAAAAAAw/2yX6Mjq5www/s72-c/OEM_directories.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>