Monthly Archive for October, 2005

Oct 1st 2005

painting & party

Jen and I spent the first part of the day today painting. She bought some paint last weekend to use in the dining room. Today it was time to paint the dining room. I helped out a little but I think it was more than last time.

We had a pretty good time together painting. She did pretty much everything except for moving the ladder and the rolling. She got really good at painting around the trim by the time we were finished.

At first I wasn’t sure what to expect with the color. The color is ‘Fossil Butte’ from Behr. It turned out to be a fantastic fit for the room. Jen and I were both very happy with how the color looks on the wall with the furniture and other things.

Painting took most of the day. During the time that I wasn’t helping Jen, I was sitting at the dining-room table using my laptop and keeping her company. I also logged into work to take care of some things that I wasn’t able to finish on Friday. This took a lot longer than I thought it would but I was happy to get a little caught up.

I also made us some lunch which consisted of a turkey sandwich for Jen and a peanut butter and jelly sandwich for myself.

Once the painting was done, we took a shower and got cleaned up and dressed for the party tonight. Before we left the house we also sat down together at the computer and came up with a pretty comprehensive 80’s music playlist to take on Jen’s iPod to the party.

Katie is having a birthday party at her place and it has an ‘80’s‘ theme, so naturally we have to dress up for it. Jen went to a thrift store yesterday and bought me an outfit to wear.

We got dressed and fixed-up to look like a couple from the 80’s and headed out. I was pretty hungry so we stopped at Willy’s on the way in Vinings to have a quick bite to eat.

2005-10-01-192435-4061_edited
(This was my outfit for the 80’s party)

When Jen and I arrived at Katie’s house around 7:45pm, Tom and Terry were already there. Tom looked great. He was wearing a Poison concert t-shirt, a head-band, and ripped jeans. Chris was waring a Miami Vice getup which looked great. I think that Katie looked the best though. She looked like one of the ladies straight out of ‘The Running Man‘ which was an excellent movie by the way. She had a pink 80’s looking dress, teased hair, and long black dangling earrings.

2005-10-01-192422-4060_edited
(Katie and Chris looking totally 80’s)

Katie had her brand new Canon Powershot camera and took some pictures. I took some pictures with my camera as well. Katie’s camera came with the default 16MB Secure Digital card which only held about ten shots. I used my laptop (which I brought along in my backpack in case I got paged for work) to download the pictures for her so she could take more.

2005-10-01-194639-4066_edited
(Lynne sporting slap bracelets)

2005-10-01-192504-4063_edited
(Jen and I)

The party was pretty fun. Jen and I brought along some 80’s music on her iPod and hooked it up to the stereo. The music was great. A lot of people showed up, including Jen’s parents.

2005-10-01-210135-4072_edited
(A lot of people were at this party)

Jen and I drank mostly sparkling water, but we did eventually turn to some red wine. Dan was drinking some so we had some with him. I spent a little time talking with Scott and Dan outside where it was cooler.

2005-10-01-214731-4080_edited
(Katie blowing out the candles on her birthday cake)

Brad showed up sporting a new haircut (which looks much better than before) as well as a girlfriend? None of us could figure out who she was, I don’t think anyone asked Brad.

It got pretty late but I wasn’t tired at all - that surprised me. Usually I’m tired by midnight unless I’m using the computer (somehow I don’t get tired when doing that).

Jen and I left the party around 1am and went home. Jen was tired and went to bed right away. I was still strangely awake and stayed up for a while.

Oct 2nd 2005

shop till you drop

Jen and I wanted to do something outside today. While I was talking with Brad at the party last night, I wanted to go play Frisbee Golf with Brad today. He and Scott were going to go play today and Jen and I passed.

We loaded up the car with some stuff to take to Jen’s parents house for their garage sale. We loaded the old water cooler, old entertainment center stand, two CD towers, and the old rowing machine.

When we got to her parents house, we unloaded the car and collected Chloe to take for a walk in the woods. It wasn’t a long walk but it did go next to Lake Altoona which is pretty fun. Chloe seemed to have a fun time too.

On our way back from the walk, we stopped at the neighborhood park and Jen showed me how to play tether ball. I’ve never played it before and it was fun.

Afterwards we dropped Chloe off and drove to Town Center Mall. We made a mad dash to ‘Express‘ so that Jen could buy some pants. While Jen was shopping I scoped out the Bombay Company but was mostly uninspired. I wasn’t in a mood to go shopping today.

Next we went to Costco and I bought some fancy-pants polarized Bole sunglasses. We also bought some groceries and headed out. On our way home we stopped at Home Depot and bought a gallon of paint (the color was ‘Quiet Veranda’) and air filters.

