<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>g33kgrrl&#039;s garage</title>
	<atom:link href="http://g33kgrrl.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://g33kgrrl.wordpress.com</link>
	<description>Ramblings and tutorials by a computer techie</description>
	<lastBuildDate>Tue, 14 Jun 2011 14:51:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='g33kgrrl.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>g33kgrrl&#039;s garage</title>
		<link>http://g33kgrrl.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://g33kgrrl.wordpress.com/osd.xml" title="g33kgrrl&#039;s garage" />
	<atom:link rel='hub' href='http://g33kgrrl.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Origin of Ctrl-Alt-Del</title>
		<link>http://g33kgrrl.wordpress.com/2009/10/12/origin-of-ctrl-alt-del/</link>
		<comments>http://g33kgrrl.wordpress.com/2009/10/12/origin-of-ctrl-alt-del/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 06:41:33 +0000</pubDate>
		<dc:creator>g33kgrrl</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[geek humour]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows frustrations]]></category>

		<guid isPermaLink="false">http://g33kgrrl.wordpress.com/?p=895</guid>
		<description><![CDATA[Okay, this is just too darn funny.  I don&#8217;t know when it happened &#8211; I imagine some time back already &#8211; but it&#8217;s too awesome not to share. Ω<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=895&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Okay, this is just too darn funny.  I don&#8217;t know when it happened &#8211; I imagine some time back already &#8211; but it&#8217;s too awesome not to share.</p>
<span class='embed-youtube' style='text-align:center; display:block;'><object width='600' height='368'><param name='movie' value='http://www.youtube.com/v/hWKHDI22KBk?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' /> <param name='allowfullscreen' value='true' /> <param name='wmode' value='opaque' /> <embed src='http://www.youtube.com/v/hWKHDI22KBk?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' type='application/x-shockwave-flash' allowfullscreen='true' width='600' height='368' wmode='opaque'></embed> </object></span>
<p>Ω</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/g33kgrrl.wordpress.com/895/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/g33kgrrl.wordpress.com/895/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/g33kgrrl.wordpress.com/895/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/g33kgrrl.wordpress.com/895/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/g33kgrrl.wordpress.com/895/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/g33kgrrl.wordpress.com/895/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/g33kgrrl.wordpress.com/895/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/g33kgrrl.wordpress.com/895/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/g33kgrrl.wordpress.com/895/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/g33kgrrl.wordpress.com/895/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/g33kgrrl.wordpress.com/895/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/g33kgrrl.wordpress.com/895/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/g33kgrrl.wordpress.com/895/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/g33kgrrl.wordpress.com/895/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=895&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://g33kgrrl.wordpress.com/2009/10/12/origin-of-ctrl-alt-del/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc971f13cd49490bfb69e5563208d01?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">g33kgrrl</media:title>
		</media:content>
	</item>
		<item>
		<title>Use a simple download manager &#8211; wget</title>
		<link>http://g33kgrrl.wordpress.com/2009/10/03/wget/</link>
		<comments>http://g33kgrrl.wordpress.com/2009/10/03/wget/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 02:44:26 +0000</pubDate>
		<dc:creator>g33kgrrl</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[download tips]]></category>
		<category><![CDATA[GNU project]]></category>
		<category><![CDATA[software freedom]]></category>

		<guid isPermaLink="false">http://g33kgrrl.wordpress.com/?p=885</guid>
		<description><![CDATA[(Side note: This is based loosely on a previous tutorial about getting PCLinuxOS, which was lacking some important detail and needed to be adapted to more general purposes.  This is the improved result.) One very common operation in the GNU/Linux world is downloading of the ISO (CD or DVD image) for a given GNU/Linux distribution. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=885&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>(Side note: This is based loosely on a previous tutorial about <a href="http://g33kgrrl.wordpress.com/2009/03/13/pclinuxos-2009-is-out-heres-how-to-get-it/">getting PCLinuxOS</a>, which was lacking some important detail and needed to be adapted to more general purposes.  This is the improved result.)</p>
<p>One very common operation in the GNU/Linux world is downloading of the ISO (CD or DVD image) for a given GNU/Linux distribution.  Typically, this is around 650 or 700 MB &#8211; a sizable download.  One of the biggest wastes of bandwidth &#8211; not to mention your time and patience &#8211; happens when an ISO download (or any other large download, for that matter) is interrupted or mysteriously quits&#8230; especially if it occurs when your download was almost complete.  If you&#8217;re not using a download manager, you&#8217;re stuck downloading it all over again from the beginning.</p>
<p>There are a number of graphical download managers available at no cost.  Ease of use varies, and importantly, so does freedom of use.  That is, some of them are free/libre (also known as open source) software and some are not.  The free/libre applications are safer security-wise to use on your system, since their source code is available for the public to scrutinize and ensure that they don&#8217;t do anything they shouldn&#8217;t be (such as collecting your information and sending it to someone without your knowledge or permission.)  But the simplest one of all, in my opinion, is wget from the <a href="http://www.gnu.org">GNU Project</a>, a well-trusted organization dedicated to producing and promoting free/libre software.  It is safe and also very simple to use, even for those who are scared of the command prompt. There are no unnecessary frills, nag screens, advertisements, registration forms, restrictions, or user agreements in legalese.  It comes with your GNU/Linux distribution and is almost always installed by default.  That makes it very convenient to use.</p>
<p><span id="more-885"></span></p>
<p>First, use your web browser to navigate to the download page for the distribution you want to download.  Find the link to the ISO you want. Right click the link and (assuming you&#8217;re using Firefox or Iceweasel) click &#8220;Copy Link Location&#8221;.</p>
<p>Now you&#8217;ll need to open a command prompt.  Its location in your menu varies depending on which distribution you&#8217;re using.  Look for an icon that looks like a little black computer screen.  It may be called &#8220;Terminal&#8221;, &#8220;Console&#8221;, &#8220;Konsole&#8221;, or &#8220;Command prompt.&#8221;  Click it and you should have a window with a command prompt that looks something like this:</p>
<p><code><span style="color:#333399;"><strong>g33kgrrl@home:~$</strong></span></code></p>
<p>At the prompt, type &#8220;wget -c&#8221; (without the quotes) followed by a space.  The <em>-c</em> option tells <em>wget</em> to Continue getting any partially-downloaded file. If the download is interrupted or fails for some reason, you can repeat the same command and it will pick up where it left off.  Now paste in the URL of the ISO by holding down the &lt;shift&gt; key and tapping &lt;insert&gt;.</p>
<p>The command you typed in will look something like this:</p>
<p><code>wget -c http://<em>somewebsite</em></code><code>/</code><code><em>somefolder</em></code><code>/</code><code><em>somefile</em>.iso</code></p>
<p>Here&#8217;s an example:</p>
<p><code>wget -c http://mirror.csclub.uwaterloo.ca/ubuntu-releases/jaunty/ubuntu-9.04-desktop-i386.iso</code></p>
<p>Hit &lt;enter&gt; and it will download the ISO to whatever directory you&#8217;re in.  It will also display some information about your connection, size of the file, percentage downloaded, a simple progress bar, and estimated time until the download is complete.  And here you thought you&#8217;d have to give up all those nice features just because you&#8217;re using the command line!  Those GNU guys and gals are pretty smart.</p>
<p><code><span style="color:#333399;"><strong>g33kgrrl@home:~$</strong></span> wget -c http://mirror.csclub.uwaterloo.ca/ubuntu-releases/jaunty/ubuntu-9.04-desktop-i386.iso<br />
--2009-10-03 21:27:04--  http://mirror.csclub.uwaterloo.ca/ubuntu-releases/jaunty/ubuntu-9.04-desktop-i386.iso<br />
Resolving mirror.csclub.uwaterloo.ca... 129.97.134.71<br />
Connecting to mirror.csclub.uwaterloo.ca|129.97.134.71|:80... connected.<br />
HTTP request sent, awaiting response... 206 Partial Content<br />
Length: 732909568 (699M), 731590789 (698M) remaining [application/x-iso9660-image]<br />
Saving to: `ubuntu-9.04-desktop-i386.iso'</code></p>
<p><code>1% [<span style="margin-left:20em;"> </span> ] 9,456,127    222K/s  eta 50m 22s</code></p>
<p>When it&#8217;s done downloading, you&#8217;ll get a message something like this:</p>
<p><code> [ |||||||||||||||||||||||||||||||| ] 732,909,568      51.9K/s   in 48m 32s</code></p>
<p><code>2009-10-03 22:15:36 (51.9 KB/s) - `ubuntu-9.04-desktop-i386.iso' saved [732909568]</code></p>
<p><code><span style="color:#333399;"><strong>g33kgrrl@home:~$</strong></span></code></p>
<p>You might not want to close the terminal window just yet.  The ISO file will be saved in the directory your terminal is currently pointed to.  Most often this is your home directory (/home/<em>yourusername</em>), which you can access by clicking your Home icon on the desktop or in your menu.  If you want to be sure, type &#8220;pwd&#8221; without the quotes (for &#8220;Present Working Directory&#8221;) and it will tell you where you are:</p>
<p><code><span style="color:#333399;"><strong>g33kgrrl@home:~$</strong></span> pwd<br />
/home/g33kgrrl/</code></p>
<p>In this case I can just click my Home icon and then look for the ISO in that folder.</p>
<p>Don&#8217;t forget to use checksums to verify that the ISO downloaded correctly and that the CD burned properly!  It&#8217;s worth the headaches it saves.  I have a tutorial on it <a href="http://g33kgrrl.wordpress.com/2009/03/05/verify-the-integrity-of-an-iso-or-burned-cd/">here</a>.</p>
<p>Happy downloading!</p>
<p>Ω</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/g33kgrrl.wordpress.com/885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/g33kgrrl.wordpress.com/885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/g33kgrrl.wordpress.com/885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/g33kgrrl.wordpress.com/885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/g33kgrrl.wordpress.com/885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/g33kgrrl.wordpress.com/885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/g33kgrrl.wordpress.com/885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/g33kgrrl.wordpress.com/885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/g33kgrrl.wordpress.com/885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/g33kgrrl.wordpress.com/885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/g33kgrrl.wordpress.com/885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/g33kgrrl.wordpress.com/885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/g33kgrrl.wordpress.com/885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/g33kgrrl.wordpress.com/885/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=885&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://g33kgrrl.wordpress.com/2009/10/03/wget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc971f13cd49490bfb69e5563208d01?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">g33kgrrl</media:title>
		</media:content>
	</item>
		<item>
		<title>Merge multiple PDF files into one file</title>
		<link>http://g33kgrrl.wordpress.com/2009/09/30/merge-pdf-files/</link>
		<comments>http://g33kgrrl.wordpress.com/2009/09/30/merge-pdf-files/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 02:57:26 +0000</pubDate>
		<dc:creator>g33kgrrl</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://g33kgrrl.wordpress.com/?p=830</guid>
		<description><![CDATA[One excellent feature of the XSane scanning application is that it can save your scanned documents to Adobe Acrobat PDF format, merely by saving them with a .pdf extension, as in examplefile.pdf . But one not-so-nice feature is the fact that there&#8217;s really no expedient way to save multiple scans into a single PDF file.  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=830&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One excellent feature of the XSane scanning application is that it can save your scanned documents to Adobe Acrobat PDF format, merely by saving them with a .pdf extension, as in <em>examplefile</em>.pdf .  But one not-so-nice feature is the fact that there&#8217;s really no expedient way to save multiple scans into a single PDF file.  If you do 3 scans, you have 3 PDF files.  What now?  You need something that can merge (also called &#8220;join&#8221;) these files into one big beautiful file.</p>
<p>Enter pdftk, or PDF Tool Kit.  This is a comprehensive set of tools that can &#8211; among other things &#8211; merge, split up, encrypt/decrypt, password protect, rotate, and repair PDF files.</p>
<p><span id="more-830"></span></p>
<p>The merge or join function can be done in a few different ways.  I will show different examples here to illustrate why you might want to use one over the other.  Let&#8217;s say we want to merge our files into a single PDF named final_tps_report.  In Example 1 we will have 3 sequentially-named files that need to go in this order: page1.pdf, page2.pdf, page3.pdf .  In Example 2 we&#8217;ll have 3 files with very different names that need to go in this order: coversheet.pdf, tps_report.pdf, appendix.pdf .  (Your 9 bosses will be happy to explain to you why it&#8217;s so important for the coversheet to go on the front.)  Each command goes all on one line, even though it may look like two here because of its length.</p>
<p><strong>Method 1:</strong></p>
<div style="margin-left:1.5em;">Specify the full names of the files to be merged, in the order you want them in.  This is the most straightforward method.  It&#8217;s okay for 2 or 3 files, but any more than that and it starts to get tedious.<br />
Format: pdftk <em>file1</em> <em>file2</em> <em>file3</em> cat output <em>mergedfilename</em></div>
<div style="margin-left:1.5em;margin-top:1em;">Example 1:<br />
<code><span style="color:#333399;"><strong>g33kgrrl@home$</strong></span> pdftk page1.pdf page2.pdf page3.pdf cat output final_tps_report.pdf</code></div>
<div style="margin-left:1.5em;margin-top:1em;margin-bottom:1em;">Example 2:<br />
<code><span style="color:#333399;"><strong>g33kgrrl@home$</strong></span> pdftk coversheet.pdf tps_report.pdf appendix.pdf cat  output final_tps_report.pdf</code></div>
<p><strong>Method 2:</strong></p>
<div style="margin-left:1.5em;">Assign each file to a &#8220;handle&#8221; &#8211; that is, essentially a variable (remember algebra class?) that stands for each filename &#8211; and then use the handles to specify what order the files go in.  This can help you keep everything straight if the filenames are long and confusing &#8211; otherwise, it just makes for unnecessary extra typing.<br />
Format: pdftk A=<em>file1</em> B=<em>file2</em> C=<em>file3</em> cat A B C output <em>mergedfilename</em></div>
<div style="margin-left:1.5em;margin-top:1em;">Example 1:<br />
<code><span style="color:#333399;"><strong>g33kgrrl@home$</strong></span> pdftk A=page1.pdf B=page2.pdf C=page3.pdf cat A B C output final_tps_report.pdf</code></div>
<div style="margin-left:1.5em;margin-top:1em;margin-bottom:1em;">Example 2:<br />
<code><span style="color:#333399;"><strong>g33kgrrl@home$</strong></span> pdftk A=coversheet.pdf B=tps_report.pdf C=appendix.pdf cat A B C output final_tps_report.pdf</code></div>
<p><strong>Method 3:</strong></p>
<div style="margin-left:1.5em;">You need to process all the PDF files in a given folder.  They are numbered sequentially (e.g., page1.pdf, page2.pdf, page3.pdf), according to the order they need to go in, or they need to be alphabetized.  Tell pdftk to merge all the files and they will be ordered alphabetically and/or numerically according to their names.  This is extra convenient when you have a large number of files to merge.  No one wants to type in 10, 20, or 50 filenames, never mind the potential for errors.  Here is your solution.<br />
Format: pdftk *.pdf cat output <em>mergedfilename</em></div>
<div style="margin-left:1.5em;margin-top:1em;">Example 1:<br />
Files will be merged sequentially (even if some numbers are skipped &#8211; e.g., page1.pdf, page2.pdf, page3.pdf, page6.pdf)<br />
<code><span style="color:#333399;"><strong>g33kgrrl@home$</strong></span> pdftk *.pdf cat output final_tps_report.pdf</code></div>
<div style="margin-left:1.5em;margin-top:1em;margin-bottom:1em;">Example 2:<br />
This <span style="text-decoration:underline;">won&#8217;t</span> <span style="text-decoration:underline;">work</span> the way we want it to.  It will put appendix.pdf in front of coversheet.pdf and tps_report.pdf, because it starts with the letter &#8220;a&#8221; .  We&#8217;d have to use Method 1 or 2 here.</div>
<p>Happy merging!</p>
<p>Ω</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/g33kgrrl.wordpress.com/830/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/g33kgrrl.wordpress.com/830/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/g33kgrrl.wordpress.com/830/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/g33kgrrl.wordpress.com/830/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/g33kgrrl.wordpress.com/830/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/g33kgrrl.wordpress.com/830/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/g33kgrrl.wordpress.com/830/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/g33kgrrl.wordpress.com/830/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/g33kgrrl.wordpress.com/830/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/g33kgrrl.wordpress.com/830/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/g33kgrrl.wordpress.com/830/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/g33kgrrl.wordpress.com/830/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/g33kgrrl.wordpress.com/830/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/g33kgrrl.wordpress.com/830/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=830&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://g33kgrrl.wordpress.com/2009/09/30/merge-pdf-files/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc971f13cd49490bfb69e5563208d01?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">g33kgrrl</media:title>
		</media:content>
	</item>
		<item>
		<title>Disable tapping and scrolling on a Synaptics touchpad</title>
		<link>http://g33kgrrl.wordpress.com/2009/09/28/disable-tapping-and-scrolling-on-a-synaptics-touchpad-6/</link>
		<comments>http://g33kgrrl.wordpress.com/2009/09/28/disable-tapping-and-scrolling-on-a-synaptics-touchpad-6/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 04:43:13 +0000</pubDate>
		<dc:creator>g33kgrrl</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[configuration]]></category>

		<guid isPermaLink="false">http://g33kgrrl.wordpress.com/2009/09/28/disable-tapping-and-scrolling-on-a-synaptics-touchpad-6/</guid>
		<description><![CDATA[If you have a laptop and run GNU/Linux, you&#8217;ll frequently find that certain settings are enabled by default for your built-in touchpad&#8230; ones that will either strike you as a wonderful convenience, or drive you up the wall. &#8220;Tapping,&#8221; if you&#8217;re not familiar with the term, means the computer registers a click on the left [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=745&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you have a laptop and run GNU/Linux, you&#8217;ll frequently find that certain settings are enabled by default for your built-in touchpad&#8230; ones that will either strike you as a wonderful convenience, or  drive you up the wall.</p>
<p>&#8220;Tapping,&#8221; if you&#8217;re not familiar with the term, means the computer registers a click on the left mouse button if you tap the touchpad with your finger.  Unfortunately, this touchpad is almost always far too sensitive, which translates into many accidental &#8220;clicks&#8221; if you don&#8217;t move your finger with a feather touch.  (In case you can&#8217;t tell by now, I wish they&#8217;d disable tapping by default.)</p>
<p>&#8220;Scrolling&#8221; encompasses 3 types of scrolling:</p>
<ul>
<li>Vertical scrolling means a strip along the right side of the touchpad is used as if it was a scroll wheel.  If there is room to scroll in the existing window, you move your finger up and down along the right-side edge of the pad and the window will scroll up or down accordingly.  This is enabled by default.</li>
<li>Horizontal scrolling means a strip along the bottom edge of the touchpad is used like a horizontal scroll wheel.  Again, if there&#8217;s room to scroll side to side in the existing window, you move your finger left and right along the bottom edge of the pad and the window will scroll left and right.  This is enabled by default.</li>
<li>Circular scrolling will be familiar to many users of mp3 players.  Making a circular motion acts as a scroll wheel.  Clockwise scrolls down, counterclockwise scrolls up.  This must be manually enabled.</li>
</ul>
<p>Again, these are all features I&#8217;d rather disable.  The areas of the touchpad for vertical and horizontal scrolling are designated by invisible lines (whose location can be adjusted), and if you accidentally cross them you&#8217;ll be doing a lot of accidental scrolling.</p>
<p><span id="more-745"></span></p>
<p>There&#8217;s also a (I think) nice feature called &#8220;Emulate3Buttons.&#8221;  Some mice have 3 buttons, others have 2.  Like the right mouse button, the middle mouse button is designated for some special functions.  If you only have a 2-button mouse and you enable this option, you can click the left and right mouse button at the same time and it will be as if you clicked the middle mouse button on a 3-button mouse.</p>
<p>Here I&#8217;ll discuss how to change these settings by directly editing a configuration file (xorg.conf).  There are GUI-based (read: point and click) utilities to do this, such as gsynaptics, but they can be problematic for a couple of reasons.  First, in order to work they want the &#8220;SHMConfig&#8221; option to be enabled.  99 times out of 100 it won&#8217;t be, for security reasons.  Of course, in order to enable it you have to manually edit xorg.conf anyway!  If you&#8217;re gonna be there anyway, why not just make the needed changes directly?  Second, there seems to be no general consensus on <span style="text-decoration:underline;">how</span> to enable SHMConfig.  Some distributions or versions want &#8220;SHMConfig&#8221; &#8220;true&#8221; and some want &#8220;SHMConfig&#8221; &#8220;on&#8221;, and I haven&#8217;t seen any correlating factor that would tell you which one to use ahead of time.  So you may end up editing xorg.conf not once but twice.  Lastly, I mentioned security reasons &#8211; enabling SHMConfig grants extra permissions to other users of the computer in question.  If you&#8217;re the only user it&#8217;s not a problem, but if you have to share it with other, less trusted users it might not be a good idea.  As a computer technician I&#8217;ve seen a <strong>lot</strong> of nightmarish problems caused by lax security measures over the years, so when it comes to security I tend to fall on the paranoid side.  The more I see, the more paranoid I get.  So, I&#8217;ve opted for the most direct and secure method of getting this done.</p>
<p>Let&#8217;s get this show on the road, shall we?</p>
<p><strong>1. Open a terminal window and log in as root.</strong> You&#8217;ll need to edit xorg.conf as the root user (in other lingo, this is the &#8220;administrator&#8221;).  In most distributions, this will be accomplished by typing &#8220;su&#8221; at the prompt.  (Other distributions, such as (K)Ubuntu or Mint, will skip this step and instead have you type &#8220;sudo&#8221; before the command you want to execute &#8211; in other words, skip step 1 here and type &#8220;sudo&#8221; in front of the command in step 2.)  Here I&#8217;m logged in as g33kgrrl and use the su command to switch user to root. It prompts me for my root password and the prompt changes to show me I&#8217;m now logged in as root.</p>
<p><code><span style="color:#333399;"><strong>g33kgrrl@home ~ g33kgrrl$</strong></span> su<br />
password:<br />
<span style="color:#800000;"><strong>root@home ~ g33kgrrl#</strong></span></code></p>
<p><strong>2. Edit /etc/X11/xorg.conf .</strong> The configuration file xorg.conf is in the folder /etc/X11 .  Open your favourite text editor by typing its name at the command prompt followed by the location of xorg.conf .  For text editors I recommend gedit if you&#8217;re using the Gnome desktop environment and kwrite if you&#8217;re using KDE.  Here I&#8217;m using KDE so I&#8217;ll use kwrite.  Note that the &#8220;X&#8221; in &#8220;X11&#8243; is a <span style="text-decoration:underline;">capital</span> letter, not lower case &#8211; this is important!</p>
<p><code><span style="color:#800000;"><strong>root@home ~ g33kgrrl#</strong></span> kwrite /etc/X11/xorg.conf</code></p>
<p>Now  kwrite will open xorg.conf and I can start editing.</p>
<p><strong>3. Edit or create an entry (section) for your Synaptics touchpad.</strong> Scroll through the file and look for a section that starts something like this:</p>
<p><code>Section "InputDevice"<br />
<span style="margin-left:5em;">Identifier "Synaptics Touchpad"</span><br />
<span style="margin-left:5em;">Driver "synaptics"</span></code></p>
<p>The &#8220;Identifier&#8221; line might vary a bit, but the &#8220;Section&#8221; and &#8220;Driver&#8221; lines should match.  Below is the relevant section from my xorg.conf ; edit yours to match.  If you don&#8217;t see any section like this you will have to create one &#8211; you can just copy and paste the snippet below.</p>
<p><code>Section "InputDevice"<br />
<span style="margin-left:5em;">Identifier "Synaptics Touchpad"</span><br />
<span style="margin-left:5em;">Driver "synaptics"</span><br />
<span style="margin-left:5em;">Option "SendCoreEvents" "true"</span><br />
<span style="margin-left:5em;">Option "Emulate3Buttons" "on"</span><br />
<span style="margin-left:5em;">Option "MaxTapTime" "0"</span><br />
<span style="margin-left:5em;">Option "HorizScrollDelta" "0"</span><br />
<span style="margin-left:5em;">Option "VertScrollDelta" "0"</span><br />
EndSection</code></p>
<p>The option &#8220;SendCoreEvents&#8221; &#8220;true&#8221; sets the touchpad as the default mouse.<br />
&#8220;Emulate3Buttons&#8221; &#8220;on&#8221; enables 3-button emulation, described above.<br />
&#8220;MaxTapTime&#8221; &#8220;0&#8243; disables tapping.<br />
&#8220;HorizScrollDelta&#8221; &#8220;0&#8243; disables horizontal scrolling.<br />
&#8220;VertScrollDelta&#8221; &#8220;0&#8243; disables &#8211; surprise! &#8211; vertical scrolling.</p>
<p><strong>4. Incorporate the Synaptics touchpad section into the default configuration.</strong> There should also be a section that starts with:</p>
<p><code>Section "ServerLayout"</code></p>
<p>(Again, if you don&#8217;t have such a section you&#8217;ll need to add one.)  Now, just before that section ends with &#8220;EndSection&#8221; , add a line for your touchpad (highlighted in red below).  The part in quotes should match the &#8220;Identifier&#8221; line in your Synaptics touchpad section:</p>
<p><code>Section "ServerLayout"<br />
<span style="margin-left:5em;">Identifier "Default Layout"</span><br />
<span style="margin-left:5em;">Screen "Default Screen"</span><br />
<span style="margin-left:5em;">InputDevice "Generic Keyboard"</span><br />
<span style="margin-left:5em;color:#990000;">InputDevice "Synaptics Touchpad"</span><br />
EndSection</code></p>
<p><strong>5. Save your changes.</strong></p>
<p><strong>6. Reboot.</strong> Theoretically, you need only restart X (that is, log out and then log back in, without actually rebooting) in order for the changes to take effect.  But you know how the saying goes&#8230; &#8220;In theory, theory and practice are the same. In practice, they are not.&#8221;  Trust me, save yourself some trouble and just reboot.</p>
<p>That&#8217;s it &#8211; see, not too painful. Ahhhh, that&#8217;s better&#8230; isn&#8217;t life so much nicer without accidental clicks and unexpected scrolling?</p>
<p>Ω</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/g33kgrrl.wordpress.com/745/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/g33kgrrl.wordpress.com/745/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/g33kgrrl.wordpress.com/745/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/g33kgrrl.wordpress.com/745/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/g33kgrrl.wordpress.com/745/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/g33kgrrl.wordpress.com/745/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/g33kgrrl.wordpress.com/745/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/g33kgrrl.wordpress.com/745/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/g33kgrrl.wordpress.com/745/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/g33kgrrl.wordpress.com/745/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/g33kgrrl.wordpress.com/745/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/g33kgrrl.wordpress.com/745/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/g33kgrrl.wordpress.com/745/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/g33kgrrl.wordpress.com/745/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=745&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://g33kgrrl.wordpress.com/2009/09/28/disable-tapping-and-scrolling-on-a-synaptics-touchpad-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc971f13cd49490bfb69e5563208d01?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">g33kgrrl</media:title>
		</media:content>
	</item>
		<item>
		<title>Tunnel VNC over SSH through the internet</title>
		<link>http://g33kgrrl.wordpress.com/2009/08/07/tunnel-vnc-over-ssh/</link>
		<comments>http://g33kgrrl.wordpress.com/2009/08/07/tunnel-vnc-over-ssh/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 07:44:32 +0000</pubDate>
		<dc:creator>g33kgrrl</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[remote control]]></category>

		<guid isPermaLink="false">http://g33kgrrl.wordpress.com/?p=675</guid>
		<description><![CDATA[One of the things I find most fulfilling about learning technology is the ability to pass along what I&#8217;ve learned.  I can also help loved ones migrate from Windows and other proprietary software, to free/libre software like GNU/Linux, and learn how to use their improved system.  This can take the form of looking over their [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=675&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One of the things I find most fulfilling about learning technology is the ability to pass along what I&#8217;ve learned.  I can also help loved ones migrate from Windows and other proprietary software, to free/libre software like GNU/Linux, and learn how to use their improved system.  This can take the form of looking over their shoulder and showing them how to do things, or temporarily unseating them while I work on things too advanced for their current skill level.  But what if I&#8217;m far away?  My father lives on the other side of the continent, but he is very much a computer novice.  When he gets stuck, or needs some administration done, it&#8217;s much easier to show him or do it for him than it is to put him through trying to describe what he&#8217;s seeing and then attempting to understand my instructions over the phone.</p>
<p>VNC is an excellent solution to this problem.  In combination with a phone call or <a href="http://en.wikipedia.org/wiki/Voip">VOIP</a> call, it&#8217;s the next best thing to being there.   It allows me to see his screen, take control of his mouse and keyboard, and show him &#8211; &#8220;See this?  &lt;wiggling mouse&gt;  Click here.&#8221;  It also allows me to zip through administrative tasks myself, and once I&#8217;m connected, he doesn&#8217;t even have to be home.  I can do what needs to be done and then shut down his computer for him.</p>
<p>But VNC is not a complete solution.  It is, unfortunately, inherently insecure.  A <a href="http://en.wikipedia.org/wiki/Black_hat">cracker</a> (notice I did not misuse the word &#8220;<a href="http://en.wikipedia.org/wiki/White_hat">hacker</a>&#8221; as the mass media so often does &#8211; because an ethical hacker would never do this) could use VNC password cracking software to get your password(s) and then wreak havoc on your computers, or steal personal data from them.  So we need something more secure than VNC so we can use strong encryption, greatly reducing the likelihood of getting victimized by the bad guys/gals.</p>
<p>Enter SSH, or Secure SHell.  We can create an SSH connection between the two computers and then tunnel the VNC data through that connection.  In this way we have a fully encrypted connection with all the advantages of VNC.</p>
<p><span id="more-675"></span></p>
<p>For those of you who missed &#8220;Ports 101&#8243;, this is a good time to explain the concept of computer ports.  Think of your computer as a country somewhere in the world.  Computer ports are like a country&#8217;s ports of entry.  Some are on land, and for the sake of the example we&#8217;ll call these TCP ports.  Others are seaports, and we&#8217;ll call those UDP.  Together they represent locations where information and goods can be exchanged with the rest of the world.  You have 65,536 land ports (TCP) and 65,536 seaports (UDP), numbered from 0 to 65535.  Some of these ports are officially reserved for special government uses, and others are accessible to the public.  In order to keep out people who wish to do you harm, these ports must be guarded, and only let authorized traffic through.  This is your firewall&#8217;s job.  Your team of border guards is your firewall.  You can tell them to stop all incoming traffic, for example, which is technically safest but then you&#8217;re also cut off from outside goods and services.  Or you can tell them to allow only certain kinds of inbound and outbound traffic at certain designated ports, and only open those ports when you know you&#8217;ll be sending or receiving something beneficial.</p>
<p>Now, this tutorial will assume a few things for the sake of brevity and clarity.  First, I will assume you are connecting from one GNU/Linux system to another GNU/Linux system.</p>
<p>Second, I will write as though you want the SSH service on its official (usual) port: 22, and VNC on its official port: 5900.  For security&#8217;s sake, you&#8217;re well advised to change these.  Precisely because they&#8217;re &#8220;official&#8221; ports, crackers know to look for these services on these particular ports &#8211; so it&#8217;s a good idea to use different port numbers to make the services harder for them to find.  Crackers frequently use programs that scan only the relatively small number of official ports so see if they&#8217;re open.  Scanning all of your tens of thousands of ports takes significantly longer, and some won&#8217;t invest the time and effort on it &#8211; they&#8217;ll look for someone else with easier pickings.  So ideally, you&#8217;ll choose port numbers that aren&#8217;t officially assigned to anything, such as ports 49152 to 65535.  (See <a href="http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers">here</a> for a list of official port assignments.)  <strong>Warning</strong>:  This will only provide a modicum of protection from more persistent crackers, so don&#8217;t think you&#8217;re safe just because you picked port 50000; if you leave it open all the time and don&#8217;t combine this with other security measures, you&#8217;re inviting trouble.</p>
<p>Third, for reasons stated above, I&#8217;ll assume you&#8217;ve already devised a way to temporarily open ports 22 and 5900 on the server (target system).  As I mentioned, you can set them up to be open all the time, but this represents an unnecessary security risk.  They&#8217;ll be two holes in the person&#8217;s firewall just begging for some cracker to find and exploit.  It&#8217;s far better to open them only when necessary, and connect right away.  Once you&#8217;re connected, those holes are filled by your own connection, so others can&#8217;t use (or abuse) them.  Opening the ports the first time will require a little walkthrough for the person at the other end, and directions will depend on their setup &#8211; whether they are using a router, and if not, which distribution of GNU/Linux they are using.  (For details, consult the router&#8217;s user manual or the documentation for their distribution.)  After that, again depending on their setup, you may be able to use an automated script for this task &#8211; but that&#8217;s another tutorial for another day.</p>
<p>Fourth, I&#8217;ll assume you want to use password authentication.  This may seem obvious at first blush but there&#8217;s actually a better way to do it &#8211; SSH keys.  With SSH keys you don&#8217;t need passwords, and there is an extra level of security introduced because it&#8217;s even harder for a cracker to impersonate you and get unauthorized access.  But again, this is a bit of a process unto itself and is best saved for another tutorial.</p>
<p>Lastly, I&#8217;ll assume the server has the SSH server and at least one VNC server installed.  This isn&#8217;t much of a stretch, since many GNU/Linux distributions come with these installed by default.  Here I use &#8216;sshd&#8217; (from the &#8216;openssh-server&#8217; package) and &#8216;krfb&#8217; (which has its own package &#8216;krfb&#8217;).  Your client computer also needs an SSH client and VNC client, which often come installed by default as well; here I use &#8216;krdc&#8217; (package &#8216;krdc&#8217;) and &#8216;ssh&#8217; (package &#8216;openssh-client&#8217;).  If any of these are missing, use your GNU/Linux distribution&#8217;s package manager to install them.</p>
<p>The first thing to do after the ports are open, is to have the person open a terminal (on Debian GNU/Linux KDE version this is Kmenu -&gt; System -&gt; Konsole &#8211; Terminal Program).  Now they will need to switch user to root.  Then they&#8217;ll start the ssh server on the specified port &#8211; in this case, port 22.  (If they&#8217;re using Ubuntu or one of its derivatives, &#8216;su&#8217; doesn&#8217;t work &#8211; they&#8217;ll need to skip the first part and just put &#8220;sudo &#8221; before the third line below.):</p>
<p><code><span style="color:#333399;"><strong>dad@jupiter ~ dad$</strong></span> su<br />
password:<br />
<span style="color:#800000;"><strong>root@jupiter ~ dad#</strong></span> /usr/sbin/sshd -p 22<br />
<span style="color:#800000;"><strong>root@jupiter ~ dad#</strong></span></code></p>
<p>Lastly, you&#8217;ll need their external IP address in order to find their computer on the internet.  The easiest way to do this is to have them point their web browser to <a href="http://www.whatismyip.org/">http://www.whatismyip.org</a> and read the number to you.</p>
<p>Now it&#8217;s time to do some things on the client.  You&#8217;ll need to open a terminal.  The following command starts the ssh client, creates the tunnel, specifies several settings, and launches the VNC server on Dad&#8217;s system, all in one fell swoop.  (This is all on one line.)</p>
<p><code><span style="color:#333399;"><strong>g33kgrrl@saturn ~ g33kgrrl$</strong></span> ssh -p 22 -L 5900:localhost:5900 dad@74.125.45.100 'krfb -display :0'<br />
<span style="color:#333399;"><strong>g33kgrrl@saturn ~ g33kgrrl$</strong></span></code></p>
<p>Let me break this down so you can modify it to your needs.  &#8216;ssh&#8217; starts the ssh client.   &#8216;-p&#8217; tells it to connect on the server SSH port you specify, in the format &#8216;-p <em>serverSSHport</em>&#8216; &#8211; here, it&#8217;s 22.  &#8216;-L&#8217; means forward the following client port to the following computer and the following server port.  The next bit gives those specifics in the format &#8216;<em>clientVNCport</em>:localhost:<em>serverVNCport</em>&#8216;.  In this case, it&#8217;s just going straight from client VNC port 5900 to server VNC port 5900.  Next is the username of the person I&#8217;m helping and the IP address of his computer, which I obtained above, in the format &#8216;<em>username</em>@<em>IP-address</em>&#8216;.  Next, enclosed in apostrophes, is the command I&#8217;d normally need to type to start the VNC server from the terminal, which in krfb&#8217;s case is &#8216;krfb&#8217;, along with any specifications it needs; usually you&#8217;ll at least want to specify which display to use with &#8216;display :0&#8242; (that&#8217;s a &#8216;zero&#8217; not a letter &#8216;O&#8217;).</p>
<p>After you run the above command, it will ask you for the password the person is using on their computer.  Presumably, if they already don&#8217;t mind you having control of their system they won&#8217;t mind you having their password either.  (There&#8217;s a more elegant way, involving creating a separate account for you on their system, but I&#8217;m trying to keep things simple here.)</p>
<p>After entering the password, the VNC server should start on the server machine.  If you&#8217;re using krfb as the VNC server, the person at the server end should now notice the kfrb window popping up on their computer.</p>
<div id="attachment_677" class="wp-caption alignnone" style="width: 310px"><a href="http://g33kgrrl.files.wordpress.com/2009/08/krfb_initial_screen.png"><img class="size-medium wp-image-677" title="krfb - initial screen" src="http://g33kgrrl.files.wordpress.com/2009/08/krfb_initial_screen.png?w=300&#038;h=224" alt="krfb - initial screen" width="300" height="224" /></a><p class="wp-caption-text">krfb - initial screen</p></div>
<p>IMHO (In My Humble Opinion), the easiest way here is to have them click the &#8216;Configure&#8221; button at the bottom.  It will give them a window like this:</p>
<div id="attachment_679" class="wp-caption alignnone" style="width: 310px"><a href="http://g33kgrrl.files.wordpress.com/2009/08/krfb_configure_screen.png"><img class="size-medium wp-image-679" title="krfb - configure screen" src="http://g33kgrrl.files.wordpress.com/2009/08/krfb_configure_screen.png?w=300&#038;h=235" alt="krfb - configure screen" width="300" height="235" /></a><p class="wp-caption-text">krfb - configure screen</p></div>
<p>Have them put an X in &#8216;Allow uninvited connections&#8217;</p>
<p>Make sure &#8216;Announce  service on the network&#8217; is <span style="text-decoration:underline;">un</span>checked</p>
<p>Make sure &#8216;Confirm uninvited connections before accepting&#8217; is <span style="text-decoration:underline;">un</span>checked</p>
<p>Make sure &#8216;Allow uninvited connections to control the desktop&#8217; is checked</p>
<p>In the &#8216;Password&#8217; box, have them enter their login password</p>
<div id="attachment_681" class="wp-caption alignnone" style="width: 310px"><a href="http://g33kgrrl.files.wordpress.com/2009/08/krfb_configure_connections.png"><img class="size-medium wp-image-681" title="krfb - configure connections" src="http://g33kgrrl.files.wordpress.com/2009/08/krfb_configure_connections.png?w=300&#038;h=235" alt="krfb - configure connections" width="300" height="235" /></a><p class="wp-caption-text">krfb - configure connections</p></div>
<p>They can click &#8216;Apply&#8217; and &#8216;OK&#8217; &#8211; krfb is now all set up so that the <em>next</em> time you connect to them, they won&#8217;t have to configure it at all.  Lest you worry about the security of this setup, I should mention that krfb will exit when they shut their system down, so someone has to manually launch it in order to start it up again.  And we&#8217;re only opening the ports when we&#8217;re about to connect to them, so as long as their firewall is both enabled and properly configured (you <em><strong>will</strong></em> double-check it to be absolutely sure, won&#8217;t you?), it isn&#8217;t something to lose sleep over.</p>
<p>Meanwhile, back at the client, you can launch your VNC client.  As mentioned previously, I&#8217;m using krdc.  Its location in the menu will vary (in Debian it&#8217;s Kmenu -&gt; Internet -&gt; Krdc &#8211; Remote Desktop Connection), or you can just type &#8216;krdc&#8217; at a terminal.  It will give you a window that looks like this:</p>
<div id="attachment_682" class="wp-caption alignnone" style="width: 310px"><a href="http://g33kgrrl.files.wordpress.com/2009/08/krdc_initial_screen.png"><img class="size-medium wp-image-682" title="krdc - initial screen" src="http://g33kgrrl.files.wordpress.com/2009/08/krdc_initial_screen.png?w=300&#038;h=101" alt="krdc - initial screen" width="300" height="101" /></a><p class="wp-caption-text">krdc - initial screen</p></div>
<p>In the box, you&#8217;ll need to give it the protocol (vnc), the server&#8217;s IP address, and the server port, in the format vnc://<em>serverIP</em>:<em>serverVNCport</em> :</p>
<div id="attachment_710" class="wp-caption alignnone" style="width: 310px"><a href="http://g33kgrrl.files.wordpress.com/2009/08/krdc_configure_connection1.png"><img class="size-medium wp-image-710" title="krdc - configure connection" src="http://g33kgrrl.files.wordpress.com/2009/08/krdc_configure_connection1.png?w=300&#038;h=101" alt="krdc - configure connection" width="300" height="101" /></a><p class="wp-caption-text">krdc - configure connection</p></div>
<p>Click &#8216;Connect&#8217;.</p>
<p>It should briefly flash a window saying it&#8217;s &#8216;authenticating.&#8217;  Next it will say that &#8216;Access to the system requires a password.&#8217;  Enter the person&#8217;s login password.</p>
<p>Now krdc should open a large window in which you can see the server&#8217;s desktop.  I always like to click &#8216;Scale&#8217; at the top left so their whole screen fits neatly in the krdc window.</p>
<p>Congratulations!  You are now the master of your own destiny &#8212; or at the very least, of this person&#8217;s desktop.  Well, sometimes ya gotta start small.</p>
<p>Ω</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/g33kgrrl.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/g33kgrrl.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/g33kgrrl.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/g33kgrrl.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/g33kgrrl.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/g33kgrrl.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/g33kgrrl.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/g33kgrrl.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/g33kgrrl.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/g33kgrrl.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/g33kgrrl.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/g33kgrrl.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/g33kgrrl.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/g33kgrrl.wordpress.com/675/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=675&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://g33kgrrl.wordpress.com/2009/08/07/tunnel-vnc-over-ssh/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc971f13cd49490bfb69e5563208d01?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">g33kgrrl</media:title>
		</media:content>

		<media:content url="http://g33kgrrl.files.wordpress.com/2009/08/krfb_initial_screen.png?w=300" medium="image">
			<media:title type="html">krfb - initial screen</media:title>
		</media:content>

		<media:content url="http://g33kgrrl.files.wordpress.com/2009/08/krfb_configure_screen.png?w=300" medium="image">
			<media:title type="html">krfb - configure screen</media:title>
		</media:content>

		<media:content url="http://g33kgrrl.files.wordpress.com/2009/08/krfb_configure_connections.png?w=300" medium="image">
			<media:title type="html">krfb - configure connections</media:title>
		</media:content>

		<media:content url="http://g33kgrrl.files.wordpress.com/2009/08/krdc_initial_screen.png?w=300" medium="image">
			<media:title type="html">krdc - initial screen</media:title>
		</media:content>

		<media:content url="http://g33kgrrl.files.wordpress.com/2009/08/krdc_configure_connection1.png?w=300" medium="image">
			<media:title type="html">krdc - configure connection</media:title>
		</media:content>
	</item>
		<item>
		<title>No Linus, it&#8217;s not about Microsoft-hating</title>
		<link>http://g33kgrrl.wordpress.com/2009/07/27/no-linus-its-not-about-microsoft-hating/</link>
		<comments>http://g33kgrrl.wordpress.com/2009/07/27/no-linus-its-not-about-microsoft-hating/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 18:30:57 +0000</pubDate>
		<dc:creator>g33kgrrl</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[GNU project]]></category>
		<category><![CDATA[Linux kernel]]></category>
		<category><![CDATA[software freedom]]></category>

		<guid isPermaLink="false">http://g33kgrrl.wordpress.com/?p=630</guid>
		<description><![CDATA[Linus Torvalds says Microsoft hatred is a disease As time goes on, I like Linus Torvalds less and less. He&#8217;s all too willing to allow people to wrongly credit him for the whole free software movement instead of Richard Stallman. He doesn&#8217;t actively claim it, but neither does he make any effort to set the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=630&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.stumbleupon.com/s/#2QyK4x/www.osnews.com/story/21887/Linus_quot_Microsoft_Hatred_Is_a_Disease_quot_/">Linus Torvalds says Microsoft hatred is a disease</a></p>
<p>As time goes on, I like Linus Torvalds less and less.  He&#8217;s all too willing to allow people to wrongly credit him for the whole free software movement instead of Richard Stallman.  He doesn&#8217;t actively claim it, but neither does he make any effort to set the record straight when mistakenly given this credit or when erroneously introduced as &#8220;the one who started it all.&#8221;  To add insult to injury, he does this while minimizing the role of the GNU programming and debugging tools that made the Linux kernel possible, the GNU GPL that enabled its popularity, and the entire GNU operating system started in 1984 that it fits into, all while teaching <em>against</em> the free software principles that put all those things in place.  He&#8217;s happy to have people call this combination &#8220;Linux,&#8221; rather than GNU/Linux, even though Linux is just the kernel and makes up only about 1/10 as much code as the GNU software in a given &#8220;Linux&#8221; distribution.</p>
<p>I respect Linus highly as a programmer, and for his contributions to GNU/Linux&#8217; success.  But I don&#8217;t trust him as my IT morality compass &#8211; I think he&#8217;s got it wrong and I am not impressed with his lack of integrity either.</p>
<p>Contrary to what Linus would have you believe, this is not about hating Microsoft.  It&#8217;s about fighting against those who wish to compromise our freedom by actively stifling competitors &#8211; especially free/libre open source software competitors.  Microsoft has been convicted of a wide variety of antitrust practices, on numerous occasions, by U.S. and E.U. federal courts &#8211;  and was recently fined <em>again</em> by the E.U. for not complying with the terms of the judgement against them.  Just do a web search for &#8220;Microsoft antitrust&#8221; and see just how far down the rabbit hole goes.  Anyone who so actively fights consumer choice is the enemy of the consumers and of the IT free market as a whole.  Microsoft is but one exceptional example, but there are many others.  And remember, there&#8217;s a big difference between hating someone vs. hating what they do.</p>
<p>Ω</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/g33kgrrl.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/g33kgrrl.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/g33kgrrl.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/g33kgrrl.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/g33kgrrl.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/g33kgrrl.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/g33kgrrl.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/g33kgrrl.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/g33kgrrl.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/g33kgrrl.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/g33kgrrl.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/g33kgrrl.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/g33kgrrl.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/g33kgrrl.wordpress.com/630/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=630&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://g33kgrrl.wordpress.com/2009/07/27/no-linus-its-not-about-microsoft-hating/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc971f13cd49490bfb69e5563208d01?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">g33kgrrl</media:title>
		</media:content>
	</item>
		<item>
		<title>Yet Another Windows Nightmare, aka YAWN&#8230;</title>
		<link>http://g33kgrrl.wordpress.com/2009/07/17/yet-another-windows-nightmare-aka-yawn/</link>
		<comments>http://g33kgrrl.wordpress.com/2009/07/17/yet-another-windows-nightmare-aka-yawn/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 14:53:15 +0000</pubDate>
		<dc:creator>g33kgrrl</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[migrating]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[software freedom]]></category>
		<category><![CDATA[Windows frustrations]]></category>

		<guid isPermaLink="false">http://g33kgrrl.wordpress.com/?p=597</guid>
		<description><![CDATA[Attacks against unpatched Microsoft bug multiply Any seasoned Windows user will not be surprised that there&#8217;s another known Internet Explorer security bug that Microsoft has taken much to long to address. Yes, they have released a little workaround script to temporarily disable the dangerous ActiveX control in question. But as a computer repair technician of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=597&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.computerworld.com/s/article/9135499/Attacks_against_unpatched_Microsoft_bug_multiply">Attacks against unpatched Microsoft bug multiply</a></p>
<p>Any seasoned Windows user will not be surprised that there&#8217;s another known Internet Explorer security bug that Microsoft has taken much to long to address.  Yes, they have released a little workaround script to temporarily disable the dangerous ActiveX control in question.  But as a computer repair technician of many years I can assure you that the article&#8217;s assessment of that workaround is quite correct.  Most people aren&#8217;t keeping up on this sort of thing &#8211; especially since it happens so annoyingly often &#8211; and are unlikely to use that script, since it requires taking time out of real life to go download and install it.  This, after another similar incident <a href="http://www.computerworld.com/s/article/9135228/Microsoft_confirms_attacks_against_IE6_IE7">last week</a>.</p>
<p>These frequent opportunities to have one&#8217;s computer invaded and/or data stolen or deleted should serve as a wake up call to how truly dangerous it is to run Windows.  With all the spyware out there nowadays, it&#8217;s pure lunacy to do online banking or taxes or any other sensitive transactions on a Windows machine any more.  I have had customers tell me horror stories about getting victimized by identity theft after making such transactions, and finding out later that their Windows machine got infected with spyware shortly before it happened.  Danger, Will Robinson!</p>
<p>As a computer tech I can also tell you that by and large the most common repair these days is removal of viruses, spyware, adware, trojan horses, and keyloggers.  I speak as someone who has been cleaning up Microsoft&#8217;s messes for a long time when I say it continually amazes me how much time, money, and energy are spent just keeping Windows systems free of malware.  This in addition to the hefty 100 or 200MB service packs one has to keep downloading and installing, and having to deal with sudden crashes so frequent and ubiquitous they earned their own moniker in the computer world &#8211; &#8220;BSoD&#8221;  for <a href="http://en.wikipedia.org/wiki/Bsod">Blue Screen of Death</a>.  (Here for your viewing pleasure is a <a href="http://www.youtube.com/watch?v=RgriTO8UHvs">video</a> where Bill Gates himself gets hit with one of these at Comdex, a large computer conference&#8230; poetic justice, many would say.)</p>
<p>So I&#8217;ve used the acronym YAWN here for the reason that these occurrences are the same boring song sung over and over again.  If you&#8217;re not fed up by now, you haven&#8217;t been paying attention.</p>
<p>When you get sick and tired of being sick and tired, you&#8217;ll seek an alternative.</p>
<p>Some people respond to this problem by switching to a Mac.  But I think that&#8217;s jumping from the frying pan into the fire.  Part of the problem behind Microsoft&#8217;s shoddy software is the fact that they alone control that software, and users&#8217; freedom of choice is the last thing they care about.  That&#8217;s why they are far more concerned about using antitrust tactics  to force out competitors (<a href="http://news.cnet.com/2100-1001-238758.html">1</a> <a href="http://en.wikipedia.org/wiki/United_States_v._Microsoft">2</a> <a href="http://en.wikipedia.org/wiki/European_Union_Microsoft_competition_case">3</a> <a href="http://boycottnovell.com/2009/01/28/derail-dell-gnu-linux/">4</a> <a href="http://arstechnica.com/microsoft/news/2009/04/doj-wants-microsoft-antitrust-judgment-extended-to-2011.ars">5</a> &#8211; oh heck just google &#8220;Microsoft antitrust&#8221;) than they are about making a superior product.  Now, while Apple&#8217;s software is clearly much better than Microsoft&#8217;s, they&#8217;re worse for user freedom of choice.  This is because, like Microsoft, they have exclusive control over the software &#8211; but they <em>also</em> have exclusive control over much of the hardware.  If Microsoft chooses not to remedy a software issue, Windows users are out of luck.  Mac users are subject to that  problem too, but worse because the same exact concept also applies to hardware.  If Apple decides it has no plans to remedy a hardware problem (and I have heard various complaints about this),  Mac users are out of luck on this front too.  I don&#8217;t recommend taking the Apple route, for these reasons.</p>
<p>GNU/Linux is easier than ever to use, and built with security and user freedom in mind.   It has an active worldwide community that provides support and continuous development of free software &#8211; &#8220;free&#8221; as in &#8220;freedom&#8221; and often &#8220;free&#8221; as in save your money.</p>
<p>Ω</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/g33kgrrl.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/g33kgrrl.wordpress.com/597/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/g33kgrrl.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/g33kgrrl.wordpress.com/597/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/g33kgrrl.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/g33kgrrl.wordpress.com/597/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/g33kgrrl.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/g33kgrrl.wordpress.com/597/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/g33kgrrl.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/g33kgrrl.wordpress.com/597/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/g33kgrrl.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/g33kgrrl.wordpress.com/597/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/g33kgrrl.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/g33kgrrl.wordpress.com/597/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=597&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://g33kgrrl.wordpress.com/2009/07/17/yet-another-windows-nightmare-aka-yawn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc971f13cd49490bfb69e5563208d01?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">g33kgrrl</media:title>
		</media:content>
	</item>
		<item>
		<title>Install GNU/Linux without a CD &#8211; using your internal hard drive</title>
		<link>http://g33kgrrl.wordpress.com/2009/06/29/make-a-gnu-linux-livepartition/</link>
		<comments>http://g33kgrrl.wordpress.com/2009/06/29/make-a-gnu-linux-livepartition/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 16:06:02 +0000</pubDate>
		<dc:creator>g33kgrrl</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[installation]]></category>

		<guid isPermaLink="false">http://g33kgrrl.wordpress.com/?p=490</guid>
		<description><![CDATA[Note: This tutorial&#8217;s fraternal twin, Install GNU/Linux without a CD &#8211; using a liveUSB or external hard drive, is here . Maybe you just don&#8217;t like to burn every distribution to a CD and fill the landfills with CD&#8217;s they only used once or twice. Maybe you don&#8217;t have a CD or DVD drive on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=490&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>Note: This tutorial&#8217;s fraternal twin, Install GNU/Linux without a CD &#8211; using a liveUSB or external hard drive, is <a href="http://g33kgrrl.wordpress.com/2009/06/22/make-a-gnu-linux-liveusb/">here</a> .</em></p>
<p>Maybe you just don&#8217;t like to burn every distribution to a CD and fill the landfills with CD&#8217;s they only used once or twice. Maybe you don&#8217;t have a CD or DVD drive on your computer (e.g., if you have a netbook), or don&#8217;t happen to have any CD-R&#8217;s or CD-RW&#8217;s on hand. You may like the fact that installing off of a USB key or straight off a hard drive is considerably faster than installing from a CD.  The USB key option also offers easier portability &#8211; if you happen to run into someone out there who would like GNU + Linux installed, it&#8217;s easier to have your USB key with you all the time than a CD.  Or you may have multiple computers to install to, and it&#8217;s faster to have them all pull the installation files from a central location than to burn a bunch of CD&#8217;s every time.</p>
<p>There are a few ways to go about CD-less installations, but I&#8217;m going to cover the 2 most common ones.  One is by using an external storage device that plugs into a port, such as a USB key or external hard drive (shown on <a href="http://g33kgrrl.wordpress.com/2009/06/22/make-a-gnu-linux-liveusb/">another tutorial</a>).  The other is by creating a separate partition for this purpose on your internal hard drive, the one that&#8217;s already inside your computer (shown on this tutorial). Here are some quick facts about both to help you decide which will work best for you.</p>
<p>external storage:</p>
<ul>
<li>simpler setup</li>
<li>you can use it on more than one computer</li>
<li>won&#8217;t work on older computers</li>
<li>small portable devices are easily lost or stolen</li>
<li>an external device is one more thing to remember to bring and carry around</li>
</ul>
<p>internal hard drive:</p>
<ul>
<li>works great on older computers</li>
<li>it&#8217;s always with your computer; no worrying about loss, theft, or forgetting to bring it</li>
<li>usable only on the computer you&#8217;ve set it up on</li>
<li>less straightforward setup &#8211; especially if you&#8217;re not familiar with hard drive partitioning</li>
<li>more potential for messing up your existing data if you&#8217;re not careful &#8211; again, especially if you&#8217;re not familiar with hard drive partitioning</li>
<li>the hard drive partitioning part only needs to be done once, so you don&#8217;t have to do it again if you decide to change to a different virtual CD later</li>
</ul>
<p><span id="more-490"></span></p>
<p>For the purpose of this tutorial, I&#8217;ll assume you assume that you already have GNU/Linux installed on this computer and are using <a href="http://en.wikipedia.org/wiki/GNU_GRUB">GRUB</a> as your bootloader.  (Translation: Using this method to wipe your Windows partition and switch to GNU/Linux is another tutorial for another day.)  GRUB tells the system where to find the files it needs to boot up, and manages your boot options. If you&#8217;ve already been running GNU/Linux on this computer, and didn&#8217;t go out of your way to install LILO instead, it&#8217;s pretty safe to assume you&#8217;re already using GRUB.</p>
<p>I&#8217;ll also assume that you currently have a way to boot into GNU/Linux, <strong>other</strong> than the target hard drive.  Usually this means booting to an existing liveCD or liveUSB (almost any distribution will do).  But if you have a second hard drive inside your computer that you can boot to, or know how to temporarily connect one, that would work too.  This assumption is for two reasons: (1) you can&#8217;t modify the partitions of a hard drive that is in use, and (2) if you make a mistake and render your hard drive temporarily unbootable, it&#8217;s not a big deal &#8211; but you will need to boot to something else in order to fix it.</p>
<p>I recommend at least 3 or 4 GB of free space available on your hard drive, even though only about 2 GB of that goes to the new partition.  To simulate a liveCD you need space for a 700 MB ISO file, 700 MB of files to be extracted from that file, and extra space for the system to work within.  Shrinking a partition that&#8217;s almost full takes a really long time, and runs a significantly higher risk of data corruption while being resized.  That risk is still relatively low, but it does happen.  Operating systems also don&#8217;t like it when they don&#8217;t have enough space for their temporary files and such.  (If you want the option of booting to virtual liveDVD&#8217;s as well, I suggest at least 12 GB space; 4.7 GB ISO + 4.7 GB files + working space).</p>
<p>Some people prefer to go with <a href="http://unetbootin.sourceforge.net">UNetbootin</a> (<a href="http://en.wikipedia.org/wiki/UNetbootin">wikipedia page</a>) rather than use the process described here.  But UNetbootin doesn&#8217;t do the hard drive partitioning part, so you&#8217;d still have to do that.  It also has its own little idiosyncrasies sometimes. If it hasn&#8217;t been tested with and customized for the distribution you want to install, you may get problems no one knows how to solve yet. And it can be hard to troubleshoot if something goes wrong because you don&#8217;t know exactly what it&#8217;s doing and where it&#8217;s putting the files you need. With the method below you have full control over the process.</p>
<p>This tutorial happens to be geared toward PCLinuxOS 2009.1, but many other distributions will work with this process.  (Under normal circumstances, it&#8217;s not necessary to do this with PCLinux 2009.1 because it already has a special LiveUSB creator utility which can also write to hard drives &#8211; but I&#8217;m helping my son with a project.)  My testing back in January showed this process to work with PCLinuxOS 2007.  It worked for Linux Mint 6 too, but due to a bug in the installer itself I couldn&#8217;t get through the actual install once started.  Other distributions may have extra steps specific to them to make them work.  OpenSUSE 11.1 failed with an error saying it &#8220;couldn&#8217;t find the live image configuration file,&#8221; and I found out that it required a long additional process I simply wasn&#8217;t willing to undertake.</p>
<p style="padding-left:30px;"><em>Warning:  During <a href="http://g33kgrrl.wordpress.com/2009/01/02/adventures-in-linux-remote-installation-or-not/">my last attempt to do this with Linux Mint</a>, a distribution based on Ubuntu, a bug in the Ubuntu installer (called Ubiquity) set me up for a nightmare in which my father&#8217;s system (on the other side of the continent) was rendered unbootable without a liveCD.  I don&#8217;t know if they&#8217;ve fixed the problem in Ubuntu/Kubuntu 9.04 so be especially careful.</em></p>
<p><span style="color:#800000;"><strong>Warning: before you do anything past this point, make sure your data is backed up on some other drive or disc &#8211; in case anything goes wrong.</strong></span>.  Seriously, disaster recovery sucks.</p>
<p>Ready?  Here we go&#8230;</p>
<p><img title="More..." src="http://g33kgrrl.wordpress.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /><!--more--></p>
<p><strong>1. Boot to something other than the target hard drive.</strong> You cannot modify the partitions on a hard drive that is currently in use. As I mentioned above, many people use a LiveCD (almost any GNU/Linux distribution will do) or temporarily boot to a different hard drive.  As long as your target hard drive is still connected, and you have booted to an alternate device, you can make the changes you need.</p>
<p><strong>2. Open a terminal and log in as root.</strong> Here I&#8217;m logged in as g33kgrrl and use the su command to switch user to root. It prompts me for my root password and the prompt changes to show me I&#8217;m now logged in as root.</p>
<p><code><span style="color:#333399;"><strong>g33kgrrl@home ~ g33kgrrl$</strong></span> su<br />
password:<br />
<span style="color:#800000;"><strong>root@home ~ g33kgrrl#</strong></span></code></p>
<p><strong>3. Find out the name(s) of your existing partition(s), if you don&#8217;t already know.</strong></p>
<p><code><span style="color:#800000;"><strong>root@home ~ g33kgrrl#</strong></span> fdisk -l<br />
Disk /dev/sda: 80.0 GB, 80026361856 bytes<br />
255 heads, 63 sectors/track, 9729 cylinders<br />
Units = cylinders of 16065 * 512 = 8225280 bytes</code></p>
<p><code>Device     Boot  Start   End      Blocks   Id  System<br />
/dev/sda1   *        1  1044     8385898+  83  Linux<br />
/dev/sda2         1045  1566     4192965   82  Linux swap / Solaris<br />
/dev/sda3         1567  9729    65569297+  83  Linux</code></p>
<p>Here I have a list of the partitions on my hard disk.  The partition names are in the &#8220;Device&#8221; column.  Partition names are designated by tacking a number to the end of the storage device&#8217;s name.  Thus, the 1st partition on device <em>/dev/sda</em> is <em>/dev/sda1</em> , the 2nd partition is <em>/dev/sda2</em> , and so on.  Here you can see I have 3 partitions on disk <em>/dev/sda</em> , my main hard drive, which are numbered 1, 2, and 3.  In this case, <em>/dev/sda1</em> is my working GNU/Linux installation, <em>/dev/sda2</em> is a special system area called a swap partition, and <em>/dev/sda3</em> is where I keep all my data (I use a separate partition for <em>/home</em> &#8211; to be covered in a future tutorial).  Your list will likely be different from this one; for example, you might have only one partition called <em>/dev/hda1</em> .  Take note of the name(s) of the partition(s) because you&#8217;ll need this later.</p>
<p><strong>4. Shrink at least one partition to make space.</strong> You&#8217;ll need to use a partitioning utility such as <a href="http://gparted.sourceforge.net">Gparted</a>, which comes with most GNU/Linux distributions and you can also run it from their LiveCDs. Resize at least one existing partition so that you end up with unallocated space at the end of your hard drive.  I recommend making at least 2 GB of space.  You may be able to squeak by with as little as 1 GB, but it&#8217;s really best to give it more working room than that.  There&#8217;s a good Gparted tutorial on how to shrink a partition <a href="http://gparted.sourceforge.net/larry/resize/resizing.htm">here</a>, which includes screenshots.  (I may well expand this tutorial with full step-by-step screenshots in the future, but in the interest of getting this tutorial off the ground, I&#8217;ve skipped that step for now.)</p>
<p>I will shrink my 3rd partition, <em>/dev/sda3</em>, to make 2 GB of unallocated space at the end of my drive.</p>
<p><strong>5. Create a new ext3 partition in the new space.</strong> You can do this using the same partitioning utility as in step 2.  There&#8217;s another Gparted tutorial with screenshots that covers the basic process <a href="http://maketecheasier.com/resize-create-partitions-with-gnome-partition-editor-gparted/2009/01/06">here</a>, but make sure you choose file system type &#8220;ext3&#8243; when you create the new partition.</p>
<p><strong>6. Double-check the changes you&#8217;ve requested and apply them.</strong> No changes are made to your partitions until you tell the utility to apply them.  This is your last chance to make sure everything is correct.  When you&#8217;re sure, click Apply.</p>
<p>This will take some time depending on your setup.  You deserve a break after all this hard work.  How about a nice cold lemonade, or a nice hot coffee?</p>
<p><strong>7. Reboot.</strong> Once the changes are done, your computer needs to reboot in order to recognize them properly.  You don&#8217;t need to boot to an alternate drive any more if you have a working GNU/Linux installation on your target hard drive &#8211; the partitioning part is done.</p>
<p><strong>8. If you haven&#8217;t already, download the ISO for the distribution in question.</strong> Take note of what folder you saved it in as you will need this later.</p>
<p><strong>9. Make sure it downloaded and saved correctly</strong> by checking the ISO file&#8217;s integrity.  If you don&#8217;t know how to do this, I have a tutorial on it <a href="http://g33kgrrl.wordpress.com/2009/03/05/verify-the-integrity-of-an-iso-or-burned-cd/">here</a>.  This is an important step that can save you a lot of headaches.</p>
<p><strong>10. Open a terminal and log in as root.</strong> This is just like step 2.</p>
<p><code><span style="color:#333399;"><strong>g33kgrrl@home ~ g33kgrrl$</strong></span> su<br />
password:<br />
<span style="color:#800000;"><strong>root@home ~ g33kgrrl#</strong></span></code></p>
<p><strong>11. Find out the name of the new partition.</strong> This is much like step 3.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ g33kgrrl#</strong></span> fdisk -l<br />
Disk /dev/sda: 80.0 GB, 80026361856 bytes<br />
255 heads, 63 sectors/track, 9729 cylinders<br />
Units = cylinders of 16065 * 512 = 8225280 bytes</code></p>
<p><code>Device     Boot  Start   End      Blocks   Id  System<br />
/dev/sda1   *        1  1044     8385898+  83  Linux<br />
/dev/sda2         1045  1566     4192965   82  Linux swap / Solaris<br />
/dev/sda3         1567  9437    63223807+  83  Linux<br />
/dev/sda4         9438  9729     2345490   83  Linux</code></p>
<p>Now you can compare your list of partitions from step 3, both to ensure that your changes worked and also to find out the name of the new partition since you&#8217;ll need it in the next step.  Before, I had 3 partitions numbered 1, 2, and 3 on disk <em>/dev/sda</em> .  They are still there, but now <em>/dev/sda3</em> is smaller (you can tell because the number in the &#8220;Blocks&#8221; column is smaller) and there is now a 4th partition called <em>/dev/sda4</em> .</p>
<p><strong>12. Make a special directory on the hard drive which you will use to access your new partition.</strong> This special directory is called a &#8220;mount point.&#8221;</p>
<p><code><span style="color:#800000;"><strong>root@home ~ g33kgrrl#</strong></span> mkdir /mnt/livecd</code></p>
<p><strong>13. Mount the new partition to this new mount point</strong> (don&#8217;t worry if you don&#8217;t know what that means).  In this step, you tell the computer to give you access to the new partition through the special location you created in the last step.  You&#8217;ll need the name of your new partition, which you took note of earlier.  Recall that mine is <em>/dev/sda4</em> .  As always, change this as needed to match your setup.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ g33kgrrl#</strong></span> mount -t ext3 /dev/sda4 /mnt/livecd</code></p>
<p><strong>14. Make a  mount point on the hard drive which will act as your virtual CD.</strong></p>
<p><code><span style="color:#800000;"><strong>root@home ~ g33kgrrl#</strong></span> mkdir /mnt/iso</code></p>
<p><strong>15. Mount the ISO to this new mount point as a loop device</strong> (don&#8217;t worry if you don&#8217;t know what that means either).  We need to point this command to the ISO file you downloaded.  Here, I&#8217;ve saved it to <em>/home/g33kgrrl</em> and the ISO file name is <em>pclinuxos-2009.1.iso</em> , so change this to match your setup.  The whole command  all goes on one line.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ g33kgrrl#</strong></span> mount -t iso9660 /home/g33kgrrl/pclinuxos-2009.1.iso /mnt/iso -o loop</code></p>
<p><strong>16. Change directory to the location of your virtual CD.</strong></p>
<p><code><span style="color:#800000;"><strong>root@home ~ g33kgrrl#</strong></span> cd /mnt/iso<br />
<span style="color:#800000;"><strong>root@home ~ iso#</strong></span></code></p>
<p><strong>17. You should now be able to list the contents of the virtual CD and see some folders and files.</strong> Which ones you see will vary by which distribution you&#8217;re using, but as long as you see some there you&#8217;re on the right track. Here I see 2 folders and one file.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ iso#</strong></span> ls<br />
<span style="color:#000099;">boot/     isolinux/</span> livecd.sqfs</code></p>
<p><strong>18. Copy the contents of the virtual CD to your new partition.</strong></p>
<p><code><span style="color:#800000;"><strong>root@home ~ iso#</strong></span> cp -r . /mnt/livecd</code></p>
<p>(The &#8220;.&#8221; tells it to copy everything from the current directory.) This will take a few minutes or so since there is lots to copy. Now&#8217;s a great time for a coffee or a sandwich, don&#8217;t you think?</p>
<p>When it&#8217;s done you&#8217;ll get another prompt.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ iso#</strong></span></code></p>
<p><strong>19. Find the 2 boot files on the virtual CD.</strong> Unfortunately, their names and location vary a bit between distributions. With PCLinuxOS 2009.1, they are named  <em>vmlinuz</em> and <em>initrd.gz</em> files and are in the <em>isolinux</em> folder.  Your distribution may do things differently. The 2 files may be in a folder other than <em>isolinux</em>, have version numbers in their names (e.g.,  <em>vmlinuz-2.4.18</em>), or the part after the &#8220;.&#8221; may be different (e.g., <em>initrd.img</em>). You&#8217;ll need to look through the subdirectories on the virtual CD, and modify your commands to match the locations and filenames of these 2 files.The good news is that they will usually be only one folder below where you are now.  In other words, you shouldn&#8217;t have to go digging through several layers of folders to find them.</p>
<p>Let&#8217;s say I don&#8217;t know where they are.  I list the contents of my virtual CD.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ iso#</strong></span> ls<br />
<span style="color:#000099;">boot/     isolinux/</span> livecd.sqfs</code></p>
<p>I see 2 folders called <em>boot</em> and <em>isolinux</em> and a file named <em>livecd.sqfs</em> .  I don&#8217;t see the files I need so I dig one level deeper by checking the contents of these 2 folders.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ iso#</strong></span> ls boot<br />
<span style="color:#000099;">grub/</span></code></p>
<p>Nope&#8230;  just another folder, named <em>grub</em> .  But I know I shouldn&#8217;t have to dig that far, so instead of checking the contents of the <em>grub</em> folder, I check <em>isolinux</em> .</p>
<p><code><span style="color:#800000;"><strong>root@home ~ iso#</strong></span> ls isolinux<br />
<span style="color:#800080;margin-right:3em;">back.jpg </span> el.hlp     isolinux.bin     memtest        ru.hlp     <span style="color:#800080;margin-right:3em;">welcome.jpg</span> bg.hlp    en.hlp     isolinux.cfg     nb.hlp     sl.hlp     zh_CN.hlp     boot.cat     es.hlp     it.hlp     nl.hlp     star.dat     zh_TW.hlp     bootlogo     fi.hlp     ja.hlp     pclinuxos.pcx     sv.hlp     cs.hlp     fr.hlp     lang     pl.hlp     <span style="color:#800080;margin-right:3em;">timer_a.jpg</span> da.hlp    hu.hlp     langs     pt_BR.hlp     uk.hlp     de.hlp     <span style="color:#ff0000;margin-right:3em;">initrd.gz</span> <span style="color:#008000;margin-right:3em;">mediacheck*</span> pt.hlp     vmlinuz</code></p>
<p>There they are, in <em>isolinux</em> .  Take note of which folder you found yours in and what their exact names are.  You&#8217;ll need this in a bit.</p>
<p><strong>21. Open your favourite text editor (as root) and edit your GRUB configuration file.</strong> I recommend <em>kwrite</em> or <em>gedit</em> for ease of use.  Unfortunately, this file&#8217;s name can be one of two things depending on your distribution. Many distributions use the newer name of <em>menu.lst</em> (that&#8217;s an &#8220;L&#8221; not a number &#8220;1&#8243;).  A shrinking number still use <em>grub.conf</em> .  Either way, it should be in the <em>/boot/grub</em> folder.  Mine is <em>menu.lst</em> so this is how I do it:</p>
<p><code><span style="color:#800000;"><strong>root@home ~ iso#</strong></span> kwrite /boot/grub/menu.lst</code></p>
<p>This saves me a step by launching <em>kwrite</em> and immediately opening the file I want to edit.</p>
<p>Note that <em>menu.lst</em> should have some text in it already.  If it&#8217;s completely blank, your distribution uses <em>grub.conf</em> &#8211; so open that instead.</p>
<p><strong>24. Add a boot menu option to the end of this file.</strong> There are 4 lines you need to add here, and they will need some explaining.  When you boot up to GNU/Linux, you are normally greeted with a menu that gives you different boot options.  This is the GRUB menu.  After a few seconds it times out and sends you on your way to whatever menu option is set as your default.  By editing GRUB&#8217;s configuration file, you will be adding another menu option which will appear at the bottom of that menu.</p>
<p>Line 1 starts with the word <em>title</em> .  This is followed by a space and then whatever description you want for this option.  I&#8217;ve chosen <em>PCLinuxOS 2009.1 virtual liveCD</em> .</p>
<p><code>title PCLinuxOS virtual liveCD</code></p>
<p>Line 2 starts with <em>kernel</em> , and tells GRUB what hard drive and partition it should look on to find your <em>vmlinuz</em> file.  It uses a special notation to do this.  Remember your partition name from earlier?  You&#8217;re going to need to translate it.  But never fear, it&#8217;s not too terribly hard.</p>
<p>You may remember that my new partition&#8217;s name was <em>/dev/sda4</em> .  Take a look at how I tell GRUB to go to <em>/dev/sda4</em> and then I&#8217;ll explain.</p>
<p><code>kernel (hd0,3)</code></p>
<p>The first hard drive on your computer is usually referred to with a device name of either <em>/dev/sda</em> or <em>/dev/hda</em> , depending on your configuration.  Here, <em>sda</em> stands for (S)CSI (D)rive (A) and <em>hda</em> stands for (H)ard (D)rive (A).  The second hard drive gets called either <em>sdb</em> or <em>hdb</em> .  The third gets <em>sdc</em> or <em>hdc</em> , and so on.</p>
<p>In GRUB&#8217;s notation, they just get hd for (H)ard (D)rive plus a number tacked on.  But just to be confusing, it starts counting at 0 not 1.  So the first hard drive is hd0 , the second is hd1, the third is hd2, and so on.</p>
<p>By knowing the device name above, one can figure out what to call it in GRUB&#8217;s notation.  My main hard drive is being called <em>/dev/sda</em> , so I know GRUB is going to call it <em>hd0</em> .</p>
<p>Then after that is a comma and another number.  Recall that my partition names listed earlier were <em>/dev/sda1</em> , <em>/dev/sda2</em> , <em>/dev/sda3</em> , and <em>/dev/sda4</em> .  The number tacked onto the end of the device name <em>/dev/sda</em> represented the number of the partition.  GRUB counts partitions, too.  But again, there&#8217;s a &#8220;gotcha&#8221; because just like when it&#8217;s counting hard drives, it starts with 0 not 1.  So the first partition is 0, the second is 1, the third is 2, and so on.</p>
<p>Since my new partition is on the 1st hard drive and it&#8217;s the 4th partition, I use <em>hd0, 3</em> .  I plug that in to the line with the format <code>kernel (hd</code><em>hard-drive-number</em><code>,</code><em>partition-number  boot-options</em><code>)</code>.  That&#8217;s why my second line to add is</p>
<p><code>kernel (hd0,3)/isolinux/vmlinuz livecd=livecd initrd=initrd.gz root=/dev/rd/3 acpi=on vga=791 splash=verbose fstab=rw,auto</code></p>
<p>You will need to change this to point to your new partition, in the correct folder and with the correct filename.</p>
<p>Line 3 tells GRUB the location and name of your <em>initrd</em> file.  Figuring out line 3 is going to be very similar to line 2.  Recall that my <em>initrd</em> file was <em>initrd.gz</em> .  Again, adjust this for your partition, folder and file name.</p>
<p><code>initrd (hd0,3)/isolinux/initrd.gz</code></p>
<p>That&#8217;s it.  Here are the 3 lines I added to my <em>menu.lst</em> .  Here I&#8217;ve inserted spaces between the lines for clarity, but you won&#8217;t need to do that.</p>
<p><code>title PCLinuxOS virtual liveCD</code></p>
<p><code>kernel (hd0,3)/isolinux/vmlinuz livecd=livecd initrd=initrd.gz root=/dev/rd/3 acpi=on vga=791 splash=verbose fstab=rw,auto</code></p>
<p><code>initrd (hd0,3)/isolinux/initrd.gz</code></p>
<p><strong>15.  Save your new GRUB configuration file.</strong> On your key or drive, among the files you copied from the virtual CD, should be a subdirectory <em>boot/grub</em> (notice no / in front of <em>boot/grub</em> )  Recall that my USB key&#8217;s mount point is  <em>/media/disk</em> .  That means I will need to save the file to <em>/media/disk/boot/grub</em> .  Adjust your save location according to your mount point. In this example I have saved the text file in <em>/media/disk/boot/grub</em> as <em>menu.lst</em> .</p>
<p>You have now created a boot menu option for GRUB to prompt you with at boot time.</p>
<p><strong>16. Reboot and choose the boot menu option you created. </strong>When your system boots, you will now have a new boot option with the name (title) you chose earlier.  I now have an option called &#8220;PCLinuxOS virtual liveCD&#8221;.  Use the arrow keys to go down the list and select it, and hit Enter.</p>
<p>Congratulations! You should now have a virtual liveCD that works almost exactly like a real one.  You can use it to boot from any time you have trouble booting from your existing GNU/Linux installation, and you can even use it to format your other partitions and do a fresh install.  The only real difference is that you can&#8217;t repartition your hard drive, since you can&#8217;t do that on a hard drive that is in use.</p>
<p>Happy CD-less booting!</p>
<p>Ω</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/g33kgrrl.wordpress.com/490/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/g33kgrrl.wordpress.com/490/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/g33kgrrl.wordpress.com/490/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/g33kgrrl.wordpress.com/490/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/g33kgrrl.wordpress.com/490/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/g33kgrrl.wordpress.com/490/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/g33kgrrl.wordpress.com/490/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/g33kgrrl.wordpress.com/490/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/g33kgrrl.wordpress.com/490/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/g33kgrrl.wordpress.com/490/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/g33kgrrl.wordpress.com/490/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/g33kgrrl.wordpress.com/490/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/g33kgrrl.wordpress.com/490/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/g33kgrrl.wordpress.com/490/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=490&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://g33kgrrl.wordpress.com/2009/06/29/make-a-gnu-linux-livepartition/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc971f13cd49490bfb69e5563208d01?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">g33kgrrl</media:title>
		</media:content>

		<media:content url="http://g33kgrrl.wordpress.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" medium="image">
			<media:title type="html">More...</media:title>
		</media:content>
	</item>
		<item>
		<title>Install GNU/Linux without a CD &#8211; using a liveUSB or external hard drive</title>
		<link>http://g33kgrrl.wordpress.com/2009/06/22/make-a-gnu-linux-liveusb/</link>
		<comments>http://g33kgrrl.wordpress.com/2009/06/22/make-a-gnu-linux-liveusb/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 01:15:04 +0000</pubDate>
		<dc:creator>g33kgrrl</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[installation]]></category>

		<guid isPermaLink="false">http://g33kgrrl.wordpress.com/?p=484</guid>
		<description><![CDATA[Note: This tutorial&#8217;s fraternal twin, Install GNU/Linux without a CD &#8211; using your internal hard drive, is here . Maybe you just don&#8217;t like to burn every distribution to a CD and fill the landfills with CD&#8217;s they only used once or twice. Maybe you don&#8217;t have a CD or DVD drive on your computer [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=484&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>Note: This tutorial&#8217;s fraternal twin, Install GNU/Linux without a CD &#8211; using your internal hard drive, is <a href="http://g33kgrrl.wordpress.com/2009/06/29/make-a-gnu-linux-livepartition/">here</a> .</em></p>
<p>Maybe you just don&#8217;t like to burn every distribution to a CD and fill the landfills with CD&#8217;s they only used once or twice. Maybe you don&#8217;t have a CD or DVD drive on your computer (e.g., if you have a netbook), or don&#8217;t happen to have any CD-R&#8217;s or CD-RW&#8217;s on hand. You may like the fact that installing off of a USB key or straight off a hard drive is considerably faster than installing from a CD.  The USB key option also offers easier portability &#8211; if you happen to run into someone out there who would like GNU + Linux installed, it&#8217;s easier to have your USB key with you all the time than a CD. Or you may have multiple computers to install to, and it&#8217;s faster to have them all pull the installation files from a central location than to burn a bunch of CD&#8217;s every time.</p>
<p>There are a few ways to go about CD-less installations, but I&#8217;m going to cover the 2 most common ones.  One is by using an external storage device that plugs into a port, such as a USB key or external hard drive (shown on this tutorial).  The other is by creating a separate partition for this purpose on your internal hard drive, the one that&#8217;s already inside your computer (tutorial coming soon). Here are some quick facts about both to help you decide which will work best for you.</p>
<p>external storage:</p>
<ul>
<li>simpler setup</li>
<li>you can use it on more than one computer</li>
<li>won&#8217;t work on older computers</li>
<li>small portable devices are easily lost or stolen</li>
<li>an external device is one more thing to remember to bring and carry around</li>
</ul>
<p>internal hard drive:</p>
<ul>
<li>works great on older computers</li>
<li>it&#8217;s always with your computer; no worrying about loss, theft, or forgetting to bring it</li>
<li>usable only on the computer you&#8217;ve set it up on</li>
<li>less straightforward setup &#8211; especially if you&#8217;re not familiar with hard drive partitioning</li>
<li>more potential for messing up your existing data if you&#8217;re not careful &#8211; again, especially if you&#8217;re not familiar with hard drive partitioning</li>
<li>the hard drive partitioning part only needs to be done once, so you don&#8217;t have to do it again if you decide to change to a different virtual CD later</li>
</ul>
<p><span id="more-484"></span></p>
<p>For the purpose of this tutorial, I&#8217;ll assume you currently have a way to boot into GNU/Linux, either through a currently working install or using an existing LiveCD (almost any distribution will do).</p>
<p>This tutorial works for both USB keys (a.k.a. thumbdrives) and external hard drives with USB or Firewire (IEEE 1394) connections, but for brevity&#8217;s sake I&#8217;ll refer to all of these as a &#8220;USB key&#8221;.</p>
<p>I recommend that you have at least 2 GB of free space available on your USB key.  The reason behind this is because the files to be copied onto it will take around 700 MB, and the system will need some extra space to work within.  You may or may not have enough space if you use a 1 GB key, especially if you also want to store settings and data on it (see LiveUSB_persist_with_hwdetect&#8221; in step 9). Operating systems also don&#8217;t like it when they don&#8217;t have enough space for their temporary files and such.</p>
<p>Some people prefer to go with <a href="http://unetbootin.sourceforge.net">UNetbootin</a> (<a href="http://en.wikipedia.org/wiki/UNetbootin">wikipedia page</a>) rather than use the process described here, but UNetbootin has its own little idiosyncrasies sometimes.  If it hasn&#8217;t been tested with and customized for the distribution you want to install, you may get problems no one knows how to solve yet.  And it can be hard to troubleshoot if something goes wrong because you don&#8217;t know exactly what it&#8217;s doing and where it&#8217;s putting the files you need.  With the method below you have full control over the process.</p>
<p>This tutorial happens to be geared toward PCLinuxOS 2009.1, but many other distributions will work with this process.  (Under normal circumstances, it&#8217;s not necessary to do this with PCLinux 2009.1 because it already has a special LiveUSB creator utility &#8211; but I&#8217;m helping my son with a project.)  My testing back in January showed it to work with PCLinuxOS 2007.  It worked for Linux Mint 6 too, but due to a bug in the installer itself I couldn&#8217;t get through the actual install once started.  Other distributions may have extra steps specific to them to make them work.  OpenSUSE 11.1 failed with an error saying it &#8220;couldn&#8217;t find the live image configuration file,&#8221; and I found out that it required a long additional process I simply wasn&#8217;t willing to undertake.</p>
<p style="padding-left:30px;"><em>Warning:  During <a href="http://g33kgrrl.wordpress.com/2009/01/02/adventures-in-linux-remote-installation-or-not/">my last attempt to do this with Linux Mint</a>, a distribution based on Ubuntu, a bug in the Ubuntu installer (called Ubiquity) set me up for a nightmare in which my father&#8217;s system (on the other side of the continent) was rendered unbootable without a liveCD.  I don&#8217;t know if they&#8217;ve fixed the problem in Ubuntu/Kubuntu 9.04 so be especially careful.</em></p>
<p><span style="color:#800000;"><strong>Warning: before you do anything past this point, make sure your data is backed up on some other drive or disc &#8211; in case anything goes wrong.</strong></span>.  Seriously, disaster recovery sucks.</p>
<p>Ready?  Here we go&#8230;</p>
<p><!--more--></p>
<p><strong>1. Download the ISO for the distribution in question.</strong> Take note of what folder you saved it in as you will need this later.</p>
<p><strong>2. Make sure it downloaded and saved correctly</strong> by checking the ISO file&#8217;s integrity.  If you don&#8217;t know how to do this, I have a tutorial on it <a href="http://g33kgrrl.wordpress.com/2009/03/05/verify-the-integrity-of-an-iso-or-burned-cd/">here</a>.  This is an important step that can save you a lot of headaches.</p>
<p><strong>3. Open a terminal and log in as root.</strong> Here I&#8217;m logged in as g33kgrrl and use the su command to switch user to root.  It prompts me for my root password and the prompt changes to show me I&#8217;m now logged in as root.</p>
<p><code><span style="color:#333399;"><strong>g33kgrrl@home ~ $</strong></span> su<br />
password:<br />
<span style="color:#800000;"><strong>root@home ~ #</strong></span></code></p>
<p><strong>4. Make a special location on the hard drive which will act as your virtual CD.</strong> This is called a &#8220;mount point.&#8221;</p>
<p><code><span style="color:#800000;"><strong>root@home ~ #</strong></span> mkdir /mnt/iso</code></p>
<p><strong>5. Mount the ISO to the new mount point as a loop device</strong> (don&#8217;t worry if you don&#8217;t know what that means).  We need to point this command to the ISO file you downloaded.  Here, I&#8217;ve saved it to <em>/home/g33kgrrl</em> and the ISO file name is <em>pclinuxos-2009.1.iso</em> , so change this to match your setup.  The whole command  all goes on one line.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ #</strong></span> mount -t iso9660 /home/g33kgrrl/pclinuxos-2009.1.iso /mnt/iso -o loop</code></p>
<p><strong>6. Change directory to the location of your virtual CD.</strong></p>
<p><code><span style="color:#800000;"><strong>root@home ~ #</strong></span> cd /mnt/iso</code></p>
<p><strong>7. You should now be able to list the contents of the virtual CD and see some folders and files.</strong> Which ones you see will vary by which distribution you&#8217;re using, but as long as you see some there you&#8217;re on the right track.  Here I see 2 folders and one file.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ #</strong></span> ls<br />
<span style="color:#000099;">boot/     isolinux/</span> livecd.sqfs<br />
</code></p>
<p><strong>8. Connect your USB key (if you haven&#8217;t already)</strong>, and give the system a few seconds to find it.  If it asks you if you&#8217;d like to &#8220;open in a new window&#8221;, click OK.</p>
<p><strong>9. Find out the USB key&#8217;s device name and the mount point of the partition on it.</strong></p>
<p><code><span style="color:#800000;"><strong>root@home ~ #</strong></span> df -h<br />
Filesystem  Size  Used  Avail  Use%  Mounted on<br />
/dev/sda1               7.9G   3.3G   4.3G     44%  /<br />
/dev/sda3                 60G     23G      37G     39%  /home<br />
/dev/sdb1                 16G   8.0K      16G      1%  /media/disk<br />
</code></p>
<p>The partition name is in the &#8220;Filesystem&#8221; column and should be something like <em>/dev/sdb1</em> or <em>/dev/hdb1</em> . Partition names are designated by tacking a number to the end of the device name.  Thus, the 1st partition on device <em>/dev/sda</em> is <em>/dev/sda1</em> , the 2nd partition is <em>/dev/sda2</em> , and so on.  My output above shows 2 partitions mounted on device <em>/dev/sda</em> , my main hard drive, which are numbered 1 and 3.  There&#8217;s another partition,<em> /dev/sdb1</em> , on device <em>/dev/sdb</em> .  More on this in a moment.</p>
<p>The mount location, called a &#8220;mount point&#8221;, will be in the &#8220;Mounted on&#8221; column.  USB keys and external drives usually get mounted in some subdirectory under <em>/media</em> or <em>/mnt</em> .</p>
<p>Judging by the size of <em>/dev/sdb1</em> above and where it&#8217;s being mounted (<em>/media/disk</em>) , <em>/dev/sdb</em> is my 16 GB USB key.</p>
<p>Take note of both the device name and mount location (called a &#8220;mount point&#8221;) as you will need them in the following steps.</p>
<p>If you don&#8217;t see anything listed under <em>/media</em> or <em>/mnt</em> , your USB key isn&#8217;t mounted.  Try removing it and repeating this step from the beginning.</p>
<p><strong>10. Copy the contents of the virtual CD to your USB key.</strong> In the last step, I learned that my key is mounted at <em>/media/disk</em> , so I specify that location in my copy command below.  You&#8217;ll need to change this to match your mount point.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ #</strong></span> cp -r . /media/disk</code></p>
<p>(The &#8220;.&#8221; tells it to copy everything from the current directory.)  This will take a few minutes or so since there is lots to copy.  Now&#8217;s a great time for a coffee or a sandwich, don&#8217;t you think?</p>
<p>When it&#8217;s done you&#8217;ll get another prompt.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ #</strong></span></code></p>
<p><strong>11. Find the 2 boot files on the virtual CD.</strong> Unfortunately, their names and location vary a bit between distributions. With PCLinuxOS 2009.1, they are named  <em>vmlinuz</em> and <em>initrd.gz</em> files and are in the <em>isolinux</em> folder.  Your distribution may do things differently. The 2 files may be in a folder other than <em>isolinux</em>, have version numbers in their names (e.g.,  <em>vmlinuz-2.4.18</em>), or the part after the &#8220;.&#8221; may be different (e.g., <em>initrd.img</em>). You&#8217;ll need to look through the subdirectories on the virtual CD, and modify your commands to match the locations and filenames of these 2 files.The good news is that they will usually be only one folder below where you are now.  In other words, you shouldn&#8217;t have to go digging through several layers of folders to find them.</p>
<p>Let&#8217;s say I don&#8217;t know where they are.  I list the contents of my virtual CD.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ #</strong></span> ls<br />
<span style="color:#000099;">boot/     isolinux/</span> livecd.sqfs</code></p>
<p>I see 2 folders called <em>boot</em> and <em>isolinux</em> and a file named <em>livecd.sqfs</em> .  I don&#8217;t see the files I need so I dig one level deeper by checking the contents of these 2 folders.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ #</strong></span> ls boot<br />
<span style="color:#000099;">grub/</span></code></p>
<p>Nope&#8230;  just another folder, named <em>grub</em> .  But I know I shouldn&#8217;t have to dig that far, so instead of checking the contents of the <em>grub</em> folder, I check <em>isolinux</em> .</p>
<p><code><span style="color:#800000;"><strong>root@home ~ #</strong></span> ls isolinux<br />
<span style="color:#800080;">back.jpg</span> el.hlp     isolinux.bin  memtest        ru.hlp       <span style="color:#800080;">welcome.jpg</span><br />
bg.hlp    en.hlp     isolinux.cfg  nb.hlp         sl.hlp       zh_CN.hlp<br />
boot.cat  es.hlp     it.hlp        nl.hlp         star.dat     zh_TW.hlp<br />
bootlogo  fi.hlp     ja.hlp        pclinuxos.pcx  sv.hlp<br />
cs.hlp    fr.hlp     lang          pl.hlp         <span style="color:#800080;">timer_a.jpg</span><br />
da.hlp    hu.hlp     langs         pt_BR.hlp      uk.hlp<br />
de.hlp    <span style="color:#ff0000;">initrd.gz</span> <span style="color:#008000;">mediacheck*</span> pt.hlp         vmlinuz</code></p>
<p>There they are, in <em>isolinux</em> .  Take note of which folder you found yours in and what their exact names are.  You&#8217;ll need this in a bit.</p>
<p><strong>12. Change directory to the mount point of your USB key.</strong> Adjust this to match your mount point.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ #</strong></span> cd /media/disk</code></p>
<p><strong>13. Install GRUB.</strong> <a href="http://en.wikipedia.org/wiki/GNU_GRUB">GRUB</a> tells the system where to find the files it needs to boot up, and manages your boot options.  Here I&#8217;ve used the device name from step 9.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ #</strong></span> grub-install --no-floppy --root-directory=. /dev/sdb</code></p>
<p><strong>14. Open your favourite text editor (as root) and tell it to create a new file.</strong> I recommend <em>kwrite</em> or <em>gedit</em> for ease of use.</p>
<p><code><span style="color:#800000;"><strong>root@home ~ #</strong></span> kwrite</code></p>
<p><strong>15. Copy the content below and paste it into the new file.</strong></p>
<p><code>title LiveUSB_persist<br />
kernel (hd0,0)/isolinux/vmlinuz livecd=livecd initrd=initrd.gz root=/dev/rd/3 acpi=on vga=791 keyb=us splash=verbose fstab=rw,auto fromusb changes=/dev/sda1/livecd-rw<br />
initrd (hd0,0)/isolinux/initrd.gz</code></p>
<p><code>title LiveUSB_persist_with_hwdetect<br />
kernel (hd0,0)/isolinux/vmlinuz livecd=livecd initrd=initrd.gz root=/dev/rd/3 acpi=on vga=791 keyb=us splash=verbose fstab=rw,auto fromusb changes=/dev/sda1/livecd-rw hwdetect=yes<br />
initrd (hd0,0)/isolinux/initrd.gz<br />
timeout 10<br />
color black/cyan yellow/cyan<br />
gfxmenu (hd0,0)/boot/grub/message</code></p>
<p><code>title LiveUSB<br />
kernel (hd0,0)/isolinux/vmlinuz livecd=livecd initrd=initrd.gz root=/dev/rd/3 acpi=on vga=791 keyb=us splash=verbose fstab=rw,auto fromusb<br />
initrd (hd0,0)/isolinux/initrd.gz</code></p>
<p><code>title VideoSafeModeVesa<br />
kernel (hd0,0)/isolinux/vmlinuz livecd=livecd initrd=initrd.gz root=/dev/rd/3 acpi=on vga=788 keyb=us splash=silent fstab=rw,noauto vesa<br />
initrd (hd0,0)/isolinux/initrd.gz</code></p>
<p><code>title Safeboot<br />
kernel (hd0,0)/isolinux/vmlinuz livecd=livecd root=/dev/rd/3 acpi=off vga=normal keyb=us noapic nolapic noscsi nopcmcia<br />
initrd (hd0,0)/isolinux/initrd.gz</code></p>
<p><code>title Console<br />
kernel (hd0,0)/isolinux/vmlinuz initrd=initrd.gz root=/dev/rd/3 acpi=on vga=788 keyb=us splash=silent fstab=rw,noauto 3<br />
initrd (hd0,0)/isolinux/initrd.gz</code></p>
<p><code>title Memtest<br />
kernel (hd0,0)/isolinux/memtest</code></p>
<p>It&#8217;s worth a quick explanation of the menu options above, so that you know what your choices mean.  Each section starts with a line where the first word is &#8220;title&#8221;, and represents one option in the menu.</p>
<blockquote><p><em>LiveUSB</em> &#8211; like a LiveCD; you can boot to it and play around with settings but it won&#8217;t save any of your changes.<br />
<em>LiveUSB_persist</em> &#8211; saves changes; the next time you boot to it any changes you made to settings will still be there.  <em>LiveUSB_persist_with_hwdetect</em> &#8211; can detect and save your hardware configuration; useful if you only boot this USB key on one computer<br />
<em>VideoSafeModeVesa</em> &#8211; useful if you&#8217;re having video issues when using the above options<br />
<em>Safeboot</em> &#8211; useful if you&#8217;re having other hardware issues<br />
<em>Console</em> &#8211; skip the graphical user interface (GUI) and just boot straight to a command line<br />
<em>Memtest</em> &#8211; test the computer&#8217;s RAM to make sure it&#8217;s functioning properly</p></blockquote>
<p><strong>16. Edit the text as necessary to point to the 2 boot files. </strong>Make sure the boot options in the new file point to the correct location and names of the 2 files. I have <em>vmlinuz</em> and <em>initrd.gz</em> in the <em>/isolinux</em> folder, so for each boot option I ensure that the line that starts with <em>kernel</em> points to <em>/isolinux/vmlinuz</em> and the line that starts with initrd points to <em>/isolinux/initrd.gz</em> .  If you look at the output from the previous step, you can see they&#8217;re already pointing to the correct locations &#8211; so I don&#8217;t need to do anything extra here.</p>
<p><strong>17.  Save your new GRUB configuration file.</strong> On your USB key, among the files you copied from the virtual CD, should be a subdirectory <em>boot/grub</em> (notice no / in front of <em>boot/grub</em> )  Recall that my USB key&#8217;s mount point is  <em>/media/disk</em> .  That means I will need to save the file to <em>/media/disk/boot/grub</em> .  Adjust your save location according to your mount point.</p>
<p>You are creating a boot menu for GRUB to prompt you with at boot time.  Unfortunately, the required file name can be one of two options depending on your distribution.  Many distributions use the newer name of <em>menu.lst</em> (that&#8217;s an &#8220;L&#8221; not a number &#8220;1&#8243;).  A shrinking number still use <em>grub.conf</em> .  If <em>menu.lst</em> doesn&#8217;t work, you can always go back and rename this file to <em>grub.conf</em> .</p>
<p>In this example I have saved the text file in <em>/media/disk/boot/grub</em> as <em>menu.lst</em> .</p>
<p><strong>18. Reboot and set your computer to boot to the USB key or external drive. </strong>This process varies depending on the manufacturer of your computer&#8217;s motherboard.  Consult your user manual for details if you need help.</p>
<p>Happy cd-less booting!</p>
<p>Ω</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/g33kgrrl.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/g33kgrrl.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/g33kgrrl.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/g33kgrrl.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/g33kgrrl.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/g33kgrrl.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/g33kgrrl.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/g33kgrrl.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/g33kgrrl.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/g33kgrrl.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/g33kgrrl.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/g33kgrrl.wordpress.com/484/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/g33kgrrl.wordpress.com/484/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/g33kgrrl.wordpress.com/484/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=484&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://g33kgrrl.wordpress.com/2009/06/22/make-a-gnu-linux-liveusb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc971f13cd49490bfb69e5563208d01?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">g33kgrrl</media:title>
		</media:content>
	</item>
		<item>
		<title>Meeting Richard Stallman</title>
		<link>http://g33kgrrl.wordpress.com/2009/06/03/meeting-richard-stallman/</link>
		<comments>http://g33kgrrl.wordpress.com/2009/06/03/meeting-richard-stallman/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 08:45:25 +0000</pubDate>
		<dc:creator>g33kgrrl</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[GNU project]]></category>
		<category><![CDATA[Linux kernel]]></category>
		<category><![CDATA[software freedom]]></category>

		<guid isPermaLink="false">http://g33kgrrl.wordpress.com/?p=447</guid>
		<description><![CDATA[Today I went to listen to a talk by Richard M. Stallman, also known as rms. If you don&#8217;t know who he is, he is an extremely sharp, witty, and free-thinking programmer/activist who wrote the GNU General Public License &#8211; commonly known as the GPL (website), developed the GNU operating system (which the Linux kernel [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=447&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_621" class="wp-caption alignleft" style="width: 241px"><a href="http://g33kgrrl.files.wordpress.com/2009/06/img_3672_cropped.jpg"><img class="size-medium wp-image-621" title="Richard Stallman on the steps of Parliament Hill, Ottawa, Canada" src="http://g33kgrrl.files.wordpress.com/2009/06/img_3672_cropped.jpg?w=231&#038;h=300" alt="Richard Stallman on the steps of Parliament Hill, Ottawa, Canada" width="231" height="300" /></a><p class="wp-caption-text">Richard Stallman on the steps of Parliament Hill, Ottawa, Canada</p></div>
<p>Today I went to listen to a talk by <a href="http://en.wikipedia.org/wiki/Richard_stallman">Richard M. Stallman</a>, also known as rms.  If you don&#8217;t know who he is, he is an extremely sharp, witty, and free-thinking programmer/activist who wrote the GNU General Public License &#8211; commonly known as the <a href="http://en.wikipedia.org/wiki/Gpl">GPL</a> (<a href="http://www.gnu.org/copyleft/gpl.html">website</a>), developed the <a href="http://www.gnu.org">GNU operating system</a> (which the <a href="http://www.linux.org">Linux kernel</a> runs inside), founded the <a href="http://www.fsf.org">Free Software Foundation</a>, and has spearheaded the movement against proprietary software and its restrictions, championing the rights of computer users everywhere.  He helped make software freedom what it is today and paved the way, in both a technical and legal sense, for the Linux kernel to become as popularized as it is today.</p>
<p>It&#8217;s important to note that, contrary to popular belief, &#8220;Linux&#8221; itself is not actually an operating system.  It is a <a href="http://en.wikipedia.org/wiki/Kernel">kernel</a>, that is, an interface between software and hardware.  When your software applications or the operating system need to access the computer&#8217;s memory, hard drive, or other system resources, the kernel is the part that takes care of those requests and communicates between them.  GNU is basically the whole rest of the operating system, and your applications run on top of it.  What happened is the GNU operating system was developed first, but Stallman and the GNU team had not yet developed the kernel.  Enter <a href="http://en.wikipedia.org/wiki/Linus_Torvalds">Linus Torvalds</a>, another praiseworthy programmer/activist who developed a kernel that worked with the GNU operating system and thus provided the missing piece.  So what many people know as &#8220;Linux&#8221; is actually the combination of GNU plus the Linux kernel.  Sadly, the GNU project and the vision of software freedom that Richard Stallman has championed, that is, the freedom to run, copy, distribute, study, change and improve software as one sees fit, are frequently attributed incorrectly to Linus Torvalds (and Torvalds does nothing to correct this, I&#8217;ve noticed).  While I have much respect and admiration for Torvalds as a programmer, he was not the author of this philosophy nor the one who laid its foundations.  If we&#8217;re going to give credit where credit is due, we should call it GNU/Linux, GNU &amp; Linux, or GNU + Linux.  No, it&#8217;s not as short and sweet as just &#8220;Linux,&#8221; but Linux would be pretty useless without GNU &#8211; and vice-versa.</p>
<p>To the layperson, all this may seem like splitting hairs.  But think of a complete operating system like a bicycle.  GNU is the body of the bike; it&#8217;s got a metal frame fitted with handlebars, a seat, and pedals.  Linux is the wheels and bike chain.  Without GNU you have wheels, but no useful way to make them roll forward or steer them in the direction you want to go &#8211; but those are the least of your problems since you also have no way to make them carry your weight.  Without Linux you can steer and pedal all day, but since the controls aren&#8217;t hooked up to anything you won&#8217;t be going anywhere.  There&#8217;s no interface between you and the ground.</p>
<p>EDIT 21 Jul 2009:  There&#8217;s a much more detailed and eloquent discussion of it <a href="http://www.gnu.org/gnu/linux-and-gnu.html">here</a>.  I realized I also neglected to elaborate on the fact that GNU makes up a much larger portion of the operating system than Linux does.  So you can see why it&#8217;s rightfully called GNU/Linux and not Linux/GNU.  See <a href="http://g33kgrrl.wordpress.com/why-gnu-slash-linux#footnotes">footnotes</a> for <a href="http://g33kgrrl.wordpress.com/why-gnu-slash-linux/">Why GNU/Linux</a>.</p>
<p>Hearing Stallman speak today, spending time with him and then going to dinner with him, I was struck by his eloquence, humour, generosity, and gentle spirit.  I was inspired by his words to pay even closer attention to the restrictions placed on people by proprietary software licensing agreements, the freedoms imparted by using free/libre software (<a href="http://www.gnu.org/philosophy/free-sw.html">&#8220;free&#8221; as in &#8220;freedom</a>), and to be more careful about giving proper credit to the one guy who envisioned those freedoms at a time when basically <em>all</em> the software out there was proprietary and closed-source.   Nobody (except him, apparently) really even thought about that sort of thing at that time.  I certainly didn&#8217;t, nor did anyone else I knew in the tech community.  It&#8217;s difficult to express to those who weren&#8217;t there, just how <em>radical</em> Stallman&#8217;s views were at the time, and how hard he has worked to raise public awareness to the point that it exists today.  He took the hippie ideals of freedom and sharing for the common good, and applied them to software in ways we had trouble wrapping our heads around at the time.  After hanging out with him, I have to say I&#8217;m even more impressed by him than I was before.  It was a treat and an honour to meet him and it absolutely made my day.</p>
<p>Before today, I thought I was already pretty well-versed in the freedom and concepts surrounding free software.  I have been using GNU/Linux since at least 2001, and I had even contributed heavily to a detailed group response when the Canadian government asked for public feedback about the feasibility, pros and cons of free software.  I went to hear Stallman and I got schooled until I was humbled and more than a bit embarrassed.  I found that, even though I may not agree 100% with every single detail of his philosophy and course of action, I can&#8217;t help but admire the spirit and ideas behind them and do my best to promote them.  Even if you think you know this issue quite well, it&#8217;s well worth visiting the GNU website to read about the <a href="http://www.gnu.org/philosophy/free-sw.html">four software freedoms</a> he describes and the divisiveness, conflict, bullying and abuse that occur when software users don&#8217;t have those freedoms.</p>
<p>Stallman is also very politically active on a variety of other issues, including women&#8217;s rights, censorship, privacy, copyright law, the environment, and the Israeli-Palestinian conflict, among others.  <a href="http://www.stallman.org">His personal website</a> makes for a very interesting read and a real eye-opener on violations of civil liberties.</p>
<p>Ω</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/g33kgrrl.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/g33kgrrl.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/g33kgrrl.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/g33kgrrl.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/g33kgrrl.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/g33kgrrl.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/g33kgrrl.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/g33kgrrl.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/g33kgrrl.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/g33kgrrl.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/g33kgrrl.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/g33kgrrl.wordpress.com/447/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/g33kgrrl.wordpress.com/447/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/g33kgrrl.wordpress.com/447/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=g33kgrrl.wordpress.com&amp;blog=5949206&amp;post=447&amp;subd=g33kgrrl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://g33kgrrl.wordpress.com/2009/06/03/meeting-richard-stallman/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc971f13cd49490bfb69e5563208d01?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">g33kgrrl</media:title>
		</media:content>

		<media:content url="http://g33kgrrl.files.wordpress.com/2009/06/img_3672_cropped.jpg?w=231" medium="image">
			<media:title type="html">Richard Stallman on the steps of Parliament Hill, Ottawa, Canada</media:title>
		</media:content>
	</item>
	</channel>
</rss>
