Category Archives: Linux

Creating a Bootable USB Flash Drive

It’s always handy to have a bootable USB flash drive. Whether you would install a Linux distribution, or just run a memory test. Now days, less and less computers are delivered with floppy drives, and some don’t even have a CD drive. Like the IBM ThinkPad X-series. Of course you could buy an external one, but that’s not the point.

This is meant to help people who already know Linux, so don’t expect a world of information.

1. Prerequisite
You’ll need a USB flash drive and computer running Linux. The machine also needs Grub and support for FAT file system.

2. The Quick and Dirty Guide
First you must find out what block device your drive is identified by. This can be done by using “dmesg” right after you have plugged in the device.

dmesg | tail

Mine came up as sdb, so let’s go ahead and format it using the FAT file system.

mkfs.vfat /dev/sdb1

Then install Grub (the bootloader)

grub-install /dev/sdb

Pay attention to the output. It will tell you how Grub identifies /dev/sdb, we’ll need it later. In my case it’s hd1. If you get an error message about some BIOS stuff. Try this instead.

grub-install --recheck /deb/sdb

Now we can mount it and copy over the necessary files.

mount /dev/sdb1 /media/usb
mkdir -p /media/usb/boot/
cp -r /boot/grub/ /media/usb/boot/

We’re almost there.

grub
grub>root (hd1,0)
grub>setup (hd1)
quit

It’s bootable. Now you can throw in whatever image you please, like memtest86.

cp memtest86+.bin /media/usb/boot/

Memtest can be downloaded from Internet, or if you have Ubuntu it will already be in your /boot catalog. To make a boot menu, edit /media/usb/boot/grub/menu.1st to look like this.

default 0
timeout 10

title Memtest86
root (hd0,0)
kernel /boot/memtest86+.bin

I have also thrown in the Ubuntu network installation files.

cp linux initrd.gz /media/usb/boot

So now my menu looks like this.

default 0
timeout 10
color cyan/blue white/blue

title Memtest86
root (hd0,0)
kernel /boot/memtest86+.bin

title Ubuntu x86 Installation
root (hd0,0)
kernel /boot/linux root=/dev/ram
initrd /boot/initrd.gz

Please leave a comment if you found this useful.

Getting Widescreen Resolution on Ubuntu

This trick applies to laptops with Intel 915 or 945 graphics card.

A few days ago I installed Ubuntu on my work laptop, a Acer TravelMate 4230. The installation was painless, as one would expect with a Linux distribution “for human beings”. However I couldn’t seem to get the native resolution in Xorg (the graphical engine) right, even though the setup found it and stored it in the configuration file.

I ran both hwinfo –monitor and hwinfo –framebuffer. The first gave me 1280 by 800 as native resolution. The latter however, only gave me 4:3 resolutions. To correct this limitation I installed a package called “915resolution”.

apt-get install 915resolution

This package patches the framebuffer, so a reboot is necessary for this to take effect.

Please leave a comment if you found this useful.

Subversion – ‘502 Bad Gateway’ Workaround

Parts of this article has previously been posted in my old blog. It’s being reposted because of its usefulness.

A little over a year ago, I had a problem trying both copying and renaming files in Subversion, giving me the ‘502 Bad Gateway’ message. Trying to Google the problem didn’t help me much, and I don’t think it does to this date either.

The error message was:
svn: Commit failed (details follow):
svn: COPY of testfile.py: 502 Bad Gateway (https://hostname)

My solution to the problem was adding the following lines into my vhost-file, between the <VirtualHost *:443> and the closing </VirtualHost>. (I’ve placed them near the top.)

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA;+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key

You must of course change the SSLCertificateFile and SSLCertificateKeyFile variables to reflect your own setup. You must also restart Apache.

I can’t guarantee that this workaround actually will work. But I’ve had good experience with it in two cases. In both cases I’ve run Subversion through Apache 2 web server, using the mod_dav_svn module, on a Linux platform. Also, since I have more than one domain name, the web server was set up with virtual hosts, ssl, proxy and rewrite modules.

According to my original post about this problem, I wrote the following:
I stole this solution from Karl Trygve Kalleberg, who fixed it once, and then later forgot how.
Which, if my mind serves me correct, means that I found it when looking through his old configuration files.