After we got home, Jen we watched ‘Raising Helen‘ - a girly movie that Jen liked a lot.

Oct 3rd 2005

packages

Larry sent out some packages that arrived today. It was pretty exciting to get home and see that they had arrived.

The largest box contained a very nice dark wood CD cabinet. It was super dusty and needed to be thoroughly cleaned but it will look great downstairs in the study.

The other box contained a bunch of framed prints, a collection of the great ‘Digital Photography Magazine’, my old radio-controlled car, a rug, and a few other things.

It was very nice of Larry to send out this stuff. Another package arrived - this one from Amazon. Jen and I had ordered some books and they arrived today.

I ended staying up until very late tonight working on some problem with the linux server. It’s been a month since I took these notes so I can’t remember what exactly the problem was, but it took me until the late hours of the night to get it fixed.

Oct 6th 2005

wine pairing dinner

Jen and I had made plans with Katie, Chris, Lynne, Tom, and Terri to meet at the Stonebridge restaurant tonight for a wine pairing dinner. I left work early (actually it was late but I’ve been working much later these past few months that it was early relative to how late I’ve normally been working).

We met up at the restaurant at 6:30pm. Jen and I were actually the first ones there. Others shuffled in a little later and our friends showed up too.

The wine pairing dinner was pretty good. We had a filling potato appetizer thing, lamb, a couple of other things, and pears with blue cheese on top for desert.

It was a nice evening - late, but nice.

Oct 7th 2005

work-from-home dynamic

I paged Carole yesterday and asked if I could work from home today. Considering that I didn’t have any meeting today it seemed like a good idea. She let me work from home today.

It was actually a very productive day and I got a lot done.

Jen was home today too since she has off from work on Fridays. It was a bit different because usually when I work from home it is just me and there aren’t any distractions.

Not to say that Jen is a distraction, on the contrary - it was fun working from home with her there. In fact, I prefer it to working from home alone. She was great about letting me get things done and not acting like it was a free day for me.

Oct 14th 2005

flying to texas after work

I made plans with Criag to go to San Antonio this weekend to visit. It would be just me and Jen would stay in Atlanta.

After work today I grabbed my packed pelican case and took the shuttle bus over to the airport. Checking in for the flight was no problem and I had no troubles on the uneventful flight to San Antonio.

Craig picked me up from the airport and we went back to his place. As we were driving and talking, we realized that it’s been almost a year since we saw each other last. The last time I saw Craig was at my wedding.

When we got to his house I saw that he had a new dog, ‘MJ’, in addition his older dog, ‘Spliff’. MJ was pretty lively. We chatted a bit and Craig fixed me a coconut-rum & coke to drink. A little while later we headed out for some dinner.

We went to a sushi place called ‘Sushi Zushi‘ in a really nice part of town. I was actually surprised to see such a nice area. For an appetizer we had edamame followed by our entrees. I had for eel nigri and a roll (caterpillar roll) that had loads of eel in it too. I absolutely love eel sushi.

It was a nice dinner and I think Craig and Khyla had a good time to. After dinner we went back to Carig’s house and hung out there for the rest of the evening. We watched an old movie with Sigourney Weaver called ‘Copycat‘.

I also tried to help Craig with his computer. He has a fancy Dell system - complete with the Bluetooth mouse and keyboard. Craig reported that his keyboard stopped working a little while back. His Bluetooth mouse still works and he replaced the keyboard batteries but it still did not work.

Craig asked me to take a look. He had two old keyboards with a PS2 interface. Neither of them worked (at the XP login screen). I was able to get them to work in the BIOS and XP boot-selection screen. This tells me that there is a problem with the keyboard driver that XP loads given that the native BIOS driver works with the keyboard fine.

Unfortunately the only way to repair a bad driver is to reinstall it and it cannot be reinstalled unless we could log in - which we couldn’t since we couldn’t type the password. Even booting into safe mode didn’t help. Remote desktop wasn’t enabled so that didn’t work to. The way I see it, the only way to get the problem fixed is to boot from the install CD and to try to repair the installation.

When I headed to bed I watched a little TV in the guest room. I caught the end of a show on the Food Network in which Racheel Ray was giving recommendations about places to eat in Austin. She pontificated that IRON WORKS BBQ is the best in Austin! I already knew this of course.

Oct 15th 2005

fun day with my best friend

Craig and I both woke up relatively early. We got ready and headed out to breakfast. We went to a wonderful local restaurant called ‘Grumpys’. They have such wonderful breakfast tacos. I had a humongous breakfast taco with eggs, potato, bacon, and cheese. It was one of the best breakfast tacos I’ve had.

