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).
Archive for December, 2007
tigger reborn
Saturday, December 15th, 2007www1 vm
Saturday, December 15th, 2007unpacked 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, 2007I 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`