Preupgrade – the root for the previously installed system was not found

Today, I've been digging through forums, log files and python scripts for about 16 hours (!!!) to update my system from Fedora 16 to Fedora 17. Apart from the fact that preupgrade for some reason downloaded all files from US mirrors (I'm in .nl), one of the biggest problems I had was the clear message "The root for the previously installed system was not found".

Why the fsck could it not find my installation? Was it the Luks full disk encryption? Or possibly the LVM volume manager? It couldn't be the btrfs filesystem, could it?

I tried everything possible, and when I was about to give up, I read this message that preupgrade has a problem with btrfs snapshots. Do I have these snapshots?

cryptsetup luksOpen /dev/sda2 disk
lvchange -ay vg_hdd/lv_root
mount /dev/mapper/vg_hdd-lv_root /mnt
btrfs subvolume list /mnt

There was the answer. I did. Two snapshots created by yum.

btrfs subvolume delete /mnt/yum-2012....1
btrfs subvolume delete /mnt/yum-2012....2
umount /mnt
lvchange -an vg_hdd/lv_root
cryptsetup luksClose disk

Damn, this has been a great day. Thanks to those crappy error messages. Time to go to bed.

© GeekLabInfo Preupgrade - the root for the previously installed system was not found is a post from GeekLab.info. You are free to copy materials from GeekLab.info, but you are required to link back to http://www.geeklab.info

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Hide the mouse cursor with X

I recently got myself a touch screen, that I mounted near the entrance to welcome visitors. The device was really hard to install, as the drivers for 4 different Linux distros were broken, and only binary drivers are released. The fifth distro finally worked.

One thing that does annoy me however, is that X always shows the cursor. To hide the cursor on a touch screen, you can use the program unclutter:

yum install unclutter
unclutter -idle 0

Unclutter with such a short delay (0 seconds) also makes it impossible to select texts, but for this application, that's just perfect.

© GeekLabInfo Hide the mouse cursor with X is a post from GeekLab.info. You are free to copy materials from GeekLab.info, but you are required to link back to http://www.geeklab.info

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Backup your phone with zero keypresses

I created some scripts to backup my Samsung Galaxy S2 to my Fedora 16 system without pressing any keys or even touching the mouse. It works like this:

To backup a SGS2, you go to settings > applications > usb tools on the phone, and click the button. You then connect it to a usb cable. At that moment, two removable devices become visible to the Linux system: one for the SD card, one for the built-in memory. But they still contain no media. Only when you press another button on the phone, the "media are inserted in the devices", triggering a "change" action with the udev daemon.

Configuration of the udev daemon

Create a file /etc/udev/rules.d/71-android-backup.rules:

SUBSYSTEM=="block", ACTION=="change", ENV{ID_SERIAL}=="Android_UMS_Composite_XXXXXXXXXXXXXXXX-0:0", ENV{DISK_MEDIA_CHANGE}=="1", ENV{ID_FS_TYPE}=="vfat", RUN+="/usr/local/bin/androidbackup"

Whenever a (virtual) medium is inserted, a udev change action is triggered. Actually, it gets triggered multiple times, but we only need the one that has the environment variable DISK_MEDIA_CHANGE=1 set.

Action to perform

The action triggered is /usr/local/bin/androidbackup and all parameters are in the environment. So let's create that file. I use a rsnapshot-like operation to backup my data, but without actually using rsnapshot.

#!/bin/bash
 
function msg {
        /usr/bin/logger -t android "$1"
        DISPLAY=:0 qdbus $dbusRef setLabelText "$1"
        DISPLAY=:0 qdbus $dbusRef Set "" value $2
}
 
if [ "$1" != "FORKED" ]; then
        $0 FORKED &
        exit 0
fi
 
if [ -f /etc/sysconfig/androidbackup ]; then
        . /etc/sysconfig/androidbackup
else
        echo /etc/sysconfig/androidbackup does not exist
        exit 0
fi
 
#debug disabled:
#set > /tmp/android/`date +%s`.$RANDOM
 
dbusRef=`kdialog --display :0 --progressbar "Backup android..." 100`
 
msg "Attach $DEVNAME $ACTION $ID_SERIAL" 0
 
if [ ! -e $DESTINATION ]; then
        # I could mkdir -p, but sometimes $DESTINATION could just be a network location that's offline
        msg "Android will not be backed up: $DESTINATION is not okay" 0
        exit 0
fi
 
mkdir -p /mnt/android
 
mount $DEVNAME /mnt/android 
rc=$?
if [ $rc -ne 0 ]; then
        msg "Problem mounting $DEVNAME to /mnt/android: $rc " 0
        mount | grep android 2>&1 | logger -t androidbackup
        exit 0