After breakfast we headed out into the hill country towards Enchanted Rock State Natural Area. It was a beautiful sunny hot Texas summer day and I loved it.

We got to Enchanted Rock around 10:30am and immediately set out to hike to the top. It was a little strenuous but not too much. When we reached the top I took some photos and even used my tripod to snap some panorama-candidate photos to stitch together later.

Craig and I hiked around the top and then down the side towards the next large dome. I took pictures along the way. Conditions were sunny so a lot of what I took ended up a little washed out.

2005-10-22-125425-4146_edited
(View of another dome from Enchanted Rock)

As the day went on it got hotter as the sun started to beat down on us. We decided to call it a day and hiked back to the car. It was still a great time and I loved being outside in the enveloping Texas heat and hanging out with Craig.

2005-10-22-124804-4138_edited
(Closeup of a cactus)

2005-10-22-125009-4139_edited
(Large boulders in the distance)

We left Enchanted Rock and headed to Austin since it was fairly close. I convinced Craig that we must eat at Iron Works BBQ especially after the vision I was given from Rachel Ray last night.

As we got closer to town and my cell phone picked up signal I called Dad to see if he would like to meet us there for dinner. He had been working outside in the yard all day and wasn’t up for it.

I was so giddy and excited to be having some great BBQ. I ordered the chopped beef plate which came with a healthy portion of chopped beef, a slice of bread, a helping of tasty potato salad, and beans. I also ordered some iced tea. Craig had something similar but also got a beer instead of tea. The food was so good and I was so happy to be able to have it today. I even called Larry to gloat. I think he was jealous.

We decided not to stick around Austin partly because of the football game. UT was playing Texas Tech and Tech was getting stomped so soon it would get very crowded with celebrating fans.

As the afternoon wore on we headed back to San Antonio. On the way back to Craig’s house we stopped at Starbucks to get some coffee. I got a tazo iced lemon tea thing. It was a little too much for me - I shouldn’t have bought the ‘Venti’ size.

We also stopped at Blockbuster because Craig wanted to rent some movies. He ended up renting _seven_ movies. Out of all seven I was most interested in ‘XXX part 2‘ and ‘Alexander‘.

Back at Craig’s place we watched ‘XXX part 2′. It was pretty good but I think I prefer the first one. Next we watched Alexander. I was looking forward to seeing this but after we watched it, I hated it. It was super long and I just couldn’t get into it.

I wanted to fly back tomorrow on the 5:30am flight so the idea was to stay up all night watching movies. After watching Alexander I was pretty worn out and wanted to take a short nap.

While Craig and Khyla continued to watch movies I went to bed to get a couple hours of sleep.

Oct 16th 2005

back home by 9am

I woke up and gathered my stuff around 3:45am. God that is so late/early. Craig drove me over to the airport and dropped me off at 4:15am. The only other people there was getting checked in for this 5:30am flight.

After the quick check-in process I went to the gate and to my surprise got to sit up front in first class (seat 1D). I slept almost the entire time on the flight back.

We got into Atlanta as the sun was rising and it looked amazing. I wish that I was next to a window and had my camera handy. After deplaning I took the shuttle bus to work and drove home. I was back home by 9am.

Jen was surprised to see me - she wasn’t expecting me to get in until later. I took a short nap after I got home. It felt nice.

The rest of the day was a pretty relaxing Sunday with Jen. I spent some time working on photo processing from some previous trips.

Oct 24th 2005

unison

Monday, October 24

Despite having a great backup strategy, I’ve wrestled with file synchronization between the laptop (wintermute) and the desktop (freeside).

Initially I looked at the native offline file/folder capabilities of XP but after preliminary tests I decided that it wasn’t for me. It didn’t work to my satisfaction.

I did more research and ended up with a program called ‘Save-N-Sync‘. It worked fairly well, especially the real-time filesystem monitoring capability. However one thing that bothered me was that it seemed a little overbearing. It would sometimes sort of seize-up the computer whenever it was transferring large files. Another thing I didn’t like was that it would either replicate from one computer to another or mix everything. So if I deleted a file on one, it would synchronize the deleted file back over even though I didn’t want it anymore. Lastly, it wouldn’t transfer only the parts of the files that changed - like the rsync protocol does.

At the time I wanted to do something like rsync and through research found a program called ‘unison‘. Unison is sort of built on top of rsync and does exactly what I need. When I first found Uniosn, it appeared to have a steep learning curve so I didn’t spend any time learning how to use it.

However recently I wanted to give Unison a closer look so I spent the time necessary to learn how to use it and ended up with a working configuration.

I think you can get it as a standalone win32 GUI, but I like command-line things and got it running on the cygwin installation I have on both wintermute and freeside.

