Amanda for CygWin

Amanda is a great network backup utility that my company uses for the backup of our Linux servers and workstations (oh, and one Sun, too). Since we're planning a move to XP from Win98 for the unwashed masses, I wanted to use Amanda for those machines, too. (My other CygWin experiences are available here.)


Version 2.4.3

A big thanks to Enrico Bernardini for his help in getting this working.

Before you can compile Amanda under CygWin, you need to apply a patch to work around some of the limitations of Windoze. (For more on exactly what the patch does, see this email.) To install it, go to the top-level amanda source directory and execute the command:

patch -s -p1 <amanda-2.4.3-cygwin.patch

Once applied to v2.4.3 of the Amanda source, you need to configure it and build it. For myself, I used the command:

./configure  --without-server --without-restore --without-force-uid  \
             --with-user=root --with-group=root  \
             --libdir=/usr/local/lib/amanda --libexecdir=/usr/local/lib/amanda  \
             --localstatedir=/var/lib --sysconfdir=/etc

(The "localstatedir" and "sysconfdir" were choosen to match how Debian installs Amanda since I wanted to use the same configuration files.)

When that completes, just do:

make
make install

That takes care of Amanda, however you still need to make it available to the network. First, install inetd and edit the /etc/inetd.conf file to include:

amanda  dgram   udp     wait    root    /usr/local/lib/amanda/amandad amandad

Once that is taken care of, you should be able to add windoze drives to your server's "disklist" file.


Version 2.4.4

About the same time I finished this, Amanda 2.4.4 was released that included a HOWTO on how to make it work with CYGWIN. I've copied that file here. I still use my configure command (shown above) but with some variation to match the HOWTO.

./configure --without-server --without-force-uid  \
            --with-user=root --with-group=Administrators  \
            --libdir=/usr/local/lib/amanda --libexecdir=/usr/local/lib/amanda  \
            --localstatedir=/var/lib --sysconfdir=/etc

Version 2.4.4 of Amanda still has problems with CygWin's "if the last close of a socket comes from a child process, TCP sends a RST instead of a FIN" problem (described here) and thus still requires a patch (albeit a much smaller one than for v2.4.3) to run properly. The patch is here and is applied as such:

patch -s -p1 <amanda-2.4.4-cygwin.patch

If you have any questions, just email me.

-- Brian