fi
 
if [ "`mount |grep -i /mnt/android`" == "" ]; then
        msg "Cannot find /mnt/android in mount table" 0
        exit 0
fi
 
msg "Remove old backup" 8
[ -e $DESTINATION/backup.30 ] && rm -rf $DESTINATION/backup.30
 
msg "Start backup" 10
for i in `/usr/bin/seq 30 -1 2`; do 
        if [ -e $DESTINATION/backup.$((i-1)) ]; then
                msg "mv $DESTINATION/backup.$((i-1)) $DESTINATION/backup.$i" 11
                mv $DESTINATION/backup.$((i-1)) $DESTINATION/backup.$i
        fi
done
 
msg "Copy" 40
[ -e $DESTINATION/backup.0 ] && /bin/cp -al $DESTINATION/backup.0 $DESTINATION/backup.1
mkdir -p $DESTINATION/backup.0/
 
msg "Start rsync" 40
/usr/bin/rsync -az --numeric-ids --delete --hard-links /mnt/android/ $DESTINATION/backup.0/
touch $DESTINATION/backup.0/
 
chown -R $CHOWN $DESTINATION/backup.0
 
umount /mnt/android
 
msg "Done" 100
exit 0

Since that file refers to /etc/sysconfig/androidbackup, let's also make that file:

#next line defines the location of all backups
DESTINATION=/home/geeklab/.androidbackup
 
#next line defines the owner of all files copied
CHOWN=geeklab
© GeekLabInfo Backup your phone with zero keypresses is a post from GeekLab.info. You are free to copy materials from GeekLab.info, but you are required to link back to http://www.geeklab.info

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Setting up a PPTP VPN to a Windows 2008 Server

Requirements

Linux
KDE
A Windows server to connect to.

Step 1: Install required software

yum install kde-plasma-networkmanagement-pptp NetworkManager-pptp

Step 2: Configure the network

In the KDE Network Manager plasma module, go to the tab VPN, click add and choose PPTP.

Enter and connection name you like. In the field "gateway" type the hostname or IP number of the Windows server you're connecting to. Under Login, Password and NT Domain, fill in your authentication data. Then click advanced.

In the advanced window, disable EAP and enable MPPE. Then click OK.

Go to the tab IPv4. Under method, I chose Automatic (VPN). But Automatic (VPN) addresses only is also a nice option: it sets the IPs but no DNS settings.

Go to the routes sub-tab. Switch on Ignore automatically obtained routes and Use only for resources on this connection to make sure the connection doesn't steal your traffic. Then I entered a manual route: 192.168.178.0/255.255.255.0 to gateway 0.0.0.0 (it is a ppp device after all).

You may want to configure IPv6 as well, but I don't at this moment, so I'm not documenting this.

Step 3: Connect

Click on the icon in the tray and connect.

Ubuntu/Debian

I'm running RedHat-based software on all of my machines. Above information may be useful for Ubuntu/Debian users, but it's not tested and I'm not supporting it.

Servers: RedHat Enterprise Linux/CentOS is more suitable for servers, as there's a lot of professional level support available. I think that's important, because if I say, get a car accident, I want the servers to be managable by another professional.

Desktops/Laptops: RPM packages are pretty exchangable between RedHat-based platforms. That's a good reason to run Fedora on the desktop.
© GeekLabInfo Setting up a PPTP VPN to a Windows 2008 Server is a post from GeekLab.info. You are free to copy materials from GeekLab.info, but you are required to link back to http://www.geeklab.info

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

Konsole is hiding underscores

Today I upgraded my Fedora 15 installation to Fedora 16 with KDE 4.7.4. Although it was a pretty smooth transition this time, there were a few problems. One of them was that Konsole 4.7.4-2.fc16 was hiding underscores, which is pretty annoying when you're programming.

How the hell are you supposed to code when half of the characters is invisible?

I'm more than happy to report that I fixed it. On the profile's page "advanced" you find the option "Enable Bi-Directional text rendering". Enabling this option fixed the problem immediately.

Google'ing, I found a few pages that say this is specific to a combination of intel or nouveau driver + specific fonts + Qt 4.8.

Update: RedHat acknowledged the issue and released a fix: konsole 4.7.4-2.fc16. Update using yum update konsole

© GeekLabInfo Konsole is hiding underscores is a post from GeekLab.info. You are free to copy materials from GeekLab.info, but you are required to link back to http://www.geeklab.info

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 4.00 out of 5)
Loading...