After a lot of reading I ended up with a configuration such that I have a lightweight default.prf file in the .unison directory that simply includes another file called ‘common’ which also lives in .unison.

common is a little more interesting. The configuration is as follows:

[code]# common preferences file

# Roots of the synchronization
root = /home/Jeff/docs
root = ssh://freeside//home/Jeff/docs

# Be version-specific
addversionno = true

auto = true
#force = newer
prefer = newer
batch = true

# Helps out a lot on Windows
fastcheck = true

# place new files at the top of the list
sortnewfirst = true

# turn on ssh compression
rshargs = -C
sshargs = -C

# Log actions
log = true

# preserve times
times = true[/code]

This is taken from wintermute (the laptop). An identical file exists on freeside except that the roots are different.

The “root = /home/Jeff/docs” line represents the ‘My Documents’ folder on wintermute. /home/Jeff/docs is just a symlink to that dir. “root = ssh://freeside//home/Jeff/docs” represents the same dir on freeside.

The other options basically tell unison to run in an automated mode synchronizing all of the latest changes. It didn’t take too long to get it tweaked to how I like it.

Using it is super easy. I’ve almost always got a SecureCRT window opened to my screen session on turing (Gentoo linux box) so I can kick off a unison synchronization between wintermute and freeside simply by tying ’ssh wintermute unison’.

Because I have key-level authentication set up between the boxes (sshd running on all machines too), I don’t have to authenticate, it will simply run unison and synchronize.

Below is an example of what a unison run looks like:

[code]-[jeff@turing]–<12:09 AM:Tue Nov 15>-
-(0:~)-: ssh wintermute unison
Contacting server…
Looking for changes

local freeside
changed ====> changed System/archive.pst
<—- changed My Music/iTunes/iTunes Library.itl
<—- props My Music/iTunes/iTunes Music Library.xml
<—- changed System/finances.mny
Waiting for changes from server
Reconciling changes
Propagating updates

UNISON started propagating changes at 00:09:48 on 15 Nov 2005
[BGN] Updating file System/archive.pst
from /cygdrive/c/Documents and Settings/Jeff/My Documents
to //freeside//cygdrive/c/Documents and Settings/Jeff/My Documents
[BGN] Updating file My Music/iTunes/iTunes Library.itl
from //freeside//cygdrive/c/Documents and Settings/Jeff/My Documents
to /cygdrive/c/Documents and Settings/Jeff/My Documents
[BGN] Copying properties for My Music/iTunes/iTunes Music Library.xml
from //freeside//cygdrive/c/Documents and Settings/Jeff/My Documents
to /cygdrive/c/Documents and Settings/Jeff/My Documents
[BGN] Updating file System/finances.mny
from //freeside//cygdrive/c/Documents and Settings/Jeff/My Documents
to /cygdrive/c/Documents and Settings/Jeff/My Documents
4% 04:49 ETA[END] Copying properties for My Music/iTunes/iTunes Music Library.xml
90% 00:03 ETA[END] Updating file My Music/iTunes/iTunes Library.itl
90% 00:03 ETA[END] Updating file System/archive.pst
[END] Updating file System/finances.mny
UNISON finished propagating changes at 00:10:49 on 15 Nov 2005

Saving synchronizer state
Synchronization complete (4 items transferred, 0 skipped, 0 failures)[/code]

When I actually run it there is a summary before all of the copying that tells me what is going to change. I could have it set up on a cronjob on wintermute but choose not to do so yet. I’m still trying to get a handle on what files I need to tell it to exclude before I have it running all the time in the background.

Even with that I’m super pleased with Unison. It’s also very fast - I won’t copy the whole file unless it has to. This means that if only a few kilobytes changed out of the 175MB archive.pst, it will only transfer the actual bytes that have changed. The rsync protocol rules!

On a note aside from Unison, I got some good news at work today - some of the first good news I’ve received in a long, long time.

Oct 27th 2005

lockup problems

Yesterday morning I found that turing (gentoo linux box) was locked up. I reset it and assumed it was a one-time thing. That was not to be so.

This morning turing was locked up again. Something was definitely amiss. I did some cursory investigation and decided that the problem was happening sometime around 3am. I decided to take a look at it tomorrow.

Oct 28th 2005

dead hard drive

Just like the previous two mornings, turing (gentoo linux box) was locked up. I had a little time and did some investigation. I looked closer at the system logs and saw something very startling: The last entry in the main syslog was at 3:17am the past three days it locked up (some extraneous entries removed to save space):

