Batch Image Editing with ImageMagick

If you take a lot of digital pictures, you may find that there are times when you want to do the same thing to a group of images. You could use the GIMP to edit all of your pictures one at a time, but that is a time-consuming process, especially if you just want to make thumbnails of your vacation pictures. The good thing is that there is a simple, yet powerful, command line utility that you can use to edit photos en masse: ImageMagick.

Let's start by making sure that we have ImageMagick installed:

# apt-get update
# apt-get install imagemagick

I'm going to start by going over two of the features of ImageMagick that I use the most frequently: resizing and cropping images. There are a lot more features available in ImageMagick, and I will probably cover more of them future posts.
  • Batch Resizing Images
    Digital SLR cameras are great for taking high quality pictures, the problem is that they typically take very large pictures that are too large for a lot of uses, such as posting on a blog or using in a presentation. Generally, the first thing I will do is open one of my pictures in the gthumb or some other image viewer that allows me to zoom in and out to find the percentage I want to shrink the images to.

    The next thing I do is I will make copies of all my images that I am going to edit so that I can retain the originals; I do this in a separate directory to minimize my own confusion:

    $ cd /[path-to-images]/
    $ mkdir thumb
    $ cp *.jpg thumb/
    $ cd thumb

    Now, we just use the mogrify command with the -resize option to resize our images. Let's say we want to resize them all to 20% of their original size:

    $ mogrify -resize 20% *.jpg

    Depending on the number of images you are resizing, this command may take a little bit to run, but it is a lot faster than editing each image by hand. If you wanted to resize your images to a specific size, say to create background images for your Mini 9, we would specify 1024x600 pixels rather than a percent:

    $ mogrify -resize 1024x600 *.jpg

    That pretty much does it for resizing pictures with ImageMagick.

  • Batch Cropping Images
    For my post on Installing Debian, I ran the installation in VirtualBox and took screen shots of the VirtualBox window to get the images I posted. The problem with this was, there was some of the window showing in the screen shots that I did not want to include in my post as you can see below:

    The good news is that this window border was identical on all of my screen shots, so I just had to figure out what I needed to crop on one image, and I could use that information in ImageMagick to crop all of the screen shots that I took.

    In order to figure out what I needed to crop, I opened one of the images in the GIMP. Using either the rectangle selection or the crop tool, I selected the region that I wanted to crop out of the image. Then looking on the tool window, I was able to see the position of the top-left corner of the selection as well as the dimensions of the selection:

    The Position section, indicated above in red, is what we will use for our offset with mogrify, and the Size section, indicated above in blue, is what we will use to define the size of the area we want to crop. We just need to use the information above with the mogrify command with the -crop option. But first, we'll copy the images to keep a record of the originals:

    $ cd /[path-to-images]/
    $ mkdir cropped-images
    $ cp *.png cropped-images/
    $ cd cropped-images
    $ mogrify -crop 639x480+1+44! *.png

    The exclamation point in the above command is there to make ImageMagick move the viewport for the image to the same as the crop offset. That may sound a little confusing, so I've included a screen shot of what a picture looks like in the GIMP if you don't use the exclamation point in the above command:

    So, you are best to use the exclamation point in the command, and when you use it, you're picture will look like this:

    That's about all there is for batch cropping images with ImageMagick

See you next time.


Installing Songbird

If you want to use Songbird as a media player in Debian, you may run into some problems since there isn't a Songbird .deb installation file compatible with Debian. You're in luck, though, because it's not too difficult to install from the tarball available from the Songbird website. We'll start in the logical place by downloading the tarball here, or you can use wget:

$ wget http://download.songbirdnest.com/installer/linux/i686/Songbird_1.1.2-1042_linux-i686.tar.gz

Now we want to untar the installation file:

# tar -xvf Songbird_1.1.2-1042_linux-i686.tar.gz -C /usr/share/

