Make a RHEL 6 Bootable USB Installer

This posts outlines the steps required to make a RHEL 6 Installation USB Stick.  Effectively, this is nothing more than a USB stick version of the RHEL 6 DVD ISO.  The steps here will also work with any RHEL 6 based clone.

Note: There is a bug that prevents this from working on RHEL 6.4. However, RHEL 6.5 works properly. I have not tested this with RHEL 6.4 clones, so YMMV with those.

As always, use caution for running elevated commands; I am not responsible for any mistakes you make.

Having a USB stick to install RHEL 6 from is quite convenient, especially when making custom kickstart scripts.  The steps below provide a simple means to accomplish this task.  However, before moving forward, the following items are required:

  1. An 8GB or higher USB Stick that you want to dedicate for this
  2. The regular installation ISO’s for the version of RHEL 6 (or CentOS, Scientific Linux, etc.) you desire to install
  3. The minimal or “netinstall” ISO. This is crucial!

General Layout:
This is basically going to be setup as follows:

  • The USB Stick will have 2 partitions. One partition will be bootable, and be used to load the boot menu. The other partition will have the installation ISO’s (and any additional resources, like Kickstart files) on it.
  • The USB Stick will boot, and present the installation disk boot menu. You will select the option to install RHEL 6 from the ISO file stored on the second USB stick partition for installation.
  • Effectively, this is nothing more than a “Hard Disk” installation; meaning that the installer will look for an ISO file on an external HDD that contains all of the required files to install RHEL. However, we are going to “trick” the installer into thinking that our USB stick is the external HDD. This is actually a lot easier than it sounds.

Prepare Install Media:
Once the ISO’s are downloaded, some work will need to be done to make everything work as simple and fool-proof as possible. As mentioned above, download the net-install, or minimal boot ISO file. We are then going to extract the contents, and make a small modification to tell the installer where to find the installation source. This prevents you from needing to type in extra stuff to get an install going.

