[Rear-users] rear mkbackup on gnetoo fails

Schlomo Schapiro schlomo at schapiro.org
Wed Jul 6 20:40:50 CEST 2011


nice to have someone try out Gentoo again.

On 06/07/11 18:04, upen wrote:
> Hello,
> Not that I am not grateful to the developer for this wonderful tool,
> but rear (Relax & Recover Version 1.11.0 / 2011-05-24 10:39:25 +0200)
> failed to run mkbackup on my Gentoo(amd64) box.
> I wonder if someone can help.

Yes, you or any other Gentoo user here. Sadly nobody has been testing (and
telling us about it) ReaR on Gentoo for a very very long time. It is also not
part of (at least my) validation setup (and validating it at a certain date
holds little promise for the future). For example I am pretty sure that this
release has never been tested on Gentoo.

> Relax & Recover Version 1.11.0 / 2011-05-24 10:39:25 +0200
> The preparation phase  OK
> ERROR: Cannot determine filesystem info on 'rootfs'
> Your udev implementation (vol_id or blkid) does not recognize it.
> Finished in 1 seconds.
> Terminated

In general ReaR tries to understand your system from /proc/mounts. The more that
reflects that hard reality on disk the better chances of success, at least for
the dr code. With the layout code this is again different, I am happy it worked
for you although the final test is if the layout code would be able to rebuild
your system.

BTW, did you notice this?

> 2011-07-06 10:55:37 Including /etc/rear/local.conf
> /etc/rear/local.conf: line 10: syntax error near unexpected token `('
> /etc/rear/local.conf: line 10: `BACKUP_PROG_EXCLUDE = ('/tmp/*'
> '/nfs/*' '/nfs1/*') '
> 2011-07-06 10:55:37 Skipping /etc/rear/rescue.conf (file not found or empty)

It tells you two things:

1. the entire local.conf has been skipped due to this syntax error ( no blanks
surrounding a = allowed in Bash syntax, use VAR=value or VAR=( value value ).

2. That way you override whatever defaults would be set in BACKUP_PROG_EXCLUDE !
Use BACKUP_PROG_EXCLUDE=( "${BACKUP_PROG_EXCLUDE[@]}" value value value ) to
append to the array. See http://tldp.org/LDP/abs/html/arrays.html for more info.

To answer your other mail:

lilo is of course also supported on i386 and on x86_64 systems, though your
system appears to be i386. elilo is indeed supported only on Itanium because it
is the Itanium port of lilo.

More important is that you teach ReaR to actually use lilo to install your boot
loader. There is a general problem that it is near to impossible to tell with
any degree of accuracy how a system was booted (imagine first installing grub on
/dev/sda1 and then installing lilo on /dev/sda because you switched to
boot-from-software-raid. lilo would be used but the grub installation is still
there and would look fine).

The script that so far deals with boot loader installation on Gentoo is
usr/share/rear/finalize/Gentoo/i386/20_install_grub.sh and it assumes that grub
is used. So far SUSE_LINUX is the only platform where we try to guess the
bootloader (lilo or grub) because SUSE_LINUX puts that info into
/etc/sysconfig/bootloader. On all other distros we just assume that grub was
used because it is the default.

In your case you will have to contribute some code to ReaR that makes a similar
decision for Gentoo or that makes this a user configuration item if it is
technically impossible to know which bootloader was used.

BTW, how does Gentoo trigger a lilo reinstall after a kernel update? Maybe you
can detect this and use it as a trigger for lilo instead of Grub...

In any case, please submit patches via the sourceforge patches tracker.

Kind Regards,

PS: To dig deeper into ReaR you can use the various debug flags like -d and -D
to see more debugging output. That usually helps to locate the exact place where
something goes wrong.

More information about the rear-users mailing list