source: branches/2.2.2/mondo/src/restore-scripts/mondo/hack-lilo @ 1315

Last change on this file since 1315 was 1315, checked in by bruno, 12 years ago

Log files are now consistent: mondoarchive.log for mondoarchive (containing also mindi.log) and mondorestore.log for mondorestore (copied from /tmp (ram) to /var/log (disk) at the end of the restore)
One include has been created for each bianry containing only that declaration ofr the moment, but which will be extended to include all local definitions (ps_* e.g.)
Doc updated accordingly
LOGFILE in restore process is now passed in the environment and not duplicated anymore
LogIt? is not redifined either
LOGFILE should be put in environment by mondoarchive for mindi's usage but that's a step left for later.

  • Property svn:keywords set to Id
  • Property svn:unix-mode set to 755
File size: 3.3 KB
Line 
1#!/bin/sh
2#
3# $Id: hack-lilo 1315 2007-04-16 14:13:59Z bruno $
4#
5
6
7GetDevFromLine() {
8    echo "$1" | cut -d'=' -f2 | sed s/' '//
9}
10
11
12GetOldFstabMountpoint() {
13    local res
14    res=`tr -s '\t' ' ' < $old_fstab | grep "$1" | cut -d' ' -f2`
15#    echo "old_fstab = $old_fstab" >> /dev/stderr
16    if [ "$res" = "" ] ; then
17#   echo "OK, resB" >> /dev/stderr
18    res=`tr -s '\t' ' ' < $old_mountlist | grep " $1 " | cut -d' ' -f1`
19    fi
20    echo "$res"
21}
22
23
24GetNewFstabMountpoint() {
25    for i in fd0 fd0u1722 fd0h1440 fd0H1440 cdrom cdrw cdrom2 ; do
26    if [ "$1" = "/dev/$i" ] ; then
27        echo "/dev/$i"
28        return
29    fi
30    done
31    old_mountpoint=`GetOldFstabMountpoint $1`
32#    echo "old_mountpoint = $old_mountpoint" >> /dev/stderr
33    new_mountpoint=`tr -s '\t' ' ' < $new_mountlist | grep " $old_mountpoint" | cut -d' ' -f1`
34    if [ "$new_mountpoint" = "" ] ; then
35    mtpt=`tr -s '\t' ' ' < $new_mountlist | grep " $old_mountpoint " | cut -d' ' -f2`
36    dev=`tr -s '\t' ' ' < $new_mountlist | grep " $mtpt " | cut -d' ' -f1`
37#   echo "NEW_MP (A) = $dev" >> /dev/stderr
38#    else
39#   echo "NEW_MP (B) = $new_mountpoint" >> /dev/stderr
40    fi
41}
42
43
44
45ProcessBigHack() {
46    local incoming dev newdev col2 col1_new
47    incoming="$1"
48#    echo "incoming = $1" >> /dev/stderr
49    dev=`GetDevFromLine "$incoming"`
50#    GetOldFstabMountpoint $dev
51    newdev=`GetNewFstabMountpoint $dev`
52    if [ ! "$newdev" ] ; then
53    col2=`grep "$dev " $old_mountlist | cut -d' ' -f2`
54    col1_new=`grep " $col2 " $new_mountlist | cut -d' ' -f1`
55    newdev="$col1_new"
56    if [ ! "$newdev" ] ; then
57        newdev=$dev
58    fi
59    fi
60#    old_fstab_line=`grep "$dev" $new_fstab`
61    [ "$2" = "other" ] || echo -e -n "\t"
62    echo -e "$2=$newdev"
63    echo "$newdev" >> $bootlistfile
64}
65
66ProcessOther() {
67    ProcessBigHack "$1" "other"
68}
69
70
71ProcessRoot() {
72    ProcessBigHack "$1" "root"
73}
74
75
76
77ProcessLilo() {
78    local incoming bonks blanklines
79    read incoming
80    bonks=0
81    blanklines=0
82    while [ "$blanklines" -lt "5" ] ; do
83    if [ "$incoming" = "" ] ; then
84        blanklines=$(($blanklines+1))
85            read incoming
86            continue
87        fi
88        blanklines=0
89        if [ "`echo "$incoming" | grep "#"`" != "" ] ; then
90            echo "$incoming"
91    elif [ "`echo "$incoming" | grep "other.*="`" != "" ] ; then
92        ProcessOther "$incoming"
93        bonks=$(($bonks+1))
94    elif [ "`echo "$incoming" | grep "root.*="`" != "" ] ; then
95        ProcessRoot "$incoming"
96        bonks=$(($bonks+1))
97    elif [ "`echo "$incoming" | grep "image.*="`" != "" ] ; then
98        bonks=$(($bonks+1))
99        echo "$incoming"
100    else
101        if [ "$bonks" -gt "0" ] && [ "`echo "$incoming" | grep "image"`" = "" ]  ; then
102        echo -e -n "\t"
103        fi
104        echo "$incoming"
105    fi
106    read incoming
107    done
108}
109
110
111# ------------------ main ------------------
112
113LogIt "hack-lilo --- starting"
114
115bootlistfile=/tmp/partitions-to-make-bootable.txt
116> $bootlistfile
117
118if [ "$#" -ne "6" ] ; then
119    LogIt "hack-lilo <old mountlist> <old fstab> <old lilo> <new mountlist> <new fstab> <new lilo>" 1
120    LogIt "NB: the new lilo file is outgoing; all others are incoming." 1
121    exit 1
122fi
123
124old_mountlist=$1
125old_fstab=$2
126old_lilo=$3
127new_mountlist=$4
128new_fstab=$5
129outfile=$6
130
131> $outfile
132ProcessLilo < $old_lilo >> $outfile
133chmod 600 $outfile
134sort -u $bootlistfile -o $bootlistfile
135
136#------ disabled 12/10/01 (doesn't do anything anyway *g*)
137#make-me-bootable $bootlistfile > /tmp/make-me-bootable.log 2> /tmp/make-me-bootable.log
138
139LogIt "hack-lilo --- leaving"
140exit 0
Note: See TracBrowser for help on using the repository browser.