On Tue, 7 Feb 2012, Kenneth R Westerback wrote:

>On Tue, Feb 07, 2012 at 09:42:07AM -0500, Dave Anderson wrote:
>> I've got a system running amd64/mp -current (latest source update on
>> February 1st) and have noticed (for quite a while, actually) that the
>> nightly backup of / to /altroot wasn't working.  I finally got around to
>> looking into this and discovered that the /etc/daily script was
>> explicitly checking for /dev/whatever in the /altroot fstab entry -- but
>> I've been using DUIDs (as set up by the installer).
>>
>> Shouldn't the daily script be updated to handle DUIDs as well as
>> explicit devices in /etc/fstab?
>>
>>      Dave
>
>Does this diff work for you? Test with duid and without would be
>nice. :-)
>
>And don't be bashful. Anybody can test!
>
>.... Ken

That works for me, both ways.

Thanks,

        Dave

>Index: daily
>===================================================================
>RCS file: /cvs/src/etc/daily,v
>retrieving revision 1.72
>diff -u -p -r1.72 daily
>--- daily      6 Dec 2011 21:02:39 -0000       1.72
>+++ daily      7 Feb 2012 20:14:26 -0000
>@@ -90,20 +90,20 @@ if [ -f /var/account/acct ]; then
> fi
>
> # If ROOTBACKUP is set to 1 in the environment, and
>-# if filesystem named /altroot is type ffs, on /dev/* and mounted "xx",
>+# if filesystem named /altroot is type ffs and mounted "xx",
> # use it as a backup root filesystem to be updated daily.
> next_part "Backing up root filesystem:"
> while [ "X$ROOTBACKUP" = X1 ]; do
>-      rootbak=`awk '$2 == "/altroot" && $1 ~ /^\/dev\// && $3 == "ffs" && \
>-          $4 ~ /xx/ \
>-              { print substr($1, 6) }' < /etc/fstab`
>+      rootbak=`awk '$2 == "/altroot" && $3 == "ffs" && $4 ~ /xx/ \
>+              { print $1 }' < /etc/fstab`
>       if [ -z "$rootbak" ]; then
>               echo "No xx ffs /altroot device found in the fstab(5)."
>               break
>       fi
>-      bakdisk=${rootbak%[a-p]}
>+      rootbak=${rootbak#/dev/}
>+      bakdisk=${rootbak%%?(.)[a-p]}
>       sysctl -n hw.disknames | grep -Fqw $bakdisk || break
>-      bakpart=${rootbak#$bakdisk}
>+      bakpart=${rootbak##$bakdisk?(.)}
>       baksize=`disklabel $bakdisk 2>/dev/null | \
>               awk -v "part=$bakpart:" '$1 == part { print $2 }'`
>       rootdev=`mount | awk '$3 == "/" && $1 ~ /^\/dev\// && $5 == "ffs" \

-- 
Dave Anderson
<d...@daveanderson.com>

Reply via email to