The above will create a directory Songbird inside /usr/share/. This way we can keep things clear in your home directory. In theory, we could actually run Songbird right now; however, we can do a few easy things to make it much easier to use Songbird. First thing, we're going to create a shell script, /usr/share/Songbird/launcher.sh, containing the following text:

cd /usr/share/Songbird

We can create this file with our favourite text editor or straight from the command line with cat:

# vim /usr/share/Songbird/launcher.sh


# gedit /usr/share/Songbird/launcher.sh


# cat > /usr/share/Songbird/launcher.sh << EOF
cd /usr/share/Songbird

The next thing we need to do is to change the permissions on the /usr/share/Songbird directory and all child objects so that users other than root can run Songbird:

# chmod 755 -R /usr/share/Songbird

Now the next thing we want is to be able to launch Songbird simply by typing songbird into the terminal, the run prompt, or deskbar. We can do that simply by creating a symbolic link to the shell script we just created:

# ln -s /usr/share/Songbird/launcher.sh /usr/bin/songbird

Now you can go ahead and test this out simply by typing songbird into the terminal, run prompt, or deskbar. The next thing that many people will probably ask for is to add Songbird to their menu. We just need to run alacarte to do this:

$ alacarte

Alacarte should also be accessible from the System menu (System -> Preferences -> Main Menu). You'll want to select the menu item you would like Songbird to appear under in the Menus panel to the left, and then click the New Item button on the right. In the Create Launcher window, you'll want to use the following settings:
  • Type - Application
  • Name - Songbird
  • Command - songbird
  • Comment - Whatever description you would like, or leave it blank

Click OK to create the launcher and then make sure the Show checkbox is checked for Songbird in the Items panel in the middle. Then click close and you will now be able to launch Songbird from your menu.

Enjoy listening to your music in Songbird. See you next time.


Raising Skinny Elephants

Even with as stable as Linux is, at some point, you will probably run into a situation where your system becomes unresponsive. Most of the time, restarting X by pressing Ctrl + Alt + Backspace will take care of the problem. However, if you are unfortunate enough to find yourself in a situation where your machine will not respond to this, there is still something you may be able to do: Raise the Skinny Elephant.

I know this sounds pretty silly, but it is just a mnemonic device to help you remember what to do. Before I explain that, let's check to make sure your system has the sysrq key enabled:

$ ls /proc/sys/kernel/sysrq

If your system finds this, then it is enabled. On most keyboards, the sysrq key is the same as the Print Screen key. The exception here is on some laptop keyboards, Print Screen and sysrq are mapped to different function keys. This is not the case on the Dell Mini 9, both Print Screen and sysrq keys are mapped to fn + 7. Now onto the mnemonic device:

Raising Skinny Elephants Is Utterly Boring

So, now that we know the mnemonic, what do we do with it? We can type the following key strokes to reboot an unresponsive system:

Alt + sysrq + r
Alt + sysrq + s
Alt + sysrq + e
Alt + sysrq + i
Alt + sysrq + u
Alt + sysrq + b

Between each line, we should wait a couple seconds to let the system finish what we're telling it to do. Speaking of, just what are we telling the system to do?

r - Puts the keyboard in raw mode
s - Syncs the disk
e - Terminates all processes
i - Kills all processes
u - Remounts all filesystems in read only
b - Reboots the system

When your system reboots, fsck will run to check your disk, just let it run.

I just want to restate that this is not something you should do normally, it is there as a failsafe for when everything else fails: when Ctrl + Alt + Backspace or rebooting from the command line do not work.

See you next time.

Edit: Thanks to Scowdich for pointing this out:
Typing Alt+SysReq+r,e,i,s,u,b will do the same thing, but will skip the unnecessary fsck on reboot.


Installing wicd

If you find that you don't like the default network manager in Debian, you may want to check out some of your other options for managing your network connections. I have found that I like to use wicd: it seems to do a better job at handling wireless network connections than the default network manager. Before we can do the installation, we'll want to add the following to your /etc/apt/sources.list file:

deb http://apt.wicd.net lenny extras

To do this, you'll want to either open the file in your favourite text editor or use the echo command:

# vim /etc/apt/sources.list


# gedit /etc/apt/sources.list


# echo "deb http://apt.wicd.net lenny extras" >> /etc/apt/sources.list

Next, we want to add the key for the wicd repositories:

# wget -q http://apt.wicd.net/wicd.gpg -O- | apt-key add -

Now we are ready to install wicd from our newly added repository:

# apt-get update
# apt-get install wicd

That's really all there is to installing wicd. During the installation, it will actually remove the default network manager and will set wicd to start up on boot up. See you next time.


Installing Flash and Java in Debian

By default in Debian, the Iceweasel web browser does not have very good flash support and does not contain any support for java. These are not difficult to install, so let's get started.
  • Flash installation
    We'll need to download the flash installation from Adobe. You can get the installation here, or you can download it with wget:

    $ wget http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz

    Once you've got the file, we'll need to untar it to get to the actual contents:

    $ tar -xvf install_flash_player_10_linux.tar.gz

    Now you need to change to the directory that was created from the above tar command and we can go ahead and run the installation:

    $ cd install_flash_player_10_linux
    $ ./flashplayer-installer

    The above command should recognize the directory for the default location of Debian's installation of Iceweasel. The installation will prompt you to close your web browser. You should now be able to go surfing the internet and play the flash games and flash videos that you want to.

  • Java installation
    Installing Java is a bit easier, as the required packages are in the Debian repositories. To install Java applet support in Iceweasel, we just need to run the following commands:

    # apt-get update
    # apt-get install sun-java6-plugin

    That's really all there is to installing Java support. You should now be able to run Java applets in Iceweasel.

See you next time.


Enabling Audio in Debian on the Mini 9

Something you'll probably notice if you're running Debian, and possibly the full version of Ubuntu, on your Mini 9 is that, out of the box, audio will not play out of the speakers. This is not a very difficult problem to solve, but does require creating a config file to tell the system how to load the sound module.

We will want to create a file with the following lines:

alias snd-card-0 snd-hda-intel
options snd-hda-intel index=0 model=dell

The file we want to create is /etc/modprobe.d/sound. In order to create this file, you'll want to open this file in your favourite text editor, or use the echo command:

# vim /etc/modprobe.d/sound


# gedit /etc/modprobe.d/sound


# echo "alias snd-card-0 snd-hda-intel" > /etc/modprobe.d/sound
# echo "options snd-hda-intel index=0 model=dell" >> /etc/modprobe.d/sound

Now that we've created this file, we need to reload the snd_hda_intel module:

# rmmod snd_hda_intel
# modprobe snd_hda_intel

The first command above may return a message saying that the snd_hda_intel module is in use. If you get this message, you can either reboot or force the system to unload the module with the following:

# rmmod -f snd_hda_intel
# modprobe snd_hda_intel

Now that we've got the module loaded correctly, we need to turn up the volume on the Mini 9 speakers. If you haven't removed the volume control applet from your panel, you can just double click on that to bring up the volume control window. Alternatively, you can run the following command to bring up the terminal volume control application:

$ alsamixer

GUI Interface:

Terminal Interface:

You'll want to adjust the volume on the "Speaker" control indicated in the screen shots above. After doing that, your audio should be working correctly on your Mini 9

Next time we'll install flash and java support in the Mozilla/Firefox/Iceweasel web browser


Wireless networking on the Dell Mini 9 - Broadcom wl driver

One of the first things you might notice when you boot into Debian with the Mini 9 is that the wireless card does not work out of the box. The reason for this is that the wireless card in the Mini 9 is not compatible with the b43 driver with which you may be familiar. Broadcom has released a driver specifically for the wireless card in the Mini 9. To confirm that you need the wl driver from Broadcom, open a terminal session and run the following command:

$ lspci -nn | grep 14e4

This should return something that looks like this:

03:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g [14e4:4315] (rev 01)

The important things above are the BCM4312 and the [14e4:4315]. If you see these things, then you know that you'll need to download the wl driver here. Or you can use wget from the terminal:

$ mkdir broadcom_wl && cd broadcom_wl
$ wget http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_32-v5_10_91_9.tar.gz

Before we can compile and install the driver, we're going to have to make sure we have a couple packages installed on our system:

# apt-get update
# apt-get install build-essential linux-headers-`uname -r`

Now we want to untar the file so we can get to installing it

$ tar -xvf hybrid-postsrc-x86_32-v5_10_91_9.tar.gz

You should notice two directories: lib and src as well as one file: Makefile in the directory where you untarred the download. Now we're going to do some cleanup and then compile the driver:

$ sudo make -C /lib/modules/`uname -r`/build M=`pwd` clean
$ sudo make -C /lib/modules/`uname -r`/build M=`pwd`

Now you should see a file wl.ko in the directory. Now we want to see if there are any of the following moudles loaded on your system: b43, b43legacy, or bcm43xx.

$ lsmod | grep 43

Make a note of which of the above mentioned modules you found with the above command. You'll want to unload the corresponding module with the appropriate command:

# rmmod b43
# rmmod b43legacy
# rmmod bcm43xx

You will want to double check that the module(s) got unloaded correctly with the lsmod command above. After confirming that these modules have been unloaded, we will want to copy the wl.ko file into the appropriate directory for the system to find it:

# cp wl.ko /lib/modules/`uname -r`/kernel/net/wireless/wl.ko

Now we should be able to load the wl driver, and if you need to use wpa_supplicant, we'll load the ieee80211_crypt_tkip module as well:

# depmod
# modprobe ieee80211_crypt_tkip
# modprobe wl

Now your wireless adapter should be working properly. You should confirm that the system sees the adapter now:

$ /sbin/ifconfig

You should see at least three adapters displayed:
  • eth0 - This is your ethernet adapter
  • lo - This is your loopback adapter
  • eth1 or wlan0 - This is your wireless adapter, mine shows up as eth1

Now you should be able to connect to your wireless network through network-manager, wicd, or whatever program you use to manage your network connections.

The next important step is that we want to make sure that our new wireless driver starts up on system start up. This means we get to roll up our sleeves and edit some system files. First we'll start by blacklisting the drivers that we had to unload before. You'll want to add the appropriate lines from the following into your /etc/modprobe.d/blacklist file:

blacklist b43
blacklist b43legacy
blacklist bcm43xx

You can add these lines by opening the file with your favorite text editor:

# vim /etc/modprobe.d/blacklist


# gedit /etc/modprobe.d/blacklist

If you want to be a little quicker about it, you can use the echo command:

# echo "blacklist b43" >> /etc/modprobe.d/blacklist
# echo "blacklist b43legacy" >> /etc/modprobe.d/blacklist
# echo "blacklist bcm43xx" >> /etc/modprobe.d/blacklist

This will prevent the above modules from being loaded in the future. Now we want to make sure the ieee80211_crypt_tkip and wl modules are loaded by default. We'll have to edit the /etc/modules file to add the following lines to it:


Again, you can edit this file in your favorite text editor or with the echo command:

# vim /etc/modules


# gedit /etc/modules


# echo "ieee80211_crypt_tkip" >> /etc/modules
# echo "wl" >> /etc/modules

Now that we've got the wireless adapter working and loading on system start up, the next thing you may notice is that the wireless adapter does not work after resuming from suspend. There is a pretty easy fix for this. We are going to create a file that will tell the system how to deal with the wireless adapter on suspend. It doesn't really matter what you name this file, as long as it is located in /etc/pm/config.d/ you're ok. I followed a convention that you may notice in other Linux system folders and named my file 01-modules. The file needs to contain the following text:


