<?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>The blog of Karl Majer... &#187; linux</title>
	<atom:link href="http://www.karlmajer.com/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.karlmajer.com</link>
	<description>Life on my own terms...</description>
	<lastBuildDate>Mon, 28 Mar 2011 17:04:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Multi-OS Installation: Configuring the Linux Environment</title>
		<link>http://www.karlmajer.com/2008/01/22/multi-os-installation-configuring-the-linux-environment/</link>
		<comments>http://www.karlmajer.com/2008/01/22/multi-os-installation-configuring-the-linux-environment/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 09:25:18 +0000</pubDate>
		<dc:creator>Karl Majer</dc:creator>
				<category><![CDATA[Systems Administration]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[kickstart]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[os installation]]></category>

		<guid isPermaLink="false">http://www.karlmajer.com/2008/01/22/multi-os-installation-configuring-the-linux-environment/</guid>
		<description><![CDATA[This article will discuss configuring a RHEL image for use in the Multi-OS installer. On successful boot, the user will be greeted by the text installer as if they had booted off of CD or DVD media. Other Linux variants are likely easily adaptable but were out of scope for the project that was delivered [...]]]></description>
			<content:encoded><![CDATA[<p>This article will discuss configuring a RHEL image for use in the Multi-OS installer. On successful boot, the user will be greeted by the text installer as if they had booted off of CD or DVD media. Other Linux variants are likely easily adaptable but were out of scope for the project that was delivered to the client.</p>
<p>Configuring Linux is nowhere near as complex as the Windows environment.  The low level Linux boot process is the same as Windows and Solaris, mainly a PXE request is dropped onto the wire. The dhcpd server accepts the request and issues a reply packet containing the IP address for the PXE client, the IP address of the next server to speak to, and the filename that the PXE client needs to request. The filename passed to the client used is the pxelinux bootloader which has been described in detail elsewhere.</p>
<p>The operating system makes use of the <a href="http://www.karlmajer.com/2008/01/19/multi-os-installation-configuring-the-pxe-loader-environment/%E2%80%9D"> PXE Loader configuration. </a> Please go read that post if you have yet to do so as general configuration details are described in that article.</p>
<p>The pxelinux menu entry needs to be updated to point to the linux kernel and an appropriate initrd stanza needs to be added to the menu entry as well. Substitute your own directory name for all instances of RHEL_4_U5_x86_32. That said, a sample entry in my environment looks like this:</p>
<blockquote><p>label rhel4_32<br />
kernel /images/RHEL_4_U5_x86_32/install/images/pxeboot/vmlinuz<br />
append initrd=/images/RHEL_4_U5_x86_32/install/images/pxeboot/initrd.img nofb text noipv6 method=http://install/images/RHEL_4_U5_x86_32/install ksdevice=eth0</p></blockquote>
<p>Remember that the tftpd server is chrooted to /export/install, so on the filesystem, the kernel resides in the base directory /export/install/images/RHEL_4_U5_x86_32/. The nomenclature used at the customer site allows multiple variants of RHEL 4 32 and 64 bit to live in the tree concurrently. Menu entries need only be added for each desired variant to install other versions.</p>
<p>Once the PXE menu entries have been added, the image can be prepared. This is nowhere near as complex as windows and requires only a few steps:</p>
<blockquote><p>mkdir /export/install/images/RHEL_4_U5_x86_32 # or the path for the real vers.<br />
mkdir -p /mnt/{1,2,3,4&#8230;N}	# one per ISO<br />
mount -o loop /path/to/iso/RHEL4-U5-i386-AS-disc1.iso /mnt/1<br />
…<br />
mount -o loop /path/to/iso/RHEL4-U5-i386-AS-discN.iso /mnt/N<br />
# note, if you run out of loopback devices, add “options loop max_loop=256”<br />
# to /etc/modprobe.conf and reboot.<br />
tar -C /mnt/1 cpvf &#8211; | tar -C /export/install/images/RHEL_4_U5_x86_32/ -xpf -<br />
…<br />
tar -C /mnt/N cpvf &#8211; | tar -C /export/install/images/RHEL_4_U5_x86_32/ -xpf -</p></blockquote>
<p>When finished, in /export/install/images/RHEL_4_U5_x86_32/ directory you should have the following directories: RedHat, SRPMS, install, images, isolinux, and a large number of README html files.</p>
<p>Confirm that the install/images/pxeboot directory contains a file called vmlinuz and the path matches what was indicated in the pxelinux menu entry and that the initrd.img is present in the same directory and that the paths to the images match:</p>
<blockquote><p>ls -al /export/install/images/RHEL_4_U5_x86_32/install/images/pxeboot<br />
grep RHEL_4_U5_86_32 /export/install/default</p></blockquote>
<p>And that concludes all of the image prep necessary. The next item to configure is the apache server to ensure it can serve the http content as requested by the method= line of the menu entry.  To do so we need to edit the configuration of apache and add a section allowing the webserver to find our content at /images/. Edit the httpd.conf and add the following in an appropriate location, or use this snippet to create a new file uniquely named along the lines of install.conf in the httpd/conf.d directory, if present.</p>
<blockquote><p>Alias /images/  /export/install/images/<br />
&lt; directory &gt;<br />
Options Indexes FollowSymLinks<br />
AllowOverride Limit<br />
Order allow,deny<br />
Allow from all<br />
&lt; /directory &gt;</p></blockquote>
<p>Apache needs to then be restarted or HUP’ed for the configuration changes to take effect.</p>
<p>All that is left now is to test the individual components:</p>
<p>First we need to make sure dhcpd is running:</p>
<blockquote><p>ps -ef | grep dhcpd</p></blockquote>
<p>Next we ensure apache is running;</p>
<blockquote><p>ps -ef | grep httpd</p></blockquote>
<p>Now we make sure that the repository is in proper order:</p>
<blockquote><p>ls -al /export/install/boot/pxelinux	# check for pxelinux<br />
ls -al /export/install/boot/default     # check for the default menu file for your entry<br />
ls -ald /export/install/images/RHEL_4_U5_x86_32/ # make sure the RedHat dir is there<br />
ls -ald /export/install/images/RHEL_4_U5_x86_32/install/images/pxeboot # should return 4 files: initrd.img, README, TRANS.TBL, vmlinuz</p></blockquote>
<p>Now we make sure that tftp is working as expected (remember that tftp was chrooted to /export/install so everything will be relative to that path):</p>
<blockquote><p>tftp localhost<br />
cd images/RHEL_4_U5_x86_32/install/images/pxeboot<br />
get vmlinuz</p></blockquote>
<p>Next we ensure the apache is serving content properly.</p>
<blockquote><p>wget http://localhost/images/RHEL_4_U5_x86_32/install/images/pxeboot/vmlinuz</p></blockquote>
<p>if for some reason you dont have wget on your server you can do it manually using telnet:</p>
<blockquote><p>telnet localhost 80<br />
HEAD /images/RHEL_4_U5_x86_32/install/images/pxeboot/vmlinuz HTTP/1.0</p></blockquote>
<p>This essentially concludes the work required to netboot a RHEL installer to the point where the user can make their desired selections to complete the installation.</p>
<p>After finishing the configuration, all that is left is to reboot the machine and netboot using the F12 key, and then select the newly added menu entry from the pxelinux menu when prompted. When the installer loads and begins the interactive installation you will need to walk through the installer options and answer any question.</p>
<p>If you have any problems or questions, drop me a line and I’ll see what I can do to help.  If there is interest in the topic, moving from an interactive installation to the configuring of kickstart may be discussed in a later article should there be interest in the topic.</p>
<p>&gt;&gt;&gt; Karl</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlmajer.com/2008/01/22/multi-os-installation-configuring-the-linux-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The General Infrastructure</title>
		<link>http://www.karlmajer.com/2008/01/15/the-general-infrastructure/</link>
		<comments>http://www.karlmajer.com/2008/01/15/the-general-infrastructure/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 19:34:50 +0000</pubDate>
		<dc:creator>Karl Majer</dc:creator>
				<category><![CDATA[Systems Administration]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[dhcpd]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[jumpstart]]></category>
		<category><![CDATA[kickstart]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[os installation]]></category>
		<category><![CDATA[ris]]></category>
		<category><![CDATA[smbd]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[tftpd]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.karlmajer.com/?p=12</guid>
		<description><![CDATA[The production system and the prototype were built on differing operating systems. Solaris 10 was initially used to allow for native Solaris Jumpstart procedures for Jumpstarting Solaris 9 on both Intel and Sparc. While migrating the completed prototype to RHEL 5.0 64, the Sparc Solaris issues, Sparc lacking  pxe boot loader capabilities to boot the [...]]]></description>
			<content:encoded><![CDATA[<p>The production system and the prototype were built on differing operating systems. Solaris 10 was initially used to allow for native Solaris Jumpstart procedures for Jumpstarting Solaris 9 on both Intel and Sparc. While migrating the completed prototype to RHEL 5.0 64, the Sparc Solaris issues, Sparc lacking  pxe boot loader capabilities to boot the operating system, were addressed by adding the appropriate stanzas to the dhcpd configuration files.</p>
<p>Unless otherwise specified, the Solaris installation was built from the source tarball, whereas the Linux installation came from an official RedHat RPM. This typically accounts for any version differences found between the two operating systems.</p>
<p>The network services required to fully netboot and install a machine are as follows:</p>
<ul>
<li>At the lowest level there is a dhcp server listening for initial boot requests. ISC&#8217;s dhcpd server, specifically version 3.0.6 which was the current version at the time. On the RHEL machine, version 3.0.5, was used.</li>
<li>A tftp server is required to make the necessary files available. The files in question could be either pxe bootloaders for Linux and Solaris 10, the actual boot files in the case of Solaris 9, and the WINNT bootloader in the case of Windows. Tftp-hpa version 0.42 was chosen as the tftp server of choice as it supported the remapping of file paths in requests, and offered tcp wrappers as an added bonus.</li>
<li>An HTTP server is made available on the network to support Solaris jumpstart and Linux kickstart. The server offers media for both of the installation processes. The Apache that shipped with Solaris 10, Apache/2.0.58, and the Apache that shipped with RHEL 5, Apache/2.2.3, worked without a problem.</li>
<li>An NFS server is made available on the network to support Solaris installations including jumpstart. The server offers the entire media tree to any client that may desire it. Linux NFS servers may have problems with Solaris clients on anything other than NFSv2. The converse is not true.</li>
<li>To support windows, a CIFS needed to be offered. Samba was picked as it is the primary software of choice. Version 3.023c-2 was used on RHEL, 3.025c on Solaris.</li>
<li>RIS Services are required to properly net install a Windows machine. The software used was a python implementation of the binl server and is covered in greater detail in the Windows section.</li>
<li>Additionally, OS ISOs for every operating system to be installed must be obtained for both the Windows and Unix environments. This must be done in accordance to appropriate licensing for each respective OS.</li>
</ul>
<p>The delivered product was capable of installing: Linux RHEL 3,4,5 32 and 64 bit variants, Solaris 9, 10, both intel and sparc at multiple releases, Windows 200[03], XP, both 32 and 64 bit including the unpatched and last two service pack levels. All in all a total of 27 windows offerings, 6 Solaris offerings, and 6 Linux offerings were available to any server or desktop that supported pxe booting.</p>
<p>More to come&#8230;</p>
<p>&gt;&gt;&gt; Karl</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlmajer.com/2008/01/15/the-general-infrastructure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a Multi-OS Installation Host</title>
		<link>http://www.karlmajer.com/2008/01/15/building-a-multi-os-installation-host/</link>
		<comments>http://www.karlmajer.com/2008/01/15/building-a-multi-os-installation-host/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 17:20:57 +0000</pubDate>
		<dc:creator>Karl Majer</dc:creator>
				<category><![CDATA[Systems Administration]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[dhcpd]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[jumpstart]]></category>
		<category><![CDATA[kickstart]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[os installation]]></category>
		<category><![CDATA[ris]]></category>
		<category><![CDATA[smbd]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[tftpd]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.karlmajer.com/?p=11</guid>
		<description><![CDATA[Recently a client expressed interest in having me build an installation environment wholly contained on a single, preferably unix, server. The client had a requirement of being able to Kickstart any RedHat/Fedora Linux distribution they chose, Jumpstart Solaris 9 &#38; 10 for Sparc and Intel, and net install a wide range of windows installations. The [...]]]></description>
			<content:encoded><![CDATA[<p>Recently a client expressed interest in having me build an installation environment wholly contained on a single, preferably unix, server. The client had a requirement of being able to Kickstart any RedHat/Fedora Linux distribution they chose, Jumpstart Solaris 9 &amp; 10 for Sparc and Intel, and net install a wide range of windows installations. The unix installation environments were straightforward, both taking advantage of the pxe bootloader environment. Linux uses pxelinux, and Solaris uses a Sun modified version of pxegrub. Windows was an entirely different issue.</p>
<p>After a bit of research I decided to use a combination of the theory behind the Ultimate Deployment Appliance (UDA) VM, available from <a href="http://www.vmware.com/appliances/directory/232">http://www.vmware.com/appliances/directory/232</a> , VMWare&#8217;s appliances directory, as well as the information found on the RIS for Linux site located at <a href="http://oss.netfarm.it/guides/pxe.php">http://oss.netfarm.it/guides/pxe.php</a> around which the UDA is built.UDA v1.4 was already capable of booting a considerable variety of 32 bit windows images, however it lacked the ability to easily add 64 bit images. Additionally, there was no need for the pretty HTML GUI that the package offered and so they were omitted in favor of a pxelinux and pxegrub menu system.</p>
<p>This series of articles will describe how the system was built as well as provide examples on how to build your own. It will be written in several parts, at least one for each of Solaris, Linux, and Windows, and the Windows article may be further subdivided into several more.</p>
<p>More will follow as time permits.</p>
<p>&gt;&gt;&gt; Karl</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlmajer.com/2008/01/15/building-a-multi-os-installation-host/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Network Speed Testing</title>
		<link>http://www.karlmajer.com/2006/11/24/network-speed-testing/</link>
		<comments>http://www.karlmajer.com/2006/11/24/network-speed-testing/#comments</comments>
		<pubDate>Fri, 24 Nov 2006 14:00:05 +0000</pubDate>
		<dc:creator>Karl Majer</dc:creator>
				<category><![CDATA[Systems Administration]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[perf testing]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.karlmajer.com/wordpress/?p=9</guid>
		<description><![CDATA[I was trying to move 13G of music between my Powerbook and Windows machines on my gig network at home. It would seem that SOHO switches aren&#8217;t  really capable of operating at the advertised gigabit rates, and additionally, Windows XPPro-SP2 is nowhere near optimally tuned straight out of the box. At best, I was only [...]]]></description>
			<content:encoded><![CDATA[<p>I was trying to move 13G of music between my Powerbook and Windows machines on my gig network at home. It would seem that SOHO switches aren&#8217;t  really capable of operating at the advertised gigabit rates, and additionally, Windows XPPro-SP2 is nowhere near optimally tuned straight out of the box. At best, I was only getting close to 120Mbits/sec.</p>
<p>After performing some tuning based on the walkthrough found here: <span style="text-decoration: underline"><a href="http://www.psc.edu/networking/projects/tcptune/OStune/winxp/winxp_stepbystep.html">http://www.psc.edu/networking/projects/tcptune/OStune/winxp/winxp_stepbystep.html</a>,</span> I was able to get the Win -&gt; Mac communications up to 260 Mbit/sec. Just for comparison, unoptimized Mac&lt;-&gt;Linux rates were 260Mbit/sec using OS X 10.4 and FC 6. I suspect that the limitations of my switch will cap my throughput at that rate.</p>
<p>Naturally, after having done all of the edits instructed in the tutorial, I discovered that dslreports.com offers a utility called DrTCP that drastically simplifies making windows TCP tuning changes.  At a minimum, you will need to restart the network interface that you&#8217;ve tuned, if you don&#8217;t simply reboot the machine altogether.</p>
<p>For aid in testing during the tuning I used the following utilities:</p>
<ul>
<li>
Windows &#8211; <span style="text-decoration: underline"><a href="http://www.pcausa.com/Utilities/pcattcp.htm">http://www.pcausa.com/Utilities/pcattcp.htm</a></span></p>
<ul>
<li> A copy of the windows binaries are at <span style="text-decoration: underline"><a href="http://www.genvmunix.com/ttcpzip.exe">http://www.genvmunix.com/ttcpzip.exe</a></span></li>
</ul>
</li>
<li>
Mac &amp; Linux &#8211; <span style="text-decoration: underline"><a href="http://www.genvmunix.com/ttcp.c">http://www.genvmunix.com/ttcp.c</a></span></p>
<ul>
<li>The source compiled without any changes with a few warnings doing just a cc -o ttcp ttcp.c on both unix variants.</li>
<li>If I can find a netperf client as well I will rerun my testing using that utility.</li>
</ul>
</li>
</ul>
<p>When time permits, my final round of testing will involve directly connecting the machines together and see what kind of rates I can get by eliminating the switch altogether. For now I have settled with the 260 MBits/sec.</p>
<p>&gt;&gt;&gt;Karl</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlmajer.com/2006/11/24/network-speed-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

