Wrath of the Lich King

It’s been awhile since my last post. In fact I meant to post this a couple weeks ago and sat on the draft for a couple weeks.

Since my last post I’ve kept myself busy with work, Japanese class, and bowling.

If were unaware two weeks a month ago on Nov 13th World of Warcraft: Wrath of the Lich King was released to the world. Since then I’ve gotten back into playing, hit 80 and started raiding again.

I have to say that this expac is the best so far from Blizzard. While I did manage to hit 80 in about a week from release it was probably the best 10 levels of the game. I didn’t do any boring grind but did all the quests I could. See Blizzard has revamped the quest system for the xpac.

In the release version of the game it was common for many tests to involve killing x of some creature, or saving someone then going back and finding our stranded friend is right where you left him. This time around Blizzard still has the kil 10 “Rats of Doom” but has expanded the quests so that there are many more dynamic quests. There are rail shooters, quests which require you to pilot a vehicle, races, button mashers similar to God of War, ones which transform you into a monster and more. Not only that they’ve done a great job creating a cohesive story which evolves as you play.

From the start it feels like you’re making a contribution to the effort to defeat the Lich King. From the start your interactions seem to feed into various stories. This really stands out with Blizzard’s new use of their phasing technology. With phasing Blizzard can control who can see you, what enemies you can see, and what landscape you can interact with. Blizzard puts this to awesome use to let you change the world. Save that guy in a quest? He’s saved forever. Save a town from an attack? The bad guys sieging the castle are gone.

This is really put to great use in the later zones such as Icecrown were the good guys don’t even have a foothold. Over time you fight off the undead scourge and build new bases. Certain enemy infested areas become a safe harbor where you can rest and repair.

The other best use of this technology is the Wrathgate quest chain, which terminates with a fairly epic in game cutscene followed by you laying siege to a horde main city. It’s sweet and some of the greatest fun I’ve had in WoW. In fact with their use of phasing the game really starts to feel like a single player RPG.

Also the gameplay doesn’t stop with 80. By the time you hit 80 you’ll still probably have 2-3 zones worth of quests to do, many of which will continue to evolve the overall plot. You also can rerun many of the level up instance in Heroic mode, try out the new level 80 dungeons, and if you have 10 or 25 friends hit up the new raid dungeons.

My guild is also making forward progress on raiding. On the 10 man side we’ve cleared everything by Malygos but haven’t really bothered with Malygos yet due to schedule (we cleared Naxx the week after release).

On the 25 man side we’re on the last boss of Naxxramas and should have him done and start on Malygos tomorrow. Sadly progress has been slower here since we’ve been waiting for more guildies to hit level 80. We completed most of 25 man Naxx with around 22 people so I won’t complain too much about our slower progress :).

Returning to WoW has been fun so far and I highly recommend this expansion to anyone who has World of Warcraft. To my friends without this game, I’d say give it a try but it’s honestly a lot more fun from 70-80 than it is to get to 70. They’ve just improved the gameply that much in the latest xpac.

How to fix a Corrupted Time Machine Backup

