Linux tips and tricks
This page contains a few tips and tricks for Linux.
I spent some time on solving a few specific problems,
and I decided to put the solutions online,
in hope they may be useful for somebody else, too.
Copy a hard drive partition with bad sectors
If you have a large external disk then it is a great idea
to make a backup copy of the entire partition(s) from the hard drive
in your laptop computer. However, in the case of a partition
with bad sectors, and all my attempts to copy it using standard Linux tools
ended up with an error message and a cancellation of the copying process.
Therefore, I wrote a simple program myself that would skip the bad sectors
and replace their contents with some dummy data indicating the problem.
You are welcome to download the source code of the program,
compile it (note that you may need to install the GNU C++ compiler package
in some Linux distributions in which it is not available by default).
Step-by-step instructions are below:
- Download copydisk.cpp
- Install the GNU C++ compiler if necessary, e.g., in a Debian-derived
distro type something like this:
sudo apt-get install g++
g++ -o copydisk copydisk.cpp
- Copy the partition ("sda1" in this example):
./copydisk /dev/sda1 imagefile.bin logfile.txt
- At a later time you can mount the image,
for example, in order to retrieve copies of individual files
(replace "ntfs" with the appropriate file system type):
mkdir /mnt/diskimg; mount -o loop,ro -t ntfs imagefile.bin
Fix a USB stick Ubuntu installation
After having installed Ubuntu 12.04 LTS on a USB memory stick
using the recommended
Universal USB Installer program,
it turns out that there are two dead links in the root directory
of the installation: "/vmlinuz" and "/initrd.img".
The first one causes problems when installing some packages,
but is fortunately very easy to fix:
sudo rm /vmlinuz
sudo ln -s /cdrom/casper/vmlinuz /vmlinuz
The other one is apparently more difficult to fix,
because there seems to be no file with the requested name
in any directory near-by. However, there is a file
with a similar name, but the extension ".lz" instead of ".img".
If this is a good replacement (which I guess might be the case)
then a suggested correction is as follows:
sudo rm /initrd.img
sudo ln -s /cdrom/casper/initrd.lz /initrd.lz
Note: The same applies to Ubuntu 10.10, 11.04,
and probably some other versions, too.
However, Ubuntu 13.04 has a different layout of some files,
so this correction doesn't work for that version.
Use x11vnc in Knoppix 6.7.0
In the DVD distribution of Knoppix 6.7.0, a menu item for running
x11vnc is missing. Unfortunately, just typing the command "x11vnc"
in a text terminal window doesn't help much,
because a bunch of command-line arguments are necessary
in order to run this program in a useful way.
So here is the command line from the menu item which I found
in Knoppix 6.2.1 (I think that you don't need to copy
the last argument "-o..." if running from a text terminal window):
x11vnc -gui tray=setpass -rfbport
PROMPT -bg -o %%HOME/.x11vnc.log.%%VNCDISPLAY