Oct 26 03:10:01 turing cron[24331]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
Oct 26 03:10:01 turing cron[24333]: (root) CMD (//etc/webmin/status/monitor.pl)
Oct 26 03:10:01 turing cron[24335]: (root) CMD (/root/sshsafe /var/log/auth.log >> /dev/null)
Oct 26 03:10:01 turing cron[24341]: (root) CMD (/root/mrtg_tivo.sh 2> /dev/null)
Oct 26 03:10:01 turing cron[24343]: (root) CMD (/root/link_check.sh) 
Oct 26 03:16:58 turing fetchmail[10787]: awakened at Wed Oct 26 03:16:58 2005
Oct 26 03:17:10 turing fetchmail[10787]: sleeping at Wed Oct 26 03:17:10 2005
Oct 26 04:21:55 turing syslog-ng[10033]: syslog-ng version 1.6.8 starting
 
-------------------------------------------------------------------------------
 
Oct 27 03:10:01 turing cron[32674]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
Oct 27 03:10:01 turing cron[32676]: (root) CMD (//etc/webmin/status/monitor.pl)
Oct 27 03:10:01 turing cron[32678]: (root) CMD (/root/sshsafe /var/log/auth.log >> /dev/null)
Oct 27 03:10:01 turing cron[32684]: (root) CMD (/root/mrtg_tivo.sh 2> /dev/null)
Oct 27 03:10:01 turing cron[32686]: (root) CMD (/root/link_check.sh)
Oct 27 03:16:44 turing postfix/smtpd[12329]: connect from unknown[221.153.80.215]
Oct 27 03:16:45 turing postfix/smtpd[12329]: NOQUEUE: reject: RCPT from unknown[221.153.80.215]: 554 <leased -territories@leased-territories.com>: Relay access denied; from=<caramisgo @hanmail.net> to=<leased -territories@leased-territories.com> proto=SMTP helo=<hanmail .net>
Oct 27 03:17:05 turing postfix/smtpd[12329]: lost connection after DATA from unknown[221.153.80.215]
Oct 27 03:17:05 turing postfix/smtpd[12329]: disconnect from unknown[221.153.80.215]
Oct 27 03:17:18 turing fetchmail[10818]: awakened at Thu Oct 27 03:17:18 2005
Oct 27 03:17:30 turing fetchmail[10818]: sleeping at Thu Oct 27 03:17:30 2005
Oct 27 02:11:06 turing syslog-ng[10023]: syslog-ng version 1.6.8 starting
 
-------------------------------------------------------------------------------
 
Oct 28 03:10:01 turing cron[958]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
Oct 28 03:10:02 turing cron[960]: (root) CMD (//etc/webmin/status/monitor.pl)
Oct 28 03:10:02 turing cron[962]: (root) CMD (/root/sshsafe /var/log/auth.log >> /dev/null)
Oct 28 03:10:02 turing cron[968]: (root) CMD (/root/mrtg_tivo.sh 2> /dev/null)
Oct 28 03:14:02 turing fetchmail[10726]: awakened at Fri Oct 28 03:14:02 2005
Oct 28 03:14:10 turing hda: dma_intr: status=0x41 { DriveReady Error }
Oct 28 03:14:10 turing hda: dma_intr: error=0x04 { DriveStatusError }
Oct 28 03:14:10 turing ide: failed opcode was: unknown
Oct 28 03:14:11 turing hda: dma_intr: status=0x41 { DriveReady Error }
Oct 28 03:14:11 turing hda: dma_intr: error=0x04 { DriveStatusError }
Oct 28 03:14:11 turing ide: failed opcode was: unknown
Oct 28 03:14:21 turing fetchmail[10726]: sleeping at Fri Oct 28 03:14:21 2005
Oct 28 03:15:02 turing cron[12978]: (root) CMD (//etc/webmin/status/monitor.pl)
Oct 28 03:16:43 turing postfix/local[13044]: 6C42C8640A1:to=<jeff @localhost.billimek.com>, orig_to=</jeff><jeff @localhost>, relay=local, delay=4, status=sent (delivered to command: /usr/bin/procmail -a "$DOMAIN") Oct 28 03:16:43 turing postfix/qmgr[10725]: 6C42C8640A1: removed
Oct 28 03:16:54 turing hda: dma_intr: status=0x41 { DriveReady Error }
Oct 28 03:16:54 turing hda: dma_intr: error=0x04 { DriveStatusError }
Oct 28 03:16:54 turing ide: failed opcode was: unknown
Oct 28 03:16:55 turing hda: dma_intr: status=0x41 { DriveReady Error }
Oct 28 03:16:55 turing hda: dma_intr: error=0x04 { DriveStatusError }
Oct 28 03:16:55 turing ide: failed opcode was: unknown
Oct 28 03:16:57 turing hda: dma_intr: status=0x41 { DriveReady Error }
Oct 28 03:16:57 turing hda: dma_intr: error=0x04 { DriveStatusError }
Oct 28 03:16:57 turing ide: failed opcode was: unknown
Oct 28 03:17:43 turing fetchmail[10726]: awakened at Fri Oct 28 03:17:43 2005
Oct 28 03:17:58 turing fetchmail[10726]: sleeping at Fri Oct 28 03:17:58 2005
Oct 28 02:15:25 turing syslog-ng[10009]: syslog-ng version 1.6.8 starting</jeff></hanmail></leased></caramisgo></leased>

The last entry all three days occurred during 3:17am. The ’syslog starting’ message signifies the box being rebooted. The reason for the earlier time is that the timezone isn’t set until later in the boot process.

Because of the periodicity of the error I suspected that it was a cron job. Indeed this was true. ‘slocate‘ runs as apart of the cron.daily batch of jobs which kick off at 3am. It must be doing something that triggers a lockup.

The logs from the 28th reveal that drive sector errors popped up this morning. I initially had some bad sector errors from the HD (/dev/had - hosting the boot, swap, and root partitions) a week ago. I thought I had corrected the problem after I ran spinrite on the drive. Indeed at the time the errors miraculously went away after I ran spinrite.

Since slocate is quite disk intensive it makes sense that it would be hanging the machine if it starts to hit bad sectors. At first I just disabled slocate but then decided to switch the machine to single-user mode, remount root as read-only and run reiserfsck to check the HD.

When I ran reiserfsck it told me that the problems were pretty severe and that I needed to run it with the –rebuild-tree option. I did so, and then it reported that it was getting seek errors and that basically I was screwed. I attempted to reboot but it would refuse to mount root because of the failed –rebuild-tree operation, and thus refused to boot.

I was out of options and out of time so I loaded up spinrite and let it run while I was at work.

It was a fairly uneventful Friday at work today. The noteworthy point was that we had a going-away lunch for Ed B. and Brian S. Ed is retiring and Brian took a job at Turner. Brian is the first from the group I associate with at work that has departed and I don’t think that he will be the last. Things are definitely changing around here.

After work I went home and spent a lot of time working on the hard drive problems. Spinrite completed during the day while I was at work. I tried and successfully ran reiserfsck with the –rebuild-tree option to fix the root partition. This got me a working (not sure for how long) system again. I didn’t want to take any chances and continued to work tomorrow on the problem.

Late this evening Jen and I drove down to the airport and picked up her cousin Brian who will be spending the night with us tonight. His flight got in around 11:15pm and we drove him back to our place.

Oct 29th 2005

repairo

I was up late last night working on the dead hard drive problems and spent pretty much all day today fixing it. In retrospect I should have just gone out and purchased a replacement HD to salvage everything onto and be done with it.

Instead I spent a tremendous amount of time that frankly wasn’t much worth it. While I did learn a lot, I don’t think that the lesson wasn’t worth 1.5 days of work.

The setup was:

[code]Old WD 80GB IDE HD (/dev/hda):
/dev/hda1 - 50MB mounted on /boot
/dev/hda2 - 1GB swap
/dev/hda3 - 70GB mounted on /

Newer 250GB SATA HD (/dev/sda):
/dev/sda1 - 250GB mounted on /home[/code]

/dev/hda was failing. Yesterday when I attempted to fix the root (/dev/hda3) partition with ‘reiserfsck –rebuild-tree’ things got really bad. It detected a seek error and gave up. At this point, I was unable to boot or mount the partition.

So now I had a broken partition on a dying HD. After letting spinrite work on the drive yesterday, most of the bad blocks went away again (for how long I do not know).

I booted up into a knoppix-based System Rescue CD, I used dd_rescue to dump the contents of /dev/hda3 onto some free space onto /dev/sda1 (currently used as the /home partition):

[code]dd_rescue -b 4096 /dev/hda3 /mnt/sda1/hda3.img[/code]

This took a while to dump the 70GB partition, but it completed with no problems, and I don’t recall seeing any seek errors.

Once I had an image-dump of the old HD, I now had to repair it (repairo!)

In order to do that, I had to ‘mount’ the image:

[code]losetup /dev/loop0 /mnt/sda1/hda3.img
mount -t reiserfs -o ro /dev/loop0 /mnt/hda3
[/code]

Then I could check it (reiserfsck –check /dev/loop0), but that just told me that it was really screwed up so I had to run with –rebuild-tree instead:

[code]reiserfsck –rebuild-tree /dev/loop0[/code]

The –rebuild-tree operation took a long time, but it did find and repair a lot of errors.

Once it eventually completed, the image was fine. I then used dd_rescue to also save an image of the /boot partition (ext3) as well:

[code]dd_rescue /dev/hda1 /mnt/sda1/hda1.img[/code]

Now I had all of the important data off of the old 80GB HD (/dev/hda). I decided to just combine everything on the 250GB HD (sda) that I was using for /home. This meant that I had to re-arrange the partition.

Before I did this, I had to move-off the hda1.img and large hda3.img files from that partition to somewhere else. I didn’t have any external HDs handy so I decided to move them across the network to freeside which is sporting a new 300GB HD with plenty of space to hold the images.

I wrestled with how to copy the files (in particular the large 70GB hda3.img file) the fastest way possible. I didn’t have an ftp server running on freeside and didn’t want to bother with setting one up, so that left me with either rsync, scp, or samba.

Naturally I figured that rsync (via ssh) would be the fastest way - it was not. scp was not fast ether. I even tried both rsync and scp with the ssh encryption cipher for fast file transfers (arcfour) but weak encryption. This did not help.

Instead, I mounted a windows share with smbmount and simply copied the files with ‘cp’:

[code]cp -aug /mnt/sda1/hda1.img /mnt/freeside/
cp -aug /mnt/sda1/hda3.img /mnt/freeside/[/code]

It was super fast. I’m still baffled as to why samba was faster than the other two methods since everything I read on the nets suggested that it should not be.

Now that the old hda images were safely over on freeside, I ran qtparted from the rescue CD to resize the /dva/sda1 partition. This turned out to be a big mistake.

Only after I began the very long resize operation did I read somewhere that it doesn’t behave with reiserfs partitions. So I aborted it, but now everything was screwed up with /dev/sda1 and I was jeopardy of losing all the data on my /home partition. This isn’t too disastrous because I do daily backups of the home directories, but I would like to salvage what I can.

I think I had to run [code]reiserfsck –rebuild-tree /dev/sda1[/code] in order to repair the drive. This took a long time. There were a lot of files sent to lost found and it looked like a mess. I was mainly concerned about the 41GB mp3 collection. It turns out that this was mostly all in lost found with random characters for filenames. What a mess! I don’t keep daily backups of the mp3s, but there is a quarterly backup saved offsite on an external HD. I didn’t have this handy and wanted to salvage them now. I had an idea.

First, I needed to get everything from /dev/sda1 off of the HD, so I tarred it all up (dd_rescue would have created a large 230GB image file which would not have fit on freeside). In total, the tar file was about 60-80GB. I saved the tar directly to freeside over samba.

Now that everything was off the 250GB HD, I blew it away and repartitioned it in the following scheme:

[code]/dev/sda1: 50MB /boot partition
/dev/sda2: 1GB swap partition
/dev/sda3: 50GB / partition
/dev/sda4: 182GB /home partition[/code]

I then created the swap ‘partition’ and formatted the other partitions. I think I used a GUI tool to do this.

After this was done, I mounted the boot, root, and home partitions:

[code]mount /dev/sda1 /mnt/sda1
mount /dev/sda3 /mnt/sda3
mount /dev/sda4 /mnt/sda4[/code]

I mounted the hda1.img and hda3.img files remotely over samba using the loop device trick. However, the old way of mounting (mount -t reiserfs -o ro /dev/loop0 /mnt/hda3) did not work so I had to use mount a different way - perhaps because it was over samba?

[code]mount /mnt/freeside/hda1.img /mnt/hda1 -t reiserfs -o loop=/dev/loop0
mount /mnt/freeside/hda3.img /mnt/hda3 -t reiserfs -o loop=/dev/loop1[/code]

With the two images mounted remotely from the freeside samba share, I was able to recursively restore all of the files, preserving everything:

[code]cp -aug /mnt/hda1 /mnt/sda1/
cp -aug /mnt/hda3 /mnt/sda3/[/code]

I also untarred everything from the tarfile I made of the home partition:

[code]cd /mnt/sda4
tar xvf /mnt/freeside/home.tar .[/code]

Next, I did what I could to salvage any files from lost found. I was a lot more successful at this than I thought. The only stuff that got missed was most of the mp3s.

I used my old backups to restore the /home/jeff and /home/jen home dirs with the latest data taken from the backups. Because I do a full backup on Monday followed by incrementals every other day, I first restored the full and then did all of the incrementals in succession.

At this point everything was back to ‘normal’ except for the mp3s. I wanted to work on those after getting turing up and running. So I tweaked /etc/fstab to handle the new partitions correctly:

[code]/dev/sda1 /boot ext2 noauto,noatime 1 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / reiserfs noatime 0 1
/dev/sda4 /home reiserfs noatime 0 1[/code]

And then rebooted. To my delight, everything came back online just as I left it and the system was running fine.

There was one oddity that exposed a hole in my backup scheme. I ended up with a lot of duplicated email. The reason for this is because of the following:

1) A full backup is taken including everything in /home/jeff/.maildir
2) During the day new emails are received and some are deleted and some are moved around.
3) The next day, an incremental backup is taken to pick up only new or changed items in /home/jeff/.maildir
4) Steps 2 and 3 repeat for however many days went on before I had the outage.