You can create this file with your favorite text editor or with the echo command:

# vim /etc/pm/config.d/01-modules


# gedit /etc/pm/config.d/01-modules


# echo "SUSPEND_MODULES=\"wl\"" > /etc/pm/config.d/01-modules

Now that you've got that file created, your wireless adapter should be working whenever you boot up your Mini 9 and when you resume from standby.

Next time we'll get the audio working on the Mini 9


Bonus Post: Using sudo in Debian

If you're familiar with Ubuntu or other Linux distros, you may be familiar with the sudo command. If you're not familiar with sudo, this is a command that lets you run a command as another user. Typically, on home computers, this is used to allow you to run commands as the root user, rather than having to log in as the root user. You may notice that, by default, your user is not in the sudoers file. Personally, I like sudo, so I'm going to add my user to the sudoers file.

In order to edit the sudoers file, we have to be logged in as root. Let's pull up a terminal session and run the following command:

$ su

This will prompt you for the root password and then you should notice you're at a # prompt rather than a $ prompt. If you try to edit the /etc/sudoers file right now, you'll notice that it does not allow any user write access. This is to prevent user error when editing this file by formatting things incorrectly or something. The way you should edit this file is with the visudo command. It is possible to edit this with some other commands, but it is not recommended. To open up the file for editing, we should run the following command:

# visudo

You should see a line in the file that looks like:

root ALL=(ALL) ALL

To get the same behaviour you may be used to seeing in Ubuntu or other Linux distros, you'll just want to add a line almost identical to the above line, only substituting your user name for "root":

grabag-linux ALL=(ALL) ALL

To save the changes, hit Ctrl + x, this will prompt you with a question asking to save the changes. Answer "y" to save the changes, and this will prompt you for the location of the file to save. By default, it should populate the file name /etc/sudoers.tmp, just delete the .tmp off the end of the file name to save it to the correct location. This will prompt you saying that the file already exists and asks if you want to overwrite the file; answer "y" to save and quit visudo. Now you can exit your root session and test out your new sudo authority:

# exit
$ sudo apt-get update

That does it for this bonus post. I'll be back tomorrow with the regularly scheduled post on configuring the wireless adapter on the Mini 9.


Installing Debian Linux

If you've been keeping score at home, you should know that we're now ready to install Debian on the Mini 9. Before you install Linux on a computer, you'll need to make sure your BIOS is set to allow you to boot from your installation media. I'll be installing from the bootable flash drive I made in an earlier post.

In order to get into the BIOS on a mini 9, you need to reboot and press "2" to get in there. You'll need to enable boot from "USB Storage" and set this to boot with higher priority than the internal Hard Drive. If you're following this to install Debian on a different computer with a cd installation, the process should be similar, and you just want to make the CD-ROM drive boot with the highest priority. Be sure to save your changes when you exit the BIOS conifiguration.

Now we're ready to do the installation. You'll want to put the installation flash drive in a free USB port or the installation CD in your CD-ROM drive and reboot your computer. The system should boot up into the installation. If you're installing from a USB flash drive using the method I described before, it should boot automatically into the text based installation. If you're installing from the CD, it should give you an option for a text based or graphical installation; the biggest difference is the graphical installation lets you use the mouse and looks a little nicer.

Before we get started talking about the actual installation, I have a few things to mention:
  • I highly recommend having a wired internet connection during the installation for two reasons:
    • This will automatically configure networking on your computer
    • You will be able to download package updates from a mirror during the installation
  • Don't worry about making mistakes during the installation:
    • You will (or at least should) learn from them
    • You can always re-install over a bad install
