Changeset 3660 in MondoRescue
- Timestamp:
- May 3, 2017, 11:27:10 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3.3/mindi/mindi
r3653 r3660 2617 2617 } 2618 2618 2619 CopyFromConf() { 2620 2621 conf=$1 2622 echo -en "INFO: Gathering dependencies of $conf.conf..." 2623 lis2=`grep -Ev '^#' $DEPLIST_DIR/$conf.conf | sort -u` 2624 noof_lines=`echo $lis2 | wc -w` 2625 progress=0 2626 lis="" 2627 # Get only the files which exist in that list 2628 # and potentially their symlink structure 2629 for f in $lis2; do 2630 if [ -d $f ]; then 2631 for g in `find $f`; do 2632 echo $g >> $MINDI_TMP/$conf.lis 2633 LocateDeps $g >> $MINDI_TMP/$conf.lis2 2634 done 2635 lis3="$lis3 $f" 2636 else 2637 if [ -r $f ]; then 2638 echo $f >> $MINDI_TMP/$conf.lis 2639 LocateDeps $f >> $MINDI_TMP/$conf.lis2 2640 fi 2641 fi 2642 progress=$(($progress+1)) 2643 LogProgress $progress $noof_lines 2644 done 2645 echo -e "$DONE" 2646 echo -en "INFO: Processing all dependencies links..." 2647 # And their deps 2648 lines=`sort -u $MINDI_TMP/$conf.lis $MINDI_TMP/$conf2.lis2` 2649 noof_lines=`echo $lines | wc -w` 2650 progress=0 2651 for f in $lines; do 2652 mr-read-all-link $f >> $MINDI_TMP/$conf.lis 2653 if [ "`echo $f | cut -c1`" = "/" ]; then 2654 j=`echo $f | cut -c2-` 2655 [ "$j" != "" ] && rm -f $mountpoint/$j 2656 fi 2657 progress=$(($progress+1)) 2658 LogProgress $progress $noof_line 2659 done 2660 echo -e "$DONE" 2661 finallist="" 2662 # Remove directories from the list, as tar/cp will create them anyway 2663 # and it may hurt if /lib is in it as on Debian/Ubuntu 2664 # recent bash says that -d is true for a link to a dir ! 2665 for f in `sort -u $MINDI_TMP/$conf.lis`; do 2666 if [ -e "$f" -a ! -d "$f" ] || [ -h "$f" ]; then 2667 # Do not overwrite files already in destination (avoid using option -n of cp not portable) 2668 if [ ! -e "$mountpoint/$f" ]; then 2669 finallist="$finallist $f" 2670 fi 2671 fi 2672 done 2673 # But adds the directory useful in $lis3 2674 fnllist=`echo $finallist | tr ' ' '\n' | sort -u | tr '\n' ' '` 2675 LogFile "INFO: Copying $conf related files with cp -a --parents $fnllist $lis3 -t $mountpoint/" 2676 cp -a --parents $fnllist $lis3 -t $mountpoint/ 2> $templog || LogAll "WARNING: Problem in $conf analysis" $templog 2677 rm -f $MINDI_TMP/$conf.lis $MINDI_TMP/$conf.lis2 2678 } 2619 2679 2620 2680 MakeBootInitFile() { … … 2698 2758 2699 2759 # Copy of files from the minimal env needed as per the deplist.d/minimal.conf (which includes all busybox deps) 2700 echo -en "INFO: Gathering dependencies of required files..." 2701 rm -f $MINDI_TMP/minimal.lis $MINDI_TMP/minimal2.lis 2702 lines=`cat $DEPLIST_DIR/minimal.conf | grep -vE " *#.*|^#" | sort -u` 2703 noof_lines=`echo $lines | wc -w` 2704 progress=0 2705 for f in $lines; do 2706 if [ -d $f ]; then 2707 for g in `find $f`; do 2708 echo $g >> $MINDI_TMP/minimal.lis 2709 LocateDeps $g >> $MINDI_TMP/minimal2.lis 2710 done 2711 else 2712 if [ -r $f ]; then 2713 echo $f >> $MINDI_TMP/minimal.lis 2714 LocateDeps $f >> $MINDI_TMP/minimal2.lis 2715 fi 2716 fi 2717 progress=$(($progress+1)) 2718 LogProgress $progress $noof_lines 2719 done 2720 echo -e "$DONE" 2721 echo -en "INFO: Processing all dependencies links..." 2722 lines=`sort -u $MINDI_TMP/minimal.lis $MINDI_TMP/minimal2.lis` 2723 noof_lines=`echo $lines | tr ' ' '\n' | wc -l` 2724 progress=0 2725 for f in $lines; do 2726 mr-read-all-link $f >> $MINDI_TMP/minimal.lis 2727 progress=$(($progress+1)) 2728 LogProgress $progress $noof_lines 2729 done 2730 echo -e "$DONE" 2731 # Initial / are trucated by tar 2732 finallist="" 2733 # Remove directories from the list, as tar/cp will create them anyway 2734 # and it may hurt if /lib is in it as on Debian/Ubuntu 2735 # recent bash says that -d is true for a link to a dir ! 2736 for f in `sort -u $MINDI_TMP/minimal.lis`; do 2737 if [ -e "$f" -a ! -d "$f" ] || [ -h $f ]; then 2738 # Do not overwrite files already in destination (avoid using option -n of cp not portable) 2739 if [ ! -e "$mountpoint/$f" ]; then 2740 finallist="$finallist $f" 2741 fi 2742 fi 2743 done 2744 rm -f $MINDI_TMP/minimal.lis $MINDI_TMP/minimal2.lis 2745 2746 fnllist=`echo $finallist | tr ' ' '\n' | sort -u | tr '\n' ' '` 2747 LogFile "INFO: Copy the minimal env with cp -a --parents $fnllist -t $mountpoint" 2748 cp -a --parents $fnllist -t $mountpoint 2> $templog || LogAll "WARNING: Problem in minimal analysis" $templog 2760 CopyFromConf minimal 2749 2761 2750 2762 # In case target /bin dir still doesn't exist, create it before using it … … 2787 2799 fi 2788 2800 if [ -x /sbin/udevd ] || [ -x /usr/bin/udevd ] || [ -x /usr/lib/systemd/systemd-udevd ] || [ -x /lib/systemd/systemd-udevd ]; then 2789 lis2=`grep -Ev '^#' $DEPLIST_DIR/udev.conf` 2790 lis="" 2791 # Get only the files which exist in that list 2792 # and potentially their symlink structure 2793 for i in $lis2; do 2794 if [ -h $i ]; then 2795 j=$i 2796 while [ -h $j ]; do 2797 lis="$lis $j" 2798 j=`readlink -f $j` 2799 done 2800 lis="$lis $j" 2801 elif [ -d $i ]; then 2802 lis3="$lis3 $i" 2803 elif [ -f $i ]; then 2804 lis="$lis $i" 2805 fi 2806 done 2807 # And their deps 2808 LocateDeps $lis > $MINDI_TMP/udev.lis 2809 for i in $lis; do 2810 if [ "`echo $i | cut -c1`" = "/" ]; then 2811 j=`echo $i | cut -c2-` 2812 [ "$j" != "" ] && rm -f $mountpoint/$j 2813 fi 2814 echo "$i" >> $MINDI_TMP/udev.lis 2815 done 2816 finallist="" 2817 # Remove directories from the list, as tar/cp will create them anyway 2818 # and it may hurt if /lib is in it as on Debian/Ubuntu 2819 # recent bash says that -d is true for a link to a dir ! 2820 for f in `sort -u $MINDI_TMP/udev.lis`; do 2821 if [ -e "$f" -a ! -d "$f" ] || [ -h "$f" ]; then 2822 # Do not overwrite files already in destination (avoid using option -n of cp not portable) 2823 if [ ! -e "$mountpoint/$f" ]; then 2824 finallist="$finallist $f" 2825 fi 2826 fi 2827 done 2828 # But adds the directory useful for udev in $lis3 2829 fnllist=`echo $finallist | tr ' ' '\n' | sort -u | tr '\n' ' '` 2830 LogFile "INFO: Copying udev related files with cp -a --parents $fnllist -t $mountpoint/" 2831 cp -a --parents $fnllist $lis3 -t $mountpoint/ 2> $templog || LogAll "WARNING: Problem in udev.lis analysis" $templog 2832 rm -f $MINDI_TMP/udev.lis 2801 CopyFromConf udev 2833 2802 else 2834 2803 LogAll "WARNING: udevd daemon not in standard place (/sbin or /usr/bin)"
Note:
See TracChangeset
for help on using the changeset viewer.