So when I restored firs the full backup, the .maildir snapshot was restored - no problem. But as I restored the remaining incremental backups in order, I ended up with extra emails that were once deleted. The only way around this seems to be to take a snapshot of that directory every time a backup is done instead of just the changes. I’ll ponder on how to accomplish this in the context of my existing backup scheme at a later date.

With The system mostly repaired, I could take a breather and focus on fixing the mp3s. Because most of my mp3s were scattered in randomly-named directores in /home/lost found/, I had to find a way to get them all back in the names and directories that they once were.

MediaMonkey is perfect for that. I had been using MediaMonkey to manage the music collection and so the database still knew were everything was supposed to be. I made a backup of the current database file in case I need to reference it again. Then I used MediaMonkey to scan through all of the files

Oct 30th 2005

motorola v3 razr imap email solution

I have the Motorola Razr V3 cell phone. I also run the courier-imap server on the linux box. I want to serve up my imap email to my cell phone. Unfortunately no amount of work could get it to work correctly. I believe there is an inherent problem with the imap email client implementation in the v3 firmware. I went so far as to packet-sniff (tcpdump) every packet to/from the phone during the imap session. I couldn’t find anything concrete.

Just as I was about to give up, I decided to try another imap server implementation just to see if that would help. I did a quick bout of research and decided to try a small imap server package called bincimap.

