Russell Coker: Ext4 and Debian/Lenny
I want to use the Ext4 filesystem on Xen DomUs. The reason for this is that the problem of fsck times on ext4 (as described in my previous post about Ext4 [1]) is compounded if you have multiple DomUs running fsck at the same time.
One issue that makes this difficult is the fact that it is very important to be able to mount a DomU filesystem in the Dom0 and it is extremely useful to be able to fsck a DomU filesystem from a Dom0 (for example when you want to resize the root filesystem of the DomU).
I have Dom0 systems running CentOS5, RHEL5, and Debian/Lenny, and I have DomU systems running CentOS5, RHEL4, Debian/Lenny, and Debian/Unstable. So to get Ext4 support on all my Xen servers I need it for Debian/Lenny and RHEL4 (Debian/Unstable has full support for Ext4 and RHEL5 and CentOS5 have been updated to support it [2]).
The Debian kernel team apparently don t plan to add kernel support for Ext4 in Lenny (they generally don t do such things) and even backports.debian.org doesn t have a version of e2fsprogs that supports ext4. So getting Lenny going with Ext4 requires a non-default kernel and a back-port of the utilities. In the past I ve used CentOS and RHEL kernels to run Debian systems and that has worked reasonably well. I wouldn t recommend doing so for a Dom0 or a non-virtual install, but for a DomU it works reasonably well and it s not too difficult to recover from problems. So I have decided to upgrade most of my Lenny virtual machines to a CentOS 5 kernel.
When installing a CentOS 5 kernel to replace a Debian/Lenny kernel you have to use console=tty0 as a kernel parameter instead of xencons=tty , you have to use /dev/xvc0 as the name of the terminal for running a getty (IE xvc0 is a parameter to getty) and you have to edit /etc/rc.local (or some other init script) to run killall -9 nash-hotplug as a nash process from the Red Hat initrd goes into an infinite loop. Of course upgrading a CentOS kernel on a Debian system is a little more inconvenient (I upgrade a CentOS DomU and then copy the kernel modules to the Debian DomUs and the vmlinuz and initrd to the Dom0).
The inconvenience of this can be an issue in an environment where multiple people are involved in running the systems, if a sysadmin who lacks skills or confidence takes over they may be afraid to upgrade the kernel to solve security issues. Also apt-get dist-upgrade won t show that a CentOS kernel can be updated, so a little more management effort is required in tracking which machines need to be upgraded.
deb http://www.coker.com.au lenny misc
To backport the e2fsprogs package I first needed to backport util-linux, debhelper, libtool, xz-utils, base-files, and dpkg. This is the most significant and invasive back-port I ve done. The above apt repository has all the packages for AMD64 and i386 architectures.
For a Debian system after the right kernel is installed and e2fsprogs (and it s dependencies) are upgraded the command tune2fs -O flex_bg,uninit_bg /dev/xvda can be used to enable the ext4 filesystem. At the next reboot the system will prompt for the root password and allow you to manually run e2fsck -y /dev/xvda to do the real work of transitioning the filesystem (unlike Red Hat based distributions which do this automatically).
So the state of my Debian systems running this is that the DomUs run the CentOS kernel and my backported utilities while the Dom0 just runs the backported utilities with the Lenny kernel. Thus the Debian Dom0 can t mount filesystems from the DomUs which makes things very difficult when there is a problem that needs to be fixed in a DomU, I have to either mount the filesystem from another DomU or boot with init=/bin/bash .
The Tool Factory closed its doors on 31st December 2009.
As you may remember,
A new 

I run a
Yes, aptitude can list packages by priority, but what I wanted was a simple list of just package names. I've got two ways of getting a bare list:
This has been a big decade for me.
Ten years ago, I was living in Sunnyvale, in the heart of
Silicon Valley; VA had just had its
On the train to my parents' house for Christmas I finished up a wild run
through the book
The book is a collection of interviews with 15 great programmers of our time,
starting with Jamie Zawinsky and ending with Donald Knuth. It's written in an
interview style each interview starts with a brief introduction to the
person being interviewed, summarizing what the person is known for and what he
or she has accomplished and a few of the highlights of the interview, and then
a transcript of the interview follows, with the author/editor, Peter Siebel,
will saying something or asking a question, and the interviewee responding. I
was skeptical about this format at first because I feel like it can be an easy
way out of good editing and make the reader have to do the work of the editor,
but on finishing I think that Siebel uses the format to his advantage in this
case.
For one, the speech format allows the reader to really form a picture of how
the person being interviewed speaks and would act in a conversation. Jamie is
somewhat bitter and pretty informal. Brad Fitzpatrick is flippant and
energetic, his speech littered with profanity and colloquialisms. Others seem
more stately and verbose Joe Armstrong's responses can go on for a page or
more. In this way, not only do readers learn something about what these greats
have learned about programming, but we also feel a bit more like we've met or
know them, and can connect to them more as people.
I always have this problem where I want to read computer books, but often
computer books seem inextricably tied to the computer, so there's this dynamic
of reading a bit and then wanting to get on a machine and try something out,
write some code, play around especially with books focused on a specific
language. Coders at Work retains some of this computer-book dynamic in that I
constantly encountered things that I want to investigate or play around with
more: Erlang, OCaml, various papers and essays, Knuth's literate programs, and
books such as Higher Order Perl and others. Siebel makes a point to ask each
person what her short-list of books and papers programmers should read are, so
this book is a great source of pointers to other reading material. Unlike a
more specific book, however, keeping a list in a notebook was enough to settle
the mind to read away-from-a-computer for chapters at a time.
It's obvious that despite the interview format, Siebel has done some serious
editing. None of the prose is boring to read, and I can't imagine that the text
is a straight transcript of how the interviews went. He also has arranged the
interviews in an order such that different interviews play off each other. In
Branden Eich's interview, for example, he disparages the book
Design Patterns:
Christian