The Debian installation is not too complicated, so I will skip over the stuff that is easy and go into more detail in the areas where there are real decisions to be made and/or I have reasons for wanting to do things in a particular way.
  • Choose Language
    Not a whole lot to explain here, you should know what language you want.

  • Select Keyboard Layout
    Again, not too deep here, should closely match your language.

  • Configure the network
    • Hostname: give your computer a name
    • Domain name: if you don't know what you put here, you can probably leave it blank

  • Configure the Clock
    You should know your time zone.

  • Partition Disks
    Partitioning your hard drive is probably the place where people get the most scared or are the most unsure. I suppose I'll start with a quick explanation of what a partition is. An analogy for thinking about a hard disk with partitions would be to think about a field with a fence dividing it into different parts. Stuff that is in one area is cut off from another area by the fence, and if you wanted to make one area bigger, you'd have to move the fence. For more on partitions, check out this wikipedia entry.

    Partitioning your hard drive is really not that scary. When you get to place on partitioning your hard drive, I highly recommend manually partitioning your hard drive. Doing so will give you more knowledge of your system and will be better for preserving your data should something go wrong. Speaking of preserving data, I make all my partitions primary partitions, as opposed to logical partitions. It has been my experience that if you need to boot into a livecd environment to recover data, this is much easier if you're not using logical volumes.

    All Linux really needs to operate is a root partition (mount point: / ). Some will say that Linux also needs a swap partition, but if you've got enough RAM this is not necessary, and many people suggest not putting a swap partition on an SSD. Speaking of SSDs, people recommend using the ext2 file system to prevent extra write cycles from the journaling features with the ext3 file system. Also, you should set up your partitions on an SSD with the mount option "noatime." This mount option means that the system will not update the last access time for a file; in short, this means fewer write cycles.

    They say the partition containing the /boot directory should be located as close to the front of the drive as possible. I take this a step further by creating a partition specifically for /boot. I set this partition up to be 100 MB with an ext2 file system. Not surprisingly, this partition needs to have the "boot flag" turned on.

    The next partition I create is the root partition, and I probably make it bigger than it actually needs to be at 10 GB, but I figure that way I won't run out of space for installing programs. Since this is on an SSD, I set it up as ext2 with the "noatime" mount option.

    If I were going to create a swap partition, I would do it next. If you're going to create a swap partition, it doesn't make sense to make your swap partition smaller than the amount of RAM you have on your system. Unless, of course, you don't plan on using the hibernate function (i.e. suspend to disk); in which case you can make your swap partition whatever size you wish. I am not making a swap partition here because this is on an SSD.

    Now I make my final partition: /home. I make this partition take up any remaining space on the drive. Putting /home in its own partition is good for cases where you need to re-install your system, but don't want to lose your personal data. If you mess up your system beyond repair or choose to upgrade by doing a fresh installation, it is possible to leave your /home partition intact. Like my / partition, I'm keeping this one ext2 and using the "noatime" mount option because it is on an SSD.

    Note, the available disk space above does not match what I have said that I used above and the USB flash drive does not show as an available disk. This is because I took the screen shots while running the installation in VirtualBox on another computer. The numbers I mention above do match what is currently setup on my Dell Mini 9.
    If you don't create a swap partition, the installer will give you a warning, you can simply select "No" to move on past this.
    Selecting "Yes" on the above screen will write your changes to the partition table and format the hard disk. Once you do this, you'll find it's not quite as exciting as you had hoped.

  • Installing the Base System
    Absolutely no user intervention in this step

  • Set up Users and Passwords
    • Root Password: If you're familiar with Ubuntu, this will be a new step. Ubuntu tries to hide the root user from you, in what is, I suspect, a measure to make it slightly more difficult to damage your system. Note: Just because you can log in as the root does not mean you should. In fact, I recommend logging in as root only when necessary
    • New User setup: Here you can set up the user that you will be primarily logging in as. Just enter your name, pick a user name, and password.

  • Configure the Package Manager
    I would recommend using a network mirror. This will automatically download package updates during the installation. This will take longer than not doing so, but you'll have up to date software packages when the installation is finished. Just pick your country and then select a mirror. When it asks about an HTTP proxy, chances are you can leave this blank if you don't know what you need to do here.

  • Software Selection
    For the Mini9, you pretty much only want the Desktop Environment, Laptop, and Standard System features. If you're installing on some other machine, you probably have an idea what you want to use it for, and chances are if you don't know what something is on the list, you don't need it. Plus, you can always install this stuff later anyway if you find you need/want something here and you didn't mark it for installation.

  • Installing Software
    To steal a mantra from Charlie Papazian: Relax, Don't Worry, Have a Homebrew. (Or a commercial brew is fine)

  • Install GRUB Boot Loader on a Hard Disk
    If this installation of Linux is going to be the only operating system on your machine, there's no reason that I can think of not to install GRUB to your master boot record
  • Finish the Installation
    Congratulations, you've finished the installation of Debian Linux. Simply select continue, and be sure to remove your installation media before rebooting your computer to enjoy your new Linux installation