After a quick emerge and configuration, I was ready to go. I shut down courier and fired up bincimap. I first verified that I could get outlook to work with it and then I tried the razr. To my surprise it worked correctly! The odd thing is that I understand courier to be a much wider-used imap server than bincimap so it was perplexing that the phone imap client software didn’t work with courier where it would work with bincimap.

Nonetheless, I stayed with this solution for a while. But as time went on I desired to move back to courier. Courier has some fancy-pants features that while I doubt I use, I wanted to use courier anyway (nothing personal again bincimap).

Then, one night as I was drifting to sleep, a solution came to me: I can run both at the same time! While by default, imap (non-ssl) servers listen on port 143 for connections. I run bincimap thought xinetd and was able to reconfigure it to listen on a different port than 143. I chose 144. /etc/services tells me that this is reserved for ‘uma’ (Universal Management Architecture) - whatever that is, I don’t use it. So I have bincimap listening on 144.

/etc/xinetd.d/bincimap:
[code]service imap
{
disable = no
flags = REUSE
socket_type = stream
only_from = 0.0.0.0
wait = no
user = root
group = root
instances = UNLIMITED
server = /usr/bin/bincimap-up
server_args = –conf=/etc/bincimap/bincimap.conf –logtype=syslog — /bin/checkpassword /usr/bin/bincimapd
log_type = SYSLOG mail info
port = 144
type = unlisted
}[/code]

