Ted Leung on the air: Open Source, Java, Python, and ...
Our Christmas day power outage finally ended happily. Recall that a Christmas day power outage corrupted an ext3 filesystem that was managed by the Linux LVM. e2retreive ran for almost 3 weeks and in the end was unable to actually recover any files. A bunch of other free/open source programs also failed to do the job.
My initial round of Googling turned up a pieces of software called Kernel by Nucelus Technologies. They offered a demo version of their software which would tell you if it could recover files, but not actually recover them (for that you had to cough up some money). Kernel runs on Windows, but there are versions for lots of operating systems. Given that I thought our problems were more due to LVM rather than ext3, I was a little skeptical that Kernel would be able to do much of anything. I'm glad that I was wrong. Kernel was able to recover all the files off of the disk (you better believe I paid), so we have all of our data back. The only thing I'm unhappy with is that Kernel didn't preserve the file dates, even though it was able to display the dates. Still, I'm very happy to have my data back, and Kernel definitely makes the recommended list. So if you have a corrupted ext3 partition under LVM, Kernel had a decent chance of working.
The Google research that I did has convinced me that using LVM is more dangerous than the convenience of it, so I'll definitely be reformatting the offending disk as plain old ext3.
[via Ubuntu ]:
Last week the Ubuntu folks released their latest version, which had the code name "Breezy Badger". A few weeks before I switched my Hoary box over to Breezy, just by changing the sources in my apt sources list, and letting apt-get do its thing. I expected the upgrade to be painless since that's been my experience on the various Debian boxes that I am running. One thing that I didn't expect was the the sound on my Shuttle box started working after I did the upgrade. I didn't even have to re-run the installer.
For work I got a new Intel based PC, a Shuttle G5 9500 XPC. This is an AMD64 nForce3 based machine. Mine has an AMD64 3500, 1Gig of RAM and 74G 10000RPM Raptor. It's not the top of the line, but it's pretty close. The form factor is great (goes right under one of the shelves of my desk), the heat is nice in the winter, and the noise is tolerable (but could be better)
I've spent the last few days wrestling with the machine. To do the job, the machine needs to run Windows XP, Fedora Core n (which is our supported Linux) and Ubuntu (because I'm willing to do the work to get things going on Ubuntu).
I started by grabbing the latest Hoary AMD64 Live CD, in order to make sure that Ubuntu could detect all the hardware. I had some concerns about the SATA disks and the Ethernet controller on the nForce. The LiveCD's found everything, put up a beautiful GNOME desktop, and seemed to run just fine. Next stop Hoary Install CD for AMD64. This installed like a champ, but wouldn't boot. I got dropped into the Intel PXE netboot. Something was messed up with the boot records. A frenzy of wiping, repartitioning, reinstalling ensued punctuated by reboot after reboot (I ended up blasting Windows too). I learned about Debian From Scratch, which is a handy way of using Debian as a rescue CD.
In the end I put Ubuntu on a primary partition (it had been on an extended paritition), installed GRUB's master boot record on that partition, and then copied that boot record to Windows, where I could put it into boot.ini and use the Windows boot loader to load GRUB which would then boot Ubuntu. I had never done anything with GRUB before Ubuntu, and I now know more about it that I wanted to. But at least I have a working dual boot system.
Next problem, building Chandler on AMD64. This turned out to be too big of a hurdle for a one night project. Installing the ia32-libs package helped some, but not enough. The big remaining problem seems to be weirdness with Hoary's current packageing of gcj-3.4, which is needed for PyLucene. I was tempted to go do the chrooted 32bit library thing, but I think I need to learn a little more about 64 vs 32 bit environments before I do that. I ended up grabbing a 32bit i386 Hoary CD and installing that into the partition intended for Fedora Core 3. After I did that I was able to successfully get the prebuilt Chandler to run (I have no doubt I'll be able to get it to compile if I need to). The last snag is that Chandler/wxWidgets runs great on the Xorg X xserver in Ubuntu, but when I try to run it using XQuartz on the Mac, Chandler crashes. So, for native Linux, we're AOK, for the case which would be more convenient for my working, there's a bit more to go.
On the whole, I'm happy with how the Ubuntu install went -- much better than my previous Debian installs (and most of my Debian knowledge carried right over), and without many cuts. In fact, when I just made one huge Ubuntu partition, things went really easily. The problem came in with me wanting a triple (perhaps now I'll need quadruple) boot setup, being inexperienced with GRUB, and trying to build a 64 bit Chandler, which I'll eventually figure out how to do.
If your are using shorewall as your firewall, be sure to update the contents of your rfc1918 file periodically, as networks get reassigned by IANA. I had a very out of date version, which was making my website inaccessible to people on various networks.
Fortunately shorewall includes a Python script for generating the appropriate parts of the file.
While I'm not having problems with downloading Debian packages (I have a cron job that downloads updated packages daily), I think that additional uses for bittorrent is a good thing. apt-torrent is a proxy for apt that uses bittorrent as the transport.
- Support for recent hardware (Pentium M + 802.11 a/b/g)
- Good power management (fast hibernate and fast sleep/wakeup)
- Something that works with iChat A/V: I love e-mail and IM/IRC as much as the next open source guy, but using the iSight really makes a difference
- Something like SubEthaEdit: in combination with audio/video chat, this really makes it easy to debug problems live.
- Something like Launchbar/Quicksilver: These launchers are just so good
- A really good RSS reader
lvm2package and follow the directions in the LVM-HOWTO. It turned out to be much less painful than I anticipated.
/etc/init.d. postgrey doesn't supply a script, so I've made mine available. I'm not an init.d wizard, so if you improve the script please let me know. [ update: postgrey is now a package in Debian unstable ] To date our anti-spam measures consist of postfix, postgrey, amavisd-new, clamav, and spamassasin on the server, and a bayesian filter in the clients. The arms race goes on.
nameifas the solution for my kernel 2.6 interface swapping woes. It turns out that
nameifisn't able to swap interfaces easily. In order to make it work you need to give your eth1 a bogus name, swap that interfaces MAC to eth0 and the swap the other MAC to eth1. Thanks (as usual) to Google and the debian-users list for the fix. Note that you cannot do this from an /etc/mactab, so you need to change /etc/init.d/networking (on Debian) and include the calls to
nameifdirectly. You have to modify /etc/init.d/networking anyway because it doesn't check for an /etc/mactab and try to run
nameif, and that's probably just as well. At least I'm happily running 2.6 now.
make oldconfigwhich saved a huge amount of time. I wish I had learned about that one a few years ago. 2.6.4 booted like a champ and everything was fine until the system started the firewall. It seems that eth0 and eth1 decided to switch which NIC's they were assigned to, breaking the firewall rules and a host of other interface dependent stuff. After a little googling and fussing, I decided to give up. I'm supposed to fly to PyCon tomorrow, and a new kernel on the machine is just not a smart idea. So I'm going to just leave it the way it is an try to fix it when I get back. If anyone can explain to me *why* the network interfaces switched or more importantly, how I can switch them back, I'd really appreciate a comment. Time to pack for PyCon now...