<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3680913028227038757</id><updated>2011-04-21T12:04:57.117-07:00</updated><category term='linux'/><category term='pxegrub'/><category term='pam_ccreds.so'/><category term='vmware'/><category term='tutorial'/><category term='windows'/><category term='pam'/><category term='preseed'/><category term='ssh'/><category term='esx'/><category term='nfs'/><category term='ubuntu'/><category term='caching'/><category term='raid'/><category term='solaris'/><category term='X11'/><category term='rant'/><category term='pxelinux'/><category term='kerberos'/><category term='unattended'/><category term='pxe'/><title type='text'>Cat in the Red Hat</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://redhatcat.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://redhatcat.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Cat in the Red Hat</name><uri>http://www.blogger.com/profile/08793659611680183237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.digg.com/userimages/redhatcat/large3750.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3680913028227038757.post-1582443377413035884</id><published>2008-07-25T06:24:00.001-07:00</published><updated>2008-07-25T06:25:10.679-07:00</updated><title type='text'>Blog has moved!</title><content type='html'>I've moved my blog to my own server at &lt;a href="http://tylerlesmann.com"&gt;http://tylerlesmann.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3680913028227038757-1582443377413035884?l=redhatcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/1582443377413035884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/1582443377413035884'/><link rel='alternate' type='text/html' href='http://redhatcat.blogspot.com/2008/07/blog-has-moved.html' title='Blog has moved!'/><author><name>Cat in the Red Hat</name><uri>http://www.blogger.com/profile/08793659611680183237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.digg.com/userimages/redhatcat/large3750.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-3680913028227038757.post-3899357903944907078</id><published>2008-07-15T13:04:00.000-07:00</published><updated>2008-07-16T06:29:44.949-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pxe'/><category scheme='http://www.blogger.com/atom/ns#' term='pxelinux'/><category scheme='http://www.blogger.com/atom/ns#' term='esx'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><title type='text'>PXE Boot the VMware ESX installer</title><content type='html'>If you are like me, then you want to use network booting for everything, especially installs.  PXE booting the VMware installer with pxelinux is much easier than I thought it would be.  First, copy the entire contents of the installer CD to your tftp directory.  I copied mine to /tftpboot/esx/3.5.&lt;br /&gt;&lt;br /&gt;Now, open your pxelinux.cfg/default.  Add this entry, changing the path to each of the components to coincide with where you placed the files within your tftp directory.&lt;br /&gt;&lt;br /&gt;label esx&lt;br /&gt; kernel esx/3.5/mboot.c32&lt;br /&gt; append esx/3.5/vmkernel.gz --- esx/3.5/binmod.tgz --- esx/3.5/ienviron.tgz --- esx/3.5/cim.tgz --- esx/3.5/oem.tgz --- esx/3.5/license.tgz --- esx/3.5/install.tgz&lt;br /&gt;&lt;br /&gt;That's all you have to do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3680913028227038757-3899357903944907078?l=redhatcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/3899357903944907078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/3899357903944907078'/><link rel='alternate' type='text/html' href='http://redhatcat.blogspot.com/2008/07/pxe-boot-vmware-esx-installer.html' title='PXE Boot the VMware ESX installer'/><author><name>Cat in the Red Hat</name><uri>http://www.blogger.com/profile/08793659611680183237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.digg.com/userimages/redhatcat/large3750.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-3680913028227038757.post-5501815927002997452</id><published>2008-07-13T18:30:00.000-07:00</published><updated>2008-07-13T17:49:21.354-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Solaris:  Improvements that could be made</title><content type='html'>I've been studying Solaris 10 and 11 recently because I'm aiming to acquire a &lt;a href="http://www.sun.com/training/certification/solaris/scsa.xml"&gt;SCSA&lt;/a&gt;.  It is not surprising that the most popular flavor of commercial Unix is losing ground.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Getting Solaris&lt;br /&gt;&lt;br /&gt;One should not have to register/login to download Solaris or packages for Solaris.  Get with the times, Sun.  Solaris is supposed to be open source.  That's means everyone should get easy access, no questions/logins.  I'm talking about anonymous ftp, rsync, and bittorrent.  What is more important?  Solaris's statistics or relevance.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Package Management&lt;br /&gt;&lt;br /&gt;It's not completely horrible.  It does figure out dependencies.  It's essentially just the equivalent of rpm or dpkg though.  There is nothing like yum or apt-get on Solaris 10 or 11.  This is a problem.  Installing and updating software is a chore, especially installing Solaris Companion software, like vim on Solaris 10.  The solution to this is easy.  Sun needs to integrate the IPS system from OpenSolaris into their commercial versions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Shell&lt;br /&gt;&lt;br /&gt;Why are Solaris administrators still using plain Bourne shell by default?  Sun, be nice to your sysadmins and give them tab completion and command history by default.  Bash is plenty mature to be the default shell.   I cannot see any serious admin using Bourne, if they don't absolutely have to. Sun should see this too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3680913028227038757-5501815927002997452?l=redhatcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/5501815927002997452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/5501815927002997452'/><link rel='alternate' type='text/html' href='http://redhatcat.blogspot.com/2008/07/solaris-improvements-that-could-be-made.html' title='Solaris:  Improvements that could be made'/><author><name>Cat in the Red Hat</name><uri>http://www.blogger.com/profile/08793659611680183237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.digg.com/userimages/redhatcat/large3750.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-3680913028227038757.post-3921734083443930484</id><published>2008-07-13T18:26:00.000-07:00</published><updated>2008-07-22T17:28:25.670-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='caching'/><category scheme='http://www.blogger.com/atom/ns#' term='kerberos'/><category scheme='http://www.blogger.com/atom/ns#' term='pam'/><category scheme='http://www.blogger.com/atom/ns#' term='pam_ccreds.so'/><title type='text'>Caching Kerberos credentials for offline logins</title><content type='html'>Having kerberos is a nice way to centralize your user passwords, but what if you have laptops that you would like to log onto away from your network?  You have to setup credential caching.  This is achieved through PAM and the pam_ccreds module.  On a Fedora, or a Red Hat derivative, system, you only need to edit one file, /etc/pam.d/system-auth-ac.  This file exists on any PAM aware system.  Here is mine in its entirety.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;auth        required      pam_env.so&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;auth        sufficient    pam_unix.so nullok try_first_pass&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;auth        requisite     pam_succeed_if.so uid &gt;= 500 quiet&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;auth        [default=ignore success=1 service_err=reset] pam_krb5.so use_first_pass&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;auth        [default=die success=done] pam_ccreds.so action=validate use_first_pass&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;auth        sufficient    pam_ccreds.so action=store use_first_pass&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;auth        required      pam_deny.so&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;account     required      pam_unix.so broken_shadow&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;account     sufficient    pam_localuser.so&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;account     sufficient    pam_succeed_if.so uid &lt; 500 quiet&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;account     [default=bad success=ok user_unknown=ignore] pam_krb5.so&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;account     required      pam_permit.so&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;password    requisite     pam_cracklib.so try_first_pass retry=3&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;password    sufficient    pam_krb5.so use_authtok&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;password    required      pam_deny.so&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;session     optional      pam_keyinit.so revoke&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;session     required      pam_limits.so&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;session     required      pam_unix.so&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;session     optional      pam_krb5.so&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've highlighted the lines that do the work.  It took me a while to make this.  I've read tons of tutorials, as you probably have, to get this to work.  In the end, I ended up mastering PAM configuration since none of the tutorial worked properly.  I'm going to explain each line so that you will understand what is happening.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;auth        [default=ignore success=1 service_err=reset] pam_krb5.so use_first_pass&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;This line is the most complicated.  The default=ignore tells PAM, if this module fails, like cannot reach kerberos server or password does not match, go on to the next step.  The success=1 tells PAM if the module succeeds, a correct password verified by the kerberos server, skip one step.  The service_err=reset, tells PAM to try again if the server reachable but down for some reason.  The pam_krb5.so is the name of the module.  Finally, the use_first_pass tells PAM to use the password that was first given to PAM during this run through and do not ask for a new one.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;auth        [default=die success=done] pam_ccreds.so action=validate use_first_pass&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;If kerberos was unavailable, PAM will run this line.  The default=die means, if this module fails, everything fails and don't give the user access.  The success=done means the auth portion of PAM is complete if this succeeds.  pam_ccreds.so is the module name.  The module, pam_ccreds, takes arguments and the action=validate has pam_ccreds check to see if the given password matches what is cached in /var/cache/.security.db.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;auth        sufficient    pam_ccreds.so action=store use_first_pass&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;If the user entered a password that was verified by the kerberos server, PAM will apply this rule.  The sufficient tells PAM if this module succeeds, the auth portion is complete.  Otherwise, continue through the rest of the auth portion.  The action=store, if you haven't guessed, stores the encrypted password in /var/cache/.security.db.&lt;br /&gt;&lt;br /&gt;Now the system will cache kerberos credentials!&lt;br /&gt;&lt;br /&gt;One gotcha on SELinux enabled systems, I have not been able to get this to work in enforcing mode.  PAM is horrible restricted.  I cannot find an appropriate file context to apply to /var/cache/.security.db that will allow pam_ccreds to write to it.  I recommend using Permissive mode until I find a solution.  This should not be too big a deal because you should only be using this on laptops, not critical systems.&lt;br /&gt;&lt;br /&gt;One more gotcha.  For some reason I have not discovered yet, xscreensaver cannot use ccreds properly.  If you lock your machine, then you will not be able to log in without setting up a local password.  I'm working on a solution for this.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3680913028227038757-3921734083443930484?l=redhatcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/3921734083443930484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/3921734083443930484'/><link rel='alternate' type='text/html' href='http://redhatcat.blogspot.com/2008/07/caching-kerberos-credentials-for.html' title='Caching Kerberos credentials for offline logins'/><author><name>Cat in the Red Hat</name><uri>http://www.blogger.com/profile/08793659611680183237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.digg.com/userimages/redhatcat/large3750.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-3680913028227038757.post-1557997631290195039</id><published>2008-07-06T13:58:00.000-07:00</published><updated>2008-07-06T15:30:36.963-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unattended'/><category scheme='http://www.blogger.com/atom/ns#' term='pxe'/><category scheme='http://www.blogger.com/atom/ns#' term='preseed'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Fun with Preseed</title><content type='html'>One of the things I do is give away older computers with Ubuntu on them.  I've given away quite a few and the installs can take a while, plus I like to install flash and dvd decryption for the new users.  I learned about preseed from this &lt;a href="http://pthree.org/2008/05/20/automating-debianubuntu-installs-with-preseed/"&gt;post&lt;/a&gt;.  It didn't have all the information I needed to create this, so that is why I'm sharing my experience.&lt;br /&gt;&lt;br /&gt;Preseed is Debian's/Ubuntu's answer to unattended installation.  It will do everything for you, from partitioning to setting up users.  You just need to create a text file, make it available, and tell the installer where it is.  First, here is my preseed for ubuntu hardy.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;### Network configuration&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i netcfg/choose_interface select eth0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i netcfg/get_hostname string ubuntu&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;### Mirror settings&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i mirror/country string enter information manually&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i mirror/http/hostname string ftp.deathcat.dci&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i mirror/http/directory string /ubuntu&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i mirror/http/proxy string&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;### Partitioning&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i partman-auto/init_automatically_partition&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i partman-auto/disk string /dev/sda&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i partman-auto/method string regular&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i partman-auto/purge_lvm_from_device boolean true&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i partman-auto/expert_recipe string boot-root :: 100 50 100 ext3 \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        $primary{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        $bootable{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        method{ format } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        format{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        use_filesystem{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        filesystem{ ext3 } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        mountpoint{ /boot } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    . \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    512 512 200% linux-swap \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        method{ swap } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        format{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    . \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    512 10000 1024 reiserfs \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        method{ format } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        format{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        use_filesystem{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        filesystem{ reiserfs } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        mountpoint{ / } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    . \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    512 10000 1024 reiserfs \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        method{ format } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        format{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        use_filesystem{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        filesystem{ reiserfs } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        mountpoint{ /tmp } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    . \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    1000 10000 2000 reiserfs \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        method{ format } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        format{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        use_filesystem{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        filesystem{ reiserfs } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        mountpoint{ /var } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    . \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    3000 10000 4000 reiserfs \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        method{ format } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        format{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        use_filesystem{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        filesystem{ reiserfs } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        mountpoint{ /usr } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    . \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    100 10000 100000000 reiserfs \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        method{ format } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        format{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        use_filesystem{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        filesystem{ reiserfs } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        mountpoint{ /home } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    .&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i partman/confirm_write_new_label boolean true&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i partman/choose_partition \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;       select Finish partitioning and write changes to disk&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i partman/confirm boolean true&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;### Clock and time zone setup&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i clock-setup/utc boolean true&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i time/zone string America/Denver&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;### Installation setup&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i  prebaseconfig/reboot_in_progress   note&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&lt;br /&gt;d-i     debconf/priority        select  critical&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;debconf debconf/priority        select  critical&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;base-config  base-config/intro          note&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;base-config  base-config/login          note&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;# The user's name and login.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;passwd passwd/user-fullname            string Ubuntu&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;passwd passwd/username                 string ubuntu&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;# And their password, but use caution!&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;passwd passwd/user-password            ubuntu ubuntu&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;passwd passwd/user-password-again      ubuntu ubuntu&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;# install desktop + standard packages&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;tasksel tasksel/first multiselect ubuntu-standard, ubuntu-desktop&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i     finish-install/reboot_in_progress note&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;# post install scripts&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i preseed/late_command string \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    cd /target; \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    wget ftp://ftp.deathcat.dci/pub/ubuntu/scripts/post-install; \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    chmod +x ./post-install; \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    chroot ./ ./post-install; \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    rm -f ./post-install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A lot of stuff is in there as you can see.  Let's look at the part under &lt;span style="color: rgb(0, 0, 153);"&gt;Network Configuration&lt;/span&gt;.  The first line, &lt;span style="color: rgb(102, 0, 0);"&gt;d-i netcfg/choose_interface select eth0&lt;span style="color: rgb(0, 0, 0);"&gt;, tells the installer to use eth0 for networking during the install.  This does absolute nothing during a PXE boot install, which is irratating if you are installing on to laptops with a wireless card.  The next line, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i netcfg/get_hostname string ubuntu&lt;span style="color: rgb(0, 0, 0);"&gt;, tells the install to give the new install the hostname ubuntu.&lt;br /&gt;&lt;br /&gt;Now, to the &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Mirror settings&lt;span style="color: rgb(0, 0, 0);"&gt; section.  This section tells the installer I want to manually set the location of the installer packages to http://ftp.deathcat.dci/ubuntu and not to use a proxy.&lt;br /&gt;&lt;br /&gt;The &lt;span style="color: rgb(0, 0, 153);"&gt;Partitioning&lt;/span&gt; portion is the most perplexing.  It was for me anyway.  I like to set up several partitions, for /boot, swap, /, /var/, /usr, and /home.  I also like to use reiserfs for speed.  The first two lines tell the installer to automatically wipe /dev/sda and prepare to partition it.  The next line tells it to use regular partitions opposed to lvm and after that is installer is told to not warn when deleting an lvm.  Now, for the meat and potatoes of the partition.  This one line( Yes, that is one line and must be so to function ) defines how the installer should do the actual partitioning.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;d-i partman-auto/expert_recipe string boot-root :: 100 50 100 ext3 \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        $primary{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        $bootable{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        method{ format } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        format{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        use_filesystem{ } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        filesystem{ ext3 } \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;        mountpoint{ /boot } \&lt;br /&gt;       .&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The first thing is leave the 100 50 100 ext3 on the first line.  Don't attempt to place the backslash after the :: and continue on the next.  It doesn't work.  I wish it did.  Anyway, the first 100 says to give this partition a minimal size of 100MB.  The 50 is the priority.  The lower it is, the more likely it will be filled to maximum size, which is the second 100.  Ext3 is the partition type to mount this partition as.  $primary{ } ensures this partition will be a primary partition and $bootable{ } will set the boot flag.  method{ format } tells it to format this partition and not preserve the filesystem as does the next line.  Preseed is redundant, is it?  Use_filesystem{ } tells it to auto detect the filesystem for mounting this time.  Filesystem{ ext3 } says use ext3 for formating.  Finally, mountpoint{ /boot } tells the installer to mount this to /boot.  The "." terminates the configuration of the one partition.  Read the rest of that line for more examples.&lt;br /&gt;&lt;br /&gt;The three lines after that one big one, tell the installer to write the partitions to disk, format, and not ask questions.&lt;br /&gt;&lt;br /&gt;The &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Clock and time zone setup&lt;span style="color: rgb(0, 0, 0);"&gt; section sets up the hard clock to use UTC and the timezone to that of Denver, Colorado.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Installation Setup tells the system to first reboot automatically after install.  It also tells the system to crash if debconf doesn't like the rest of the file.&lt;br /&gt;&lt;br /&gt;The user's name and login portion is self-explanatory.  You'll note that the password ubuntu is written four times, twice on two lines.  Why it is required to type it more than once, I don't know.  Preseed is redundant!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The next section tells the installer to install the ubuntu-standard and ubuntu-desktop packages and their dependencies.  It also tells the installer to reboot after install...again.&lt;br /&gt;&lt;br /&gt;At the end of the preseed, I have the installer download a file and execute it in a chroot of the new install.  This is that file with comments detailing what's going on.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;SCRIPTURL=ftp://ftp.deathcat.dci/pub/ubuntu/scripts&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;cd /tmp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;# Setup auto login&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;UBUNTUUSER=$( getent passwd 1000 | cut -d : -f 1 )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;wget "$SCRIPTURL/gdm.conf-custom"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;sed "s/AutomaticLogin=ubuntu/AutomaticLogin=$UBUNTUUSER/g" \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    gdm.conf-custom &gt; gdm.conf-custom2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;mv /etc/gdm/gdm.conf-custom /etc/gdm/gdm.conf-custom.orig&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;cp gdm.conf-custom2 /etc/gdm/gdm.conf-custom&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;rm -f gdm.conf-custom gdm.conf-custom2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;# Setup ubuntu sources&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;wget "$SCRIPTURL/sources.list"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;rm -f /etc/apt/sources.list&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;cp sources.list /etc/apt/sources.list&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;rm -f sources.list&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;# Get updates&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;apt-get update&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;apt-get -y upgrade&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;# Install flash, vlc, and dvd playing software&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;apt-get -y install \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    gstreamer0.10-plugins-ugly-multiverse \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    gstreamer0.10-plugins-bad-multiverse \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    gstreamer0.10-plugins-bad \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    gstreamer0.10-plugins-ugly \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    gstreamer0.10-ffmpeg \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    libxine1-ffmpeg \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    libdvdread3 \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    flashplugin-nonfree \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;    vlc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;# Setup DVD decryption&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;/usr/share/doc/libdvdread3/install-css.sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;exit 0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;And that's it.  One more note before I finish.  To make this entirely hand-free, you will have to past a few arguments at boot:  The locale, keymap, network interface to use, and the location of the preseed file.  I do this in my pxelinux.cfg/default.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;label ubuntu&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;  kernel ubuntu/hardy/i386/linux&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;  append vga=normal initrd=ubuntu/hardy/i386/initrd.gz \&lt;br /&gt; locale=en_US.UTF-8 debian-installer/keymap=us \&lt;br /&gt; netcfg/wireless_wep= netcfg/choose_interface=eth0 \&lt;br /&gt; netcfg/get_hostname=ubuntu \&lt;br /&gt; preseed/url=ftp://ftp.deathcat.dci/pub/linux/ubuntu/preseed/easy.cfg --&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3680913028227038757-1557997631290195039?l=redhatcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/1557997631290195039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/1557997631290195039'/><link rel='alternate' type='text/html' href='http://redhatcat.blogspot.com/2008/07/fun-with-preseed.html' title='Fun with Preseed'/><author><name>Cat in the Red Hat</name><uri>http://www.blogger.com/profile/08793659611680183237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.digg.com/userimages/redhatcat/large3750.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-3680913028227038757.post-3520557327608550249</id><published>2008-07-06T13:40:00.000-07:00</published><updated>2008-07-06T13:55:27.837-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pxe'/><category scheme='http://www.blogger.com/atom/ns#' term='pxelinux'/><category scheme='http://www.blogger.com/atom/ns#' term='pxegrub'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Loading pxegrub from pxelinux!</title><content type='html'>Pxelinux can do a lot of things, but loading the solaris installer is not one of them.  For that, it is easier to use pxegrub.  What can you do if you still want to use pxelinux as your primary network bootloader?  You can easily make an entry in your pxelinux.cfg/default for pxegrub!&lt;br /&gt;&lt;br /&gt;First of all, here is what my /tftpboot directory without the many linux, bsd,  and solaris boot files:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;/tftpboot/boot/grub/menu.lst&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;/tftpboot/pxelinux.cfg/default&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;/tftpboot/pxegrub.0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;/tftpboot/pxelinux.0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you are paying attention, you'll notice that pxegrub's filename is different than normal.  You have to end the filename with a &lt;span style="color: rgb(102, 0, 0);"&gt;.0&lt;/span&gt;.  If you don't, then pxelinux will not load it properly, which caused me a bit of confusion.  Also, you will need to place pxegrub's configuration, &lt;span style="color: rgb(102, 0, 0);"&gt;menu.lst&lt;/span&gt;, in &lt;span style="color: rgb(102, 0, 0);"&gt;/boot/grub&lt;/span&gt; at the root of your tftp.  Pxegrub looks there by default.&lt;br /&gt;&lt;br /&gt;If you have everything set as so, you will be able to load pxegrub from pxelinux with the following clause:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;label g&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;  kernel pxegrub.0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's really that easy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3680913028227038757-3520557327608550249?l=redhatcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/3520557327608550249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/3520557327608550249'/><link rel='alternate' type='text/html' href='http://redhatcat.blogspot.com/2008/07/loading-pxegrub-from-pxelinux.html' title='Loading pxegrub from pxelinux!'/><author><name>Cat in the Red Hat</name><uri>http://www.blogger.com/profile/08793659611680183237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.digg.com/userimages/redhatcat/large3750.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-3680913028227038757.post-5688503068228067330</id><published>2008-06-29T18:34:00.000-07:00</published><updated>2008-07-06T16:34:12.228-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='nfs'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Solaris:  Setting up a NFS server</title><content type='html'>This assumes you've already setup the OpenSSH server on the machine.&lt;br /&gt;&lt;br /&gt;First, you will need these packages installed in this order:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;SUNWgssk&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;SUNWrsgk&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;SUNWnfscr&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;SUNWnfsckr&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;SUNWnfscu&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;SUNWnfssr&lt;br /&gt;SUNWnfsskr&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;SUNWnfssu&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, you must define your exports before nfsd will start.  You do this by altering /etc/dfs/dfstab.  To share /export/install for instance, where I have the Solaris installer files, I would add this line:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;share -F nfs -o ro /export/install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This line gives everyone read-only access to my install files.&lt;br /&gt;&lt;br /&gt;Now, nfs can be started and made to start at boot with these commands:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;svcadm enable -t nfs/server&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;svcadm enable nfs/server&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can check to see if everything is working with a &lt;span style="color: rgb(102, 0, 0);"&gt;showmount -e&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3680913028227038757-5688503068228067330?l=redhatcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/5688503068228067330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/5688503068228067330'/><link rel='alternate' type='text/html' href='http://redhatcat.blogspot.com/2008/06/solaris-setting-up-nfs-server.html' title='Solaris:  Setting up a NFS server'/><author><name>Cat in the Red Hat</name><uri>http://www.blogger.com/profile/08793659611680183237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.digg.com/userimages/redhatcat/large3750.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-3680913028227038757.post-5117359245999533624</id><published>2008-06-29T18:19:00.000-07:00</published><updated>2008-06-29T18:43:51.199-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Solaris:  Installing SSHD</title><content type='html'>This assumes the Reduced Network Support software group was chosen during initial installation.&lt;br /&gt;&lt;br /&gt;These packages will need to be installed in this order:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;SUNWgssc&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;SUNWgss&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;SUNWsshcu&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;SUNWsshdr&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;SUNWsshdu&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After these are installed, you will have to generate host keys for sshd.  You do this with the following command:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;/lib/svc/method/sshd -c&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now that the keys exist sshd can be started with this command:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;svcadm enable -t ssh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And made to start at boot with this command:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;svcadm enable ssh&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3680913028227038757-5117359245999533624?l=redhatcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/5117359245999533624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/5117359245999533624'/><link rel='alternate' type='text/html' href='http://redhatcat.blogspot.com/2008/06/solaris-installing-sshd.html' title='Solaris:  Installing SSHD'/><author><name>Cat in the Red Hat</name><uri>http://www.blogger.com/profile/08793659611680183237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.digg.com/userimages/redhatcat/large3750.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-3680913028227038757.post-7214735343702745655</id><published>2007-10-25T15:52:00.000-07:00</published><updated>2008-06-29T18:30:54.280-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Windows Entropy</title><content type='html'>If you've used a Windows installation for an extended period, six months or more, then you may have noticed the system gets slower and slower as time passes.  This is what I call Windows Entropy.&lt;br /&gt;&lt;br /&gt;The main cause is the New Technology File System, or NTFS.&lt;br /&gt;&lt;br /&gt;When you first install Windows, or format a new NTFS partition, a few things are created. The two that matter here are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The Master File Table, or MFT, which is usually contiguous, reserved space for storing file metadata, like location, size, acls, and timestamps.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The unreserved space, where data is placed.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Initially, the data and metadata are close together on the disk.  As the data grows to fill the available space, the distance between the metadata and data grows because Windows will try to keep the MFT contiguous and in one spot &lt;a href="http://support.microsoft.com/default.aspx/kb/174619"&gt;[source]&lt;/a&gt;.  This distance increases seek time, which slows the whole system down because metadata is accessed frequently.&lt;br /&gt;&lt;br /&gt;What makes it worse is the partition does not have to fill up to much cause this.  If you delete a file and create a new same size or smaller file, Windows may not place the new file in the space of the old file.  The data may be placed instead sparsely &lt;a href="http://www.ntfs.com/ntfs-sparse.htm"&gt;[source]&lt;/a&gt;.  This further increases the distance between the data and the MFT.  Other file systems do this as well because it avoids fragmentation by giving files room to grow, which is exactly why Microsoft implemented it in NTFS5.  These other systems do not try to store their metadata in one contiguous space though.  Ext2, for instance, stores its metadata in inodes, which reside in block groups, which are placed throughout the partition &lt;a href="http://www.science.unitn.it/%7Efiorella/guidelinux/tlk/node95.html#SECTION001110000000000000000"&gt;[source]&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3680913028227038757-7214735343702745655?l=redhatcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/7214735343702745655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/7214735343702745655'/><link rel='alternate' type='text/html' href='http://redhatcat.blogspot.com/2007/10/windows-entropy.html' title='Windows Entropy'/><author><name>Cat in the Red Hat</name><uri>http://www.blogger.com/profile/08793659611680183237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.digg.com/userimages/redhatcat/large3750.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-3680913028227038757.post-2149031252885681350</id><published>2007-09-11T09:33:00.000-07:00</published><updated>2008-06-29T18:31:18.507-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='raid'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><title type='text'>Creating and moving your Linux software raid with mdadm</title><content type='html'>I thought I would document this for reference for myself and anyone else who might benefit.  I recently upgraded with main workstation, replacing my 1.2TB LVM made up of five 250GB drives with a 2TB raid array of five 500GB drives.  The additional challenges were that I would have to transfer the data off of the old LVM onto the new raid and I would have to do this over the network as neither motherboard has 10 SATA connections.  To further complicate things, I want to use one of the current drives of the LVM as my new system drive.   Here is the process.&lt;br /&gt;&lt;br /&gt;After setting up the hardware for both systems, I booted the new raid system with a Fedora Core 7 DVD and entered rescue mode by entering &lt;b&gt;linux rescue&lt;/b&gt; at the ISOLINUX prompt.  Normally, I would setup the raid during the normal Fedora installation.  However, I want to use one of the LVM members for the new installation, which I also need to pull data off of first.&lt;br /&gt;&lt;br /&gt;Now that I'm in rescue mode, the first thing to do was partition each raid member with one big &lt;b&gt;Linux Raid Autodetect &lt;/b&gt;or &lt;b&gt;fd &lt;/b&gt;type partition.  Once this was done, I could create a level 5 raid with this command:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;mdadm --create /dev/md0 --level=5 --raid-devices=5 /dev/sd[abcde]1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When I ran this command the first time, mdadm told me that /dev/sda1 was too small to be part of the array.   For some reason, the kernel detected the changes in the other drives, but not the first one.   I rebooted the system, as partprobe is not available in rescue mode, and then command worked like a charm.&lt;br /&gt;&lt;br /&gt;The next step was to put a file system on the new raid device.  I used XFS because the files that would live on this file system were very large, about 100MB to several gigabytes.  I formatted /dev/md0 with this command, which is about how you could format any drive with XFS:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;mkfs.xfs /dev/md0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Next, I mounted the raid, setup an NFS export on the old system, and mirrored about a terabyte of data.  This took about 16 hours over gigabit ethernet.&lt;br /&gt;&lt;br /&gt;The next day, after copying completion, I installed Fedora Core 7 on one of the old members of the LVM.  After installing, I would then configure the raid as my /home.  I had to assemble the raid before I could use it.  You could use this method to assemble a raid moved from another system as well as what I am doing.&lt;br /&gt;&lt;br /&gt;Before I could assemble it, I needed the raid's UUID.  This is easy to get.  All you need to know is the device file of one of the raid members, which the first on mine is /dev/sdb1, and you can ask mdadm.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;mdadm --examine /dev/sdb1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the cascade of output, you will see UUID presented as a string of hexidecimal characters.  Now, we run this command to assemble the raid device:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;mdadm --assemble --name=/dev/md0 --uuid=PUT_UUID_HERE /dev/sd[bcdef]1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The raid device is all ready to mount.  Now, I want this raid device to be prepared at every boot.  I do this by creating /etc/mdadm.conf and insert this:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;DEVICE /dev/sd[bcdef]1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;ARRAY /dev/md0 UUID=PUT_UUID_HERE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;MAILADDR root@localhost&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That's it.  Remember to update your /etc/fstab, if you want your raid to be mounted every boot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3680913028227038757-2149031252885681350?l=redhatcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/2149031252885681350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/2149031252885681350'/><link rel='alternate' type='text/html' href='http://redhatcat.blogspot.com/2007/09/creating-and-moving-your-linux-software.html' title='Creating and moving your Linux software raid with mdadm'/><author><name>Cat in the Red Hat</name><uri>http://www.blogger.com/profile/08793659611680183237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.digg.com/userimages/redhatcat/large3750.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-3680913028227038757.post-3938721471422135343</id><published>2007-09-07T06:52:00.000-07:00</published><updated>2008-06-29T18:31:42.570-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='X11'/><title type='text'>X.org for Sharp Aquos and nVidia 8800 GTS</title><content type='html'>Configuring X for functionality with an HDTV and any nVidia card is quite a frustrating adventure.  This is the procedure I took to configure X for my nVidia 8800 GTS ( g80 ) connected to my Sharp Aquos LC-32GP1U through DVI-D.  This Aquos is a 1080p monitor, so I am configuring it to run at 1920x1080.&lt;br /&gt;&lt;br /&gt;When I first start X, I get a display.  The resolution is only 1280x1024.  So the first step is to see what X's problem is.  The easiest way is to first enter runlevel 3 and start X from there with added switches for verbosity.&lt;br /&gt;&lt;br /&gt;Use &lt;b&gt;Ctrl+Alt+F1&lt;/b&gt; to switch to the first virtual terminal.&lt;br /&gt;Login and run &lt;b&gt;telinit 3&lt;/b&gt; to enter runlevel 3.&lt;br /&gt;Start X with &lt;b&gt;startx -- -verbose 6 --logverbose 6 2&gt; /tmp/startx.log &lt;/b&gt;&lt;br /&gt;As soon as X displays the screen, press &lt;b&gt;Ctrl+Alt+Backspace&lt;/b&gt; to kill X.&lt;br /&gt;&lt;br /&gt;Now, we look at &lt;b&gt;/tmp/startx.log&lt;/b&gt;.  We are looking for the mode validation checking for possible resolutions, specifically &lt;b&gt;1920x1080&lt;/b&gt;.  In this output, X tells us that 1920x1080 is to large for DFP, which it isn't because this is a 1080p monitor.  We need to tell X to not worry about DFP.  Insert the following line in the Device section:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;Option      "ModeValidation" "NoDFPNativeResolutionCheck"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now start X with &lt;b&gt;startx -- -verbose 6 --logverbose 6 2&gt; /tmp/startx.log&lt;/b&gt;.  We'll see nothing has changed.  Kill X and look at /tmp/startx.log.  Look at the mode validation.  X is now complaining about timings.  We need to tell X to use exact timings, which we do by adding this line to our Device section:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;Option      "ExactModeTimingsDVI" "True"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now start X with &lt;b&gt;startx -- -verbose 6 --logverbose 6 2&gt; /tmp/startx.log&lt;/b&gt;. We'll see that the screen is deformed.  Kill X and look at /tmp/startx.log.  Nothing will scream out the problem unfortunately.  The resolution is actually correct, 1920x1080.  However, the image is not correctly scaled.  It took me many frustrating google searches to find a solution for this. We need to add this line to our Device section to have the  video card use the monitor's native scaling.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;Option      "FlatPanelProperties" "Scaling=Native"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Start X and voila.  Beautiful 1080p resolution, perfectly scaled.  Here is the entire /etc/X11/xorg.conf from my machine:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&lt;br /&gt;Section "ServerLayout"&lt;br /&gt; Identifier     "single head configuration"&lt;br /&gt; Screen      0  "Screen0" 0 0&lt;br /&gt; InputDevice    "Keyboard0" "CoreKeyboard"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Files"&lt;br /&gt; ModulePath   "/usr/lib64/xorg/modules/extensions/nvidia"&lt;br /&gt; ModulePath   "/usr/lib64/xorg/modules"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "ServerFlags"&lt;br /&gt; Option        "AIGLX" "on"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "InputDevice"&lt;br /&gt; Identifier  "Keyboard0"&lt;br /&gt; Driver      "kbd"&lt;br /&gt; Option        "XkbModel" "pc105"&lt;br /&gt; Option        "XkbLayout" "us"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Monitor"&lt;br /&gt; Identifier   "Monitor0"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Device"&lt;br /&gt; Identifier  "Videocard0"&lt;br /&gt; Driver        "nvidia"&lt;br /&gt; Option        "ExactModeTimingsDVI" "True"&lt;br /&gt; Option        "ModeValidation" "NoDFPNativeResolutionCheck"&lt;br /&gt; Option        "FlatPanelProperties" "Scaling=Native"&lt;br /&gt; Option        "AddARGBGLXVisuals" "True"&lt;br /&gt; Option        "DisableGLXRootClipping" "True"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Screen"&lt;br /&gt; Identifier "Screen0"&lt;br /&gt; Device     "Videocard0"&lt;br /&gt; Monitor    "Monitor0"&lt;br /&gt; DefaultDepth     24&lt;br /&gt; SubSection "Display"&lt;br /&gt;     Viewport   0 0&lt;br /&gt;     Depth     24&lt;br /&gt;     Modes    "1920x1080"&lt;br /&gt; EndSubSection&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Extensions"&lt;br /&gt; Option        "Composite" "Enable"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3680913028227038757-3938721471422135343?l=redhatcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/3938721471422135343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3680913028227038757/posts/default/3938721471422135343'/><link rel='alternate' type='text/html' href='http://redhatcat.blogspot.com/2007/09/xorg-for-sharp-aquos-and-nvidia-8800.html' title='X.org for Sharp Aquos and nVidia 8800 GTS'/><author><name>Cat in the Red Hat</name><uri>http://www.blogger.com/profile/08793659611680183237</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.digg.com/userimages/redhatcat/large3750.png'/></author></entry></feed>