Then, with a bit of iptables-foo I was able to construct some rules that will redirect imap connections from a certain source (changed below to protect the innocent) to use bincimap:

[code]-[root@turing]–<05:38 PM:Mon Nov 28>-
-(0:/var/lib/iptables)-: iptables -L -v -t nat
Chain PREROUTING (policy ACCEPT 30 packets, 2672 bytes)
pkts bytes target prot opt in out source destination
1 80 DNAT tcp — any any x.x.x.0/24 anywhere tcp dpt:imap to:192.168.1.3:144
0 0 DNAT udp — any any x.x.x.0/24 anywhere udp dpt:imap to:192.168.1.3:144
0 0 DNAT tcp — any any x.x.x.0/24 anywhere tcp dpt:imaps to:192.168.1.3:994
0 0 DNAT udp — any any x.x.x.0/24 anywhere udp dpt:imaps to:192.168.1.3:994[/code]

This allows me to serve-up the bincimap server only to my razr phone. Now I can have the best of both worlds.

Jen and I had lunch today at a place called ‘Wild Noodles‘. It wasn’t that good so we won’t be going back.

On our way home we stopped at the Home Depot Landscaping store along S. Cobb drive. I’ve never been there before and it was pretty nice. It has a much more serene atmosphere than the normal Home Depot store since it was a garden center. We bought a few flowers.

After we got back home we sat outside on the deck in the enveloping sunshine and read our books.

Later we watched a ton of ‘Alias‘ episodes from season 4.