Archive for December, 2007

tigger reborn

Saturday, December 15th, 2007

We lost power last Monday (Dec 10) and got power back Thursday (Dec 13). I didn’t shutdown the Xen server does properly and the web server was corrupted. I built a new web server vm and connected the old data drives. Breaking tradition, I named the new server www1 so I could more easily tell the difference between it and tigger (the corrupt web server).

www1 vm

Saturday, December 15th, 2007

unpacked my model…

# cd /xen
# mkdir www1
# cd www1/
# tar xjvf ../debian-4.0-20070801.tar.bz2
debian-4.0.img
debian-4.0.xen3.cfg
debian.swap

I created LVMs and formatted them. This will be the new partition layout.

lvcreate -L1G -n www1-usr VolGroup00 && \
lvcreate -L512M -n www1-tmp VolGroup00 && \
lvcreate -L2G -n www1-var VolGroup00
mkfs -t ext3 /dev/VolGroup00/www1-usr
mkfs -t ext3 /dev/VolGroup00/www1-tmp
mkfs -t ext3 /dev/VolGroup00/www1-var
dd if=/dev/urandom bs=1 count=3 2>/dev/null | od -tx1 | head -1 | cut -d' ' -f2- | tr -d ' ' | tr '[a-f]' '[A-F]'
kernel = "/boot/vmlinuz-2.6-xenU"
memory = 512
name = "www1"
vif = [ 'bridge=xenbr0,mac=00:16:3e:A1:00:5C' ]
dhcp = "dhcp"
disk = ['file:/xen/www1/debian-4.0.img,sda1,w'
, 'file:/xen/www1/debian.swap,sda2,w'
, 'phy:VolGroup00/www1-usr,sda3,w'
, 'phy:VolGroup00/tigger-home,sda4,w'
, 'phy:VolGroup00/www1-tmp,sda5,w'
, 'phy:VolGroup00/www1-var,sda6,w'
, 'phy:VolGroup00/tigger-var-www,sda7,w'
, 'phy:VolGroup00/tigger-swap,sda8,w'
]
root = "/dev/sda1 ro"
ramdisk = "/boot/initrd-2.6-xenU.img"
ln -s /xen/tigger/tigger.cfg /etc/xen/auto/
./flip sda3 usr
./flip sda6 var
mount /dev/sda5 /tmp

on owl:

mkdir /mnt/xen
mount -o loop /xen/tigger/debian-4.0.img /mnt/xen
mount /dev/VolGroup00/tigger-var /mnt/xen/var
export IP='192.168.0.1'

cp /etc/mtab ~/etc/ && \
cp /etc/init.d/makedev ~/etc/init.d/ && \
rsync -e ssh -avz root@$IP:/mnt/xen/etc/* /etc/ && \
cp -R ~/etc/* /etc/
rsync -e ssh -avz $IP:/mnt/xen/var/lib/mysql /var/lib/
rsync -e ssh -avz $IP:/mnt/xen/lib/mysql /var/lib/

owl:

scp dpkg-verify  tigger.revantine.com:~/
scp .ssh/authorized_keys tigger.revantine.com:~/.ssh/
scp selections.dpkg tigger.revantine.com:~/

back to www1

apt-get update && \
dpkg --set-selections  < ~/selections.dpkg && \
apt-get dselect-upgrade

apt-get install libc6-xen
echo "hwcap 0 nosegneg" > /etc/ld.so.conf.d/nosegneg.conf
ldconfig -v -p 2>&1 | grep libc.so
ldconfig

/tmp loses its permissions

chmod 1777 /tmp
Starting apache-ssl 1.3 web server...PHP Warning:  Unknown(): Unable to load dynamic library '/usr/lib/php4/20050606+lfs/php_ming.so' - /usr/lib/php4/20050606+lfs/php_ming.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  Unknown(): Unable to load dynamic library '/usr/lib/php4/20050606+lfs/ming.so' - /usr/lib/php4/20050606+lfs/ming.so: cannot open shared object file: No such file or directory in Unknown on line 0
.
apt-get remove exim libming
apt-get install libming0 php4-ming

RoundCube webmail doesn’t work. Oh well, it is a good time to upgrade from beta to 0.01-rc2 I guess.
(Success)

I forwarded the old webmail address to the new webmail address.
This is a great site for different 301 redirects http://www.stevenhargrove.com/redirect-web-pages/

Finding broken Debian packages

Friday, December 14th, 2007

I found this script at http://www.mailarchives.org/list/debian-user/msg/2002/06558
cat ~/dpkg-verify

#!/bin/sh
# Quick script for verifying the integrity of package files on a Debian
# system.
# Cameron Kerr
# 6 February 2002
#
# NOTE: This is in no way an official Debian provided/supported program,
#       its just something I hacked up from need.
# $Id: dpkg-verify,v 0.0 2002/02/06 02:17:51 cameron Exp cameron $
# $Log: dpkg-verify,v $
# Revision 0.0  2002/02/06 02:17:51  cameron
# Initial Revision
#

/bin/ls /var/lib/dpkg/info/*.md5sums | \
        sed -e 's:^.*/\(..*\).md5sums$:\1:' | \
        while read package;
        do
                cd /
                md5sum -c /var/lib/dpkg/info/$package.md5sums 2>&1 | \
                        sed 's/\(.*\)/'"$package"':\1/'
        done

Use the first command to a file because it is slow. Then you can

awk -F: '/FAILED|FAILED open or read$/{print $0}' filename.verify

You can change the $0 to $1 for the package or $2 for the filename to generate a list.

You can:

awk -F: '/FAILED|FAILED open or read$/{print $2}' verify >badfiles

copy badfiles to an identical server

cd /
tar -czv --ignore-failed-read --files-from ~/badfiles -f ~/bundled.tar.gz

copy the tar back to the broken server

cd /
tar xzvf ~/bundled.tar.gz

I output the list to a file. I had to remove xbitmaps because it caused an error.

apt-get --reinstall install `cat broken.apt`