The other day time machine decided to stop working for me and kept giving me errors about mounting the backup image. After firing up Console.app I found that the sparsebundle which time machine stores the backup data in was corrupted. This is a bad thing since if I couldn’t find a way to fix the image all my backups for the last 6 months would be lost :(.

My first step on the road to fixing the problem was to open the bundle with “Disk Utility” and see if repair disk would work. To do this you need to drag the back image (the .sparsebundle) and drop it on disk utility. Then you can select the image and press “Repair Disk”. Usually if if you have some disk corruption this would fix it, but not for me.

After working for a couple minutes Disk Util would fail at repairing the disk since it found an “Invalid Sibling Link”. It seems the disk was corrupted and the disk repair utility decided it wasn’t going to repair it. Worried that my backups were gone for good I did some Googling and found that this problem isn’t totally uncommon. It seems that Disk Utility is just fairly bad at repairing disks and that using the “real” disk repair utility fsck_hfs might actually fix the problem.

Of course there’s one problem fsck_hfs has to be used directly on a block device not a “sparsebundle” disk image. Not only that but the volume you run the util on cannot be mounted and OS X always tries to mount the image when you click on it. The solution? Use the command line tool hdiutil to “attach” but not “mount” the image. This makes OS X create a /dev/ device for the sparse bundle but doesn’t actually mount the filesystem.

So combining hdiutil and fsck_hfs we might have a way to fix the disk image. Note: Make sure you turn off Time Machine in the System Preferences panel. We don’t want Time Machine trying to mount our image and back up to it until we’re done making all the repairs.

First I ran hdiutil:

hdiutil attach -nomount -readwrite Bhaal_0011247e3338.sparsebundle

After a minute or two of thinking we had success:

/dev/disk1              Apple_partition_scheme
/dev/disk1s1            Apple_partition_map
/dev/disk1s2            Apple_HFSX

The next step was run fsck_hfs on the main volume.

fsck_hfs -rf /dev/disk1s2

-f is required to force a check since this is a journaled file system. I also used -r to have it rebuild the filesystem catalog for the “invalid sibling link” this is required (thanks Dan). At this point I went out for breakfast since I was running a disk repair utility over my wireless internet to my Linux SAMBA server. After coming back from breakfast we had success!

** /dev/rdisk1s2
** Checking Journaled HFS Plus volume.
** Detected a case-sensitive catalog.
** Checking Extents Overflow file.
** Checking Catalog file.
** Rebuilding Catalog B-tree.
** Rechecking volume.
** Checking Journaled HFS Plus volume.
** Detected a case-sensitive catalog.
** Checking Extents Overflow file.
** Checking Catalog file.
   Incorrect number of thread records
(4, 13716)
** Checking multi-linked files.
** Checking Catalog hierarchy.
   Invalid directory item count
   (It should be 0 instead of 1)
   Invalid directory item count
   (It should be 3 instead of 4)
   Incorrect folder count in a directory (id = 3795486)
   (It should be 0 instead of 1)
** Checking Extended Attributes file.
** Checking multi-linked directories.
** Checking volume bitmap.
** Checking volume information.
   Invalid volume free block count
   (It should be 37267681 instead of 37310834)
   Volume Header needs minor repair
(2, 0)
** Repairing volume.
** Rechecking volume.
** Checking Journaled HFS Plus volume.
** Detected a case-sensitive catalog.
** Checking Extents Overflow file.
** Checking Catalog file.
** Checking multi-linked files.
** Checking Catalog hierarchy.
** Checking Extended Attributes file.
** Checking multi-linked directories.
** Checking volume bitmap.
** Checking volume information.
** The volume Backup of Bhaal was repaired successfully.

Make Time Machine Backup To Any Volume

After a long search around the net I found a simple way to make leopard enable time machine for any backup system. This includes backup up to a NFS or Samba share over a network. Simple open Terminal.app and run the following command:

defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

That’s it, after that you should be able to choose your mounted volume in time machine for backup. Now I just need to figure out how to force time machine to backup to a subdirectory rather than my linux home directory. I might have to make an explicit Samba share for that.

Edit based on someone’s comment

If the above command isn’t working for you try using sudo:

sudo defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

8800 GT Launches!

NVIDIA has launched their 8800 GT this is a DX 10 midrange card that currently performs about as well as the higher end 8800GTS but costs significantly less. The suggested retail is between $200-250 for a 512 MB model. Don’t go buying these on newegg.com at the moment since they’re gouging the early adopters. Fry’s, Bestbuy and any regular retailer should have these in the $220 or so range if you can find one in stock.

I’m considering getting one for my system but I’m not sure I want to fork over the cash quite yet.

Quad Core!

Well I decided upgrade my Athlon 64 3000+ to an Intel Core 2 Quad Q6600, on an NVIDIA 680i SLI EVGA mainboard. I also ended up going with Microsoft Vista Business 64 bit rather than XP for the new setup.

There is one downside to the new setup. Unfortunately, my 7800 GTX just locks up once Vista starts. It seems that once any 3d stuff kicks in the card hard locks. Luckily, a friend of mine was willing to loan me a 7900 GTX to use since he’s planning to upgrade soon.

The nice part of the new setup is that I can game, watch an HD movie, and extract a large file all at the same time with no real slowdown.