Well, that does it for this post. Next time, we'll start configuring Debian to work correctly on the Dell Mini 9.


Dell Inspiron Mini SSD Upgrade

Before I bought the Mini 9, I tried to find out as much information as I could about the SSD that came with it. Most of the blogs I found said that the default SSD that Dell puts in these things is not very fast. When I called Dell to ask about the speed of the SSD, the guy I talked with told me the SSDs were, and I'm not making this up, "5400 RPM."

That pretty much settled it for me, I went with the minimum 8 GB SSD from Dell and started looking to buy an SSD online for the Mini 9. The Mini 9's use mini PCIe with a PATA interface for their SSDs, which means not that many companies make them. Most of the SSDs I found had 40/15 MB/s read/write speeds, but I found from mydigitaldiscount.com that RunCore makes SSDs for the Mini 9 that have 78/44 MB/s read/write speeds.

The RunCore drives are a little more expensive, but, in my opinion, worth it for the speed. Few people realize how much of a bottleneck your hard drive can be for tasks like launching programs or booting up. Also, it appears that mydigitaldiscount.com has trouble meeting demand with these RunCore SSDs, so be prepared to wait a bit for what I think is the best SSD on the market for the Mini 9.

Be careful when shopping for SSDs for a Mini 9. Don't get one that says it's designed for an ASUS netbook, I've read that these are too large to fit inside the Mini 9.
Things you'll need to upgrade your SSD in your Mini 9:
  • Mini 9
  • Mini PCIe SSD with PATA interface
  • Phillips head screw driver
  • External CD/DVD drive with an installation disc for your favourite operating system or an operating system installation loaded onto a bootable flash drive
Before you get started, like before, you'll want to ground yourself so you don't ruin anything with a static discharge. Let's get started.
  1. Remove the back plate on your Mini 9. Refer to my Dell Inspiron Mini 9 RAM Upgrade post for instructions on removing the back plate.

  2. Remove the screws holding the SSD into place, it should spring up and sit at an angle.

  3. Carefully remove the SSD and set aside.
    Notice on the RunCore SSD (on the left) the silver connector at the top, just right of center. That is a USB port; the RunCore drives can also be hooked up to a computer via USB. If only the drive Dell shipped with the Mini 9 had this feature.

  4. Insert your new SSD in place of the old one. Carefully, but firmly, push the drive into place.

  5. The drive will, again, sit at an angle. Replace the screws to hold the drive down

  6. Replace the back plate on your Mini 9.
Congratulations, you've successfully replaced your SSD on your mini 9! As far as doing something with your old SSD, I haven't come up with a use yet. Apparently, there is a Japanese company that makes external enclosures to turn these mini PCIe SSDs into external USB drives. My Japanese isn't the best, but I think they are kind of expensive. If anyone finds an affordable way to turn my spare SSD into an external hard drive, please let me know!

Next time, we'll tackle the operating system installation using a bootable flash drive.