So, to do this, we will need to copy all of the contents from the ISO file to a directory that we can work with. Elevate to root and follow the following instructions in this order:

  1. Make a new directory in /tmp called rhelboot with the command:
    $ mkdir /tmp/rhelboot
    This is going to serve as a mount point for the minimal boot ISO file. For the purposes of this tutorial, I am using using the CentOS 6.5 net install ISO.
  2. Make another directory in /tmp called rhelmodboot with the command:
    $ mkdir /tmp/rhelmodboot
  3. Mount the minimal boot ISO file to the newly created directory:
    $ mount -o loop /location/to/downloaded/minimal-boot.iso /tmp/rhelboot
  4. Copy all files from the ISO file into the modification directory we created above:
    $ cp -pr /tmp/rhelboot/* /tmp/rhelmodboot/
  5. At this point, you can unmount the ISO:
    $ umount /tmp/rhelboot
  6. We are now going to add an entry to the boot menu. This entry will load the installer and tell it to select the proper ISO file as an installation source. To do this, we need to modify the file: /tmp/rhelmodboot/isolinux/isolinux.cfg
    This file lists all of the boot menu entries that will load the installer. This is what it looks like:

    default vesamenu.c32
    #prompt 1
    timeout 600
    
    display boot.msg
    
    menu background splash.jpg
    menu title Welcome to CentOS 6.5!
    menu color border 0 #ffffffff #00000000
    menu color sel 7 #ffffffff #ff000000
    menu color title 0 #ffffffff #00000000
    menu color tabmsg 0 #ffffffff #00000000
    menu color unsel 0 #ffffffff #00000000
    menu color hotsel 0 #ff000000 #ffffffff
    menu color hotkey 7 #ffffffff #ff000000
    menu color scrollbar 0 #ffffffff #00000000
    
    label linux
      menu label ^Install or upgrade an existing system
      menu default
      kernel vmlinuz
      append initrd=initrd.img
    label vesa
      menu label Install system with ^basic video driver
      kernel vmlinuz
      append initrd=initrd.img xdriver=vesa nomodeset
    label rescue
      menu label ^Rescue installed system
      kernel vmlinuz
      append initrd=initrd.img rescue
    label local
      menu label Boot from ^local drive
      localboot 0xffff
    label memtest86
      menu label ^Memory test
      kernel memtest
      append -
  7. Add a new label by copying and pasting one of the sections above with the necessary modification. The USB partition that will contain the ISO will be mounted as sda2 (during the installation process). This is important, as you will see later… To make a simple installer (without kickstart), add an entry similar to this:
    label usbinstaller
      menu label ^Install RHEL 6 from the USB Stick
      menu default
      kernel vmlinuz
      append initrd=initrd.img repo=hd:sda2:/

    Note: The label and menu label tags are customized. This particular entry is the default, marked with: menu default. If you copied and pasted, make sure you remove the other menu default entry. Also make note of append. I have added: repo=hd:sda2:/ to it. This follows the convention: repo=hd:device:/path. This will tell the installer that the installation source is located on a HDD (our USB stick in this case), and on the main root directory of it (this example). You can of course change which directory you want to place it in, for example: repo=hd:sda2:/workstation.

    For Kickstart: If you are using kickstart, it will be similar to above. The only difference is that you will need to have an append entry that follows this convention: ks=hd:device:/directory/ks.cfg. For example (keeping with the “workstation” convention earlier, and assuming that the kickstart script is located in the workstation directory):
    append initrd=initrd.img ks=hd:sda2:/workstation/ks.cfg (If you are using Kickstart, you don’t use repo=).

  8. Once done, save the file.
  9. The next steps involve the creation of the bootable ISO file that will be used to present the menu. You will need to run the following commands to generate the boot ISO file:
    $ cd /tmp/rhelmodboot
    $ mkisofs -o /tmp/bootmod.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -V "RHEL-6-USB-INSTALLER" -T .

    Don’t forget the last “.”, that is needed for the command to work properly!

  10. After the last command, an ISO file will be present at: /tmp/bootmod.iso. The next step is crucial for USB bootability. The ISO will burn to a CD/DVD fine, but it won’t boot from USB until you make it USB bootable. To make it USB bootable, simply run the command: $ isohybrid /tmp/bootmod.iso
  11. The ISO should now be USB bootable. The next step is to get the ISO onto a USB stick. This will involve erasing everything off of the USB stick, as it will be dedicated for this task. To make matters simple, delete all partitions off of the USB stick. To do that, insert a desired USB stick. Unmount all mounted partitions, and then run the commands:
    $ fdisk -cu /dev/DEVICE # Make sure you use the proper drive.  Typically, this is sdb, but could be something else. I take no responsibility for your mistakes...
    # Press 'D' until you see the message: 'No partition is defined yet!'
    # Press 'W' to save the partition table to the device.

    Once the partitions on the USB stick have been removed, you can copy over the ISO. This is accomplished with the dd command, as follows:
    $ dd if=/tmp/bootmod.iso of=/dev/DEVICE # Pick the proper device, typically sdb
    Please use caution when running the dd command!

Final Steps: Copying All Required Files Over:
Below are the final remaining steps needed to complete the task. Please elevate to root to complete all instructions.

  1. Create a new ext4 partition on the USB stick. This will be used to store the installation ISO’s and all other additional content (like kickstart files). To do this, you must have your USB stick connected. Next, follow the commands below to create the partition:
    $ fdisk -cu /dev/DEVICE       # Replace DEVICE with the actual device.  It will most likely be sdb, but please double check.
    # Press 'N'
    # Press 'P'
    # Press Enter three times.
    # Press 'W'
    $ mkfs.ext4 /dev/DEVICE(PARTNUMBER) # Replace the device and partition number with the proper one.  Typically, this will be /dev/sdb2.
  2. Create a new mount point for the newly created partition, and mount it:
    $ mkdir /tmp/rhelusb
    $ mount /dev/DEVICE(PART) /tmp/rhelusb  # Remember...
  3. At this point, we can now copy all files over. However, before copying files over, you need to understand how the directory structure of this works. Basically, Hard Disk installs look for a .iso file with the installation files (the standard ISO’s you download and use for installation). However, we need to copy a few files from the installation ISO which tells the installer which ISO files in the directory to use.
     
    So, we need to mount the installation ISO. Create another mount point, and mount the installation ISO:
    $ mkdir /tmp/rheliso
    $ mount -o loop /location/to/installation/iso /tmp/rheliso
  4. You must first create a directory on the flash drive called images: $ mkdir /tmp/rhelusb/imagesThe purpose of this directory is to contain information about the install media. The primary file that needs to be copied from the ISO’s images directory is: install.img. For official RHEL 6, you must also copy over product.img. Note: RHEL clones may not have a product.img file, and can be omitted.So, copy the files over:
    $ cp /tmp/rheliso/images/install.img /tmp/rhelusb/images/
    # REQUIRED FOR ACUTAL RHEL, (Clones may lack this file):
    $ cp /tmp/rheliso/images/product.img /tmp/rhelusb/images/
  5. At this point, we are done with the mounted ISO image. You can now unmount it: $ umount /tmp/rheliso
    Feel free to copy over any kickstart files, or additional content that you need.
  6. Finally: Copy over all installation ISO’s onto the flash drive. It doesn’t matter if there is more than one, the installer will see them and install the system properly.
    $ cp /location/to/iso/to/copy /tmp/rhelusb
  7. OPTIONAL? It may be best to change the permissions of files and directories on the flash drive. This may, or may not, be necessary. However, all files on the installation medium are of permissions: 444, and all directories are of permissions: 555. To do this, you would need to run the commands:
    $ cd /tmp/rhelusb
    $ find ./ -type f -exec chmod 444 {} \;
    $ find ./ -type d -exec chmod 555 {} \;
  8. Unmount the USB drive, and test it out! $ umount /tmp/rhelusb (Don’t forget to cd out of the directory if you perform the optional step 7.)

NOTES:
The installer will see the USB stick as HDD sda2. Therefore, if you are using Kickstart, please keep this in mind if you are doing automatic partioning, and clearing out disks.

Additional Reources:

Install Git 1.8.x on RHEL 5 and 6

If you are running RHEL 5, you may already know that Git is not located in the official RHN repositories. You can always install it from EPEL. However, EPEL contains an older version: 1.7.4.1 (at the time of this post). RHEL 6 has Git in the official RHN repositories, but, it’s based on Git 1.7.1. For most users, this might be fine, however, if you have a need or want to use the latest and greatest version (or have everyone using the same version), then you will need to build the newer ones from source.

The Problem:

Installing version 1.8.x might seem as simple as downloading the source and running make. (This post uses Git version 1.8.1 as the example.) Unfortunately, building Git v. 1.8.x isn’t that simple on RHEL5, and I will explain why below:

After you download and extract the source code, there is an INSTALL file that outlines instructions on how to build Git. According to that file, you would run the commands:

	$ make prefix=/usr all doc info ;# as yourself
	# make prefix=/usr install install-doc install-html install-info ;# as root

Running this command on RHEL 5 will fail…But not because of the Git binaries. It will fail when generating the documentation. The problem is that the documentation needs to be built with AsciiDoc. AsciiDoc is found in EPEL, but the version on EPEL is too old to properly build the Git documentation. Even if you build the latest version of AsciiDoc, it still won’t work because it depends on a newer version of DocBook XML files. Unfortunately, the DocBook XML files on RHEL 5 are really, really old (Source).

Thus, you cannot (easily) build the documentation on RHEL 5, BUT: you can still build Git and get the documentation!

The Solution:

The Git developers know that the documentation can be hard to install, so they provided a workaround to installing it. Per the Git installation documentation:

There are also "make quick-install-doc", "make quick-install-man"
and "make quick-install-html" which install preformatted man pages
and html documentation. To use these build targets, you need to
clone two separate git-htmldocs and git-manpages repositories next
to the clone of git itself.

I will explain how to make this work. But first, we need to build the Git binaries without the documentation packages. So, run the command below while inside of the Git source directory to build Git:

$ make prefix=/usr all
$ sudo make prefix=/usr install

**Notes for the above commands:

  • Do not run the first command as root. Run this as your non-root user.
  • Git is cool in that you don’t need to run the /.configure script, you just make it.
  • You ALWAYS need the prefix. Don’t just run make in this case! (This is also true in the installation.)

The above commands will compile and install Git. As for dependencies, you will obviously need the build tools, openssl, openssl-devel, libcurl, libcurl-devel, expat, and expat-devel. There may be one or two more, but this seems to work for me. You can use yum to install them. This works for both RHEL 5 and 6.

As of this point, you have the git binaries installed. You can verify this by opening a terminal and running the command: $ git version. It should return the version number of Git that you downloaded. You are missing the man pages for Git, as well as the HTML documentation files. I would highly recommend installing the man pages, but at this point, you can fully use Git.

Installing Documentation:

Having the man pages are very useful. We’ll also install the HTML pages as well. So, to install them, we are going to fetch the docs that are pre-made. These are just text and HTML files; there is nothing special about them, but we need to move them into the appropriate directories so that they are useful.

In the previous section, I pasted in instructions from the INSTALL file on how to do this. However, if you are like me, you will find that really confusing. In fact, I submitted a StackOverflow question about this. Fortunately, I figured it out and answered my own question. For convenience, I have pasted the instructions below:

  1. First, open a terminal, and cd to the parent directory of the directory containing the Git source code. Meaning, if you are inside of the Git directory, simply run the: $ cd ../ command.
  2. Once directly outside of the Git source directory, you need to Git clone the repositories containing the documentation files (remember, we just installed Git!). Do that by running:
    $ git clone git://git.kernel.org/pub/scm/git/git-manpages.git
    $ git clone git://git.kernel.org/pub/scm/git/git-htmldocs.git
    

    Now: Here is a REALLY GOOD QUESTION:WHY didn’t the author(s) of the documentation include these locations? Seriously, WTF? I’m not psychic. But whatever, I eventually found them…

  3. Once you have the files downloaded, cd back into the Git source code directory, and run the EXACT commands below to install them:
    $ sudo make prefix=/usr quick-install-doc
    $ sudo make prefix=/usr quick-install-html
    

At this point, you can test this out by running the command: $ man git, and you should see a man page for Git. If you can see the man pages, then congratulations! You are done!

!!SPECIAL NOTE TO RESTRICTED umask USERS!!
Many environments require the umask setting to be made more restrictive. This is typical in many secure production environments. This will cause a bit of a problem when installing the docs. The problem is that although the files are installed, their permissions are set such that standard users do not have permission to see the man pages. This can be fixed by running the following commands (as root!):

$ find /usr/share/man/man1 -type f -iname "git*" -exec chmod 644 {} \;
$ find /usr/share/man/man5 -type f -iname "git*" -exec chmod 644 {} \;
$ find /usr/share/man/man7 -type f -iname "git*" -exec chmod 644 {} \;

## If you installed the HTML docs as well, you need to do:
$ find /usr/share/doc/git-doc -type f -exec chmod 644 {} \;
$ find /usr/share/doc/git-doc -type d -exec chmod 755 {} \;

Remember, make sure those commands are run as root! That should fix any permission issues resultant from restrictive umask settings.

Specify the Virtual NIC Name for KVM Bridged VM’s

When working with KVM bridged interfaces, KVM will automatically name the virtual NIC that is spawned when the VM is started. This typically follows a naming convention of:

vnet0, vnet1, vnet2, ..., vnetN

The virtual NIC names are dynamically applied to each VM instance.  Thus, a spawned VM is not guaranteed to receive the same virtual NIC when it is restarted.  Generally speaking, this may not be a problem.  However, what if you *need* to have a script, or some function whereby it is important to know which virtual NIC is allocated to a specific VM?  There are ways of scripting this, but to avoid the headaches of scripting, it may be helpful to just specify a fixed, hard-coded name on the generated virtual NIC of the VM.  To do this, you must use the virsh command line utility.

To implement this, follow the steps below as a user that has rights to use the virsh command:

  1. Run the command: virsh
  2. At the virsh console, you need to type the command: edit <domain/VM Name> (substitute the name of your VM in here)
  3. This will open up a vi like interface to edit the XML entries for your VM. NOTE: I am making the assumption that you are using a standard bridged setup. I have not tested this with non-bridged setups, and especially not on libvirt managed bridged setups. Thus, your mileage may vary.
  4. Locate the XML entry for your network setup. It should look something like this:
    <interface type='bridge'>
          <mac address='00:11:22:33:44:55'/>
          <source bridge='br0'/>
          <model type='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
        </interface>
    

    You need to add a line to the interface tag that looks like this:
    <target dev='the_name_of_your_nic'/>

    Note: the name of the NIC needs to be a valid interface name. All lowercase and underscores work. As an example, I named my VM’s virtual NIC’s to something like this:
    vm1_net, vm2_net, vm3_net, ..., vmN_net

  5. Once it’s entered, it should look something like this:
    <interface type='bridge'>
          <mac address='00:11:22:33:44:55'/>
          <source bridge='br0'/>
          <target dev='vm1_net'/>
          <model type='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
        </interface>
    
  6. Save the changes and start the VM.

Once everything is set, you should see something like this if you use the ifconfig command:

vm1_net   Link encap:Ethernet  HWaddr 00:11:22:33:44:55  
          inet6 addr: fe80::fc54:ff:fec7:11/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:468 (468.0 b)  TX bytes:468 (468.0 b)

vm2_net   Link encap:Ethernet  HWaddr 00:11:22:33:44:56  
          inet6 addr: fe80::fc54:ff:fec7:22/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 b)  TX bytes:468 (468.0 b)

This guarantees that the VM will always start with the virtual NIC name that you specify. In my case, I have VM1 using vm1_net, and VM2 using vm2_net.

Disable BitLocker Active Directory Dependency

Let’s imagine that you have a Windows 7 system that was imaged.  Let’s imagine that the image is designed to easily connect to your infrastructure’s domain.  Let’s also imagine that you don’t want to add this particular system to your domain; you just want to use this system for a separate purpose, but save time by using your primary Windows 7 image.  Let’s also imagine that you want this system to have BitLocker enabled.  Your system meet’s all of Microsoft’s BitLocker requirements, but when you try to enable BitLocker, you get a nasty: BitLocker could not contact the domain.  Ensure that you are connected to the network or contact your system administrator error.

At this point, you have done a ton of research on how to turn off the Active Directory dependency for BitLocker, but have yet to find a solution.  Before you jump off the roof of your building, read below as I have your solution:

  1. Open gpedit.msc
  2. Navigate to: Computer Configuration > Administrative Templates > System > Trusted Platform Module Services.
  3. Disable the setting: Turn on TPM backup to Active Directory Domain Services.  This is probably the evil setting that is causing you all the problems.  But, just in case, continue on to the steps below anyway.
  4. Navigate to: Computer Configuration > Administrative Templates > Windows Components > BitLocker Drive Encryption.
  5. Disable the setting: Store BitLocker recovery information in Active Directory Domain Services (Windows Server 2008 and Windows Vista).
  6. You may need to disable 1 more setting.  Navigate to: Computer Configuration > Administrative Templates > Windows Components > BitLocker Drive Encryption > Operating System Drives.
  7. Disable the setting: Choose how BitLocker-protected operating system drives can be recovered.

Once all those Group Policy settings are disabled, your non-domain connected PC should have no (AD related) problems setting up BitLocker.

Beware of gedit

I love using gedit to make changes to config files in Linux. However, I have recently encountered some odd issues where config files that I edit using gedit just don’t work properly. However, making the exact same changes with vi or vim does not have any issues.

Looking at both files (one edited with gedit, the other with vim), they look exactly the same…so I thought. Apparently, gedit likes to add a \r (carriage return) to the end of some lines. This is a hidden character, so if you open the file with gedit, or vi/vim, you won’t see it. However, this hidden character can cause a very nasty side effect to your config files in that some applications will not properly parse the file. As a result, your application (or OS) will not work (talk about a great way to perform a nasty DoS attack).

This is the type of problem that will make you pull your hair out trying to solve. So, the solution? Either use vi/vim or nano. If you use gedit, make sure you do a find and replace where you want to find “\r” and leave the replace textbox blank. This will remove all instances of \r. Your file will “look” exactly the same, however, you eliminated that pesky hidden carriage return character causing all the problems.

You’re Welcome!

VirtualBox Bridged Networking Driver Problems

For most people this will not be an issue, however, there are a few individuals who are exhibiting network problems when using the VirtualBox Bridged Networking driver on the *host* machine.

The Problem:

The problem is that some systems running Windows 7 with the “VirtualBox Bridged Networking” driver installed will have network outage issues when resuming the system from hibernation.  The only way to fix this is the either reboot the machine, or disable/enable the NIC.

This bug has been reported here: http://www.virtualbox.org/ticket/4677, but it doesn’t seem like it will ever be fixed :(

The temporary solution:

Until Oracle gets around to fixing this bug, the following instructions below will correct the problem.  Do note, following the steps below will disable the bridged networking feature of VirtualBox.  However, utilizing this method gives you a simple avenue to re-enable it if you need to use it.

  1. Click the Start Menu / Start Orb.
  2. Type: “View network connections”
  3. Press Enter.
  4. A window should appear with a list of all the network devices attached to your system.
  5. Right click the adapter that is giving you a problem > Properties
  6. Uncheck “VirtualBox Bridged Networking Driver”
  7. Click OK, and you’re all set.

To enable the feature after it is disabled utilizing this method, follow the instructions above in reverse.

Alternatively, you can also just opt out of installing the VirtualBox Bridged Networking driver altogether.  However, doing so will not allow you to easily enable that great feature.

Stock Android Please…

I think I have fully made up my mind that my next Android phone will be a Google Nexus device. The Nexus devices offer something that no other Android phones on the market offer: a clean, stock, the way Google wanted it to be device that receives timely updates as soon as they are available. You don’t have to worry about terrible pre-loaded skins that completely bog down even the fastest devices on the market, as well as the lack of uninstallable bloatware that has unfortunately reared its ugly head onto these very expensive devices.

Manufacturer Android Skins

Android device manufactures, such as Motorola, HTC, Samsung, and LG (henceforth known as “the OEM’s”) all modify the version of Android that come pre-installed with their phones. They all put their own UI on top of Android to “enhance the experience of Android”, “add more features”, and lastly (but most importantly), “differentiate themselves from the competition”. The OEM’s all have their own unique skins, such as MotorBlur, Sense, and TouchWiz.

The Problem:

On the surface, these look like simple, flashy skins. However, they have become much more than that. Originally, that’s all they were, skins/launchers. If you wanted to “remove” MotorBlur, or Sense, etc., you would just install a different launcher app (such as Launcher Pro). However, they have since evolved to be more than just a skin. They now deeply embed hidden background processes into Android that consume RAM, CPU, and worse yet – battery life. Thus, simply installing Launcher Pro will not fix the problem.

But how can they differentiate themselves if they are all running the same OS?

Simple…by making great hardware. When someone buys a phone, one of the first things they look at is the hardware. They look at the size of the screen, the thickness, the build quality, the presence (or lack of presence) of a physical qwerty keyboard, the weight, the color, the carrier the phone is on, the battery life, the call quality, the screen quality, internal storage, SD card availability, camera quality, presence of front-facing camera, etc. Those are all *incredibly* important factors of a device. 100% of those are areas that the OEM’s have the complete expertise on innovating and differentiating themselves on. You can pretty much look at any Android phone and immediately tell who makes it by just looking at the way it’s built. *THIS* is where they should be differentiating themselves on.

The OEM’s are not software experts. If they were, they wouldn’t be using Android. They would instead have made their own OS from scratch. Google made a great mobile OS; one that can compete with the iPhone. That is why they are using it. In my very honest opinion, the OEM’s lost their ability to differentiate themselves in the software space by adopting an external OS. How many people do you know say “I can’t wait to get that MotorBlur phone!”? The answer is 0. People want an Android phone. They want to own a device that is part of the Android ecosystem, not a device that tries to invent its own platform.

The quicker the OEM’s realize that, the better off they will be.

Security+ Certification

I recently received my CompTIA Security+ ce certification (SY0-201), and like my A+ certification post, below is my experience with the Security+ exam:

Study Materials:

To study for the Security+ exam, I used the following three resources:

  1. CompTIA Security+: Get Certified Get Ahead: SY0-201 Study Guide
  2. Mike Meyers’ CompTIA Security+ Certification Passport, Second Edition (Mike Meyers’ Certification Passport)
  3. MeasureUp Security+ Practice Test Questions

Unlike my A+ exam, I did take a 1-week bootcamp training course.  I simply read the materials and reviewed all the practice questions.  Really, that was it.

The first book mentioned above is very good.  It covers the primary areas of the exam very nicely.  The language of the book is well written, and very descriptive.  There were a few errors in the text; however, there is an errata page online with the corrected information.  The book also contains a lot of practice questions, which are always very helpful.  Unfortunately, the practice questions are not on an accompanying CD-ROM, so you will be doing a lot of page-flipping back and forth between the answers and the original questions when you do your review.  This is certainly not a deal breaker, but just something to keep in mind.

The Passport book mentioned in item number 2 above was only used as a quick review.  I didn’t read the whole thing, since the first book covered most of the material very well.  I would recommend doing the practice questions in the book and reviewing any answer you get wrong in the residing chapter.  I found that to be very helpful at reviewing material you may have missed.  This book also contains an accompanying CD-ROM with extra practice questions, and allows you to obtain 50 more free questions if you register on the publisher’s site.  The questions are pretty good and are helpful in your review.

The last study aid was the MeasureUp test questions.  I also used their practice questions to study for A+, and I found them to be very effective.  The same is also true for Security+.  Generally speaking, practice questions are perhaps the best study tool for taking a certification exam, as they help you get a feel for the type of questions you will encounter.

The Test:

The test itself was quite fair.  Many questions were easy, but many were also tricky.  In the end, I did very well on the exam and the material referenced was of great assistance.

Unfortunately, the one area that the material above did not cover as much as I would have liked it to was Digital Forensics.  Make sure you know the process of responding to a security incident and also inform yourself on some of the tools used.  That is fair game for the test.

Good Luck!

A+ Certification Tips

I received my CompTIA A+ Certification in December of 2010, and I would just like to share some of my experiences with the exam, and some recommendations for study materials.  The CompTIA A+ exam was in two parts: The CompTIA A+ Essentials (220-701), and the CompTIA A+ Practical Application (220-702).

Study Materials:

I used several methods to study for the exam.  Luckily, my employer paid for me to take a 1-week A+ Training Bootcamp course.  This is simply a 1-week classroom course with an instructor who goes over the main areas covered in the A+ exam (you can Google search for the objectives, or purchase a training book which will usually list them).

With the course, we were provided some book materials.  In particular, we were provided with Element K A+ study materials, as well as Mike Meyers’ A+ Certification Passport, Third Edition (over time, the editions will change).  In addition to the book materials, we were also provided with access to sample questions.  We had access to both Kaplan and MeasureUp test questions.

In the end, I felt that the classroom course was not needed.  Yes, you can pass the A+ exams without the classroom course!

What you need to pass:

Honestly, the book materials and sample test questions are all you really need.  Of the two books, Meyers’s book was the best.  In fact, for me and my colleagues who also took the exam, the Meyer’s book was outstanding.  The best part about his book was that it contained exactly what you needed to know.  Everything was nicely explained and to the point.  The accompanying CD with the book also contains very good test practice questions.

The Element K books basically just contain a lot of information.  They will teach you a lot about computers; however, as extensive as those books are, they simply will not help you pass the exam.  They don’t really help you tackle the questions that are asked on the test.

Passing the exam is more than just knowing a lot about computers.  You need to understand how to answer the questions they ask.  By and large, the questions asked were very straight-forward.  However, there are some questions that can easily throw you off if you are not careful. The only real way to familiarize yourself with the test questions is to do lots of sample questions, over and over again.

With regards to test questions, I highly recommend MeasureUp’s exam questions.  They were up to date, realistic, plentiful, and mostly accurate (more on this below).  I can’t say the same for Kaplan.  Kaplan’s sample questions were unrealistically difficult, very outdated, and worst of all, contained a lot of obviously incorrect answers.  Did I say outdated?  One of the Kaplan questions was in regards to the upgradability of Windows 3.1x!  (You will not get questions older than XP)

Unfortunately, not all sample questions are accurate.  MeasureUp’s were pretty good, but you may find a small hand few that are wrong.  Kaplan had way too many mistakes to keep track of.  Obviously, if the answers are wrong, you can’t rely on them for help.

In Short:

Completing practice questions repeatedly along with reading Meyers book for me was enough to successfully pass both exams.

P.S. Make sure you know the full operation of laser printers.  They are fair game on the exams!

Copyright © /sarc All Rights Reserved · Using modified version of Green Hope Theme by Sivan & schiy · Proudly powered by WordPress