# ***************************** This script was written by: # ***************************** Gabriel Homeier # ***************************** 7/27/2006 # ***************************** It should be easy enough for a beginner to follow # ***************************** Have fun with Gentoo ;-) #!/bin/bash clear echo "//----------------------------------------------------------------\\\\" echo "||----------------------------------------------------------------||" echo "|| This script will make a backup of all of the packages ||" echo "|| you have compiled and installed making re-installation ||" echo "|| with this script a breeze. ||" echo "|| ||" echo "|| *** If you choose option #1 you must be root!!! *** ||" echo "|| ||" echo "|| *** If you choose option #2, you MUST run this *** ||" echo "|| *** script from /mnt/gentoo and have your portage *** ||" echo "|| *** snapshot and stage 3 tarball in /mnt/gentoo *** ||" echo "|| *** along with your backup packages. *** ||" echo "|| ||" echo "|| Please choose from the following options: ||" echo "|| ||" echo "|| 1. Backup ||" echo "|| 2. Restore From Backup ||" echo "|| ||" echo "||________________________________________________________________||" echo "\\\\________________________________________________________________//" read Option case "$Option" in "1" ) cd /usr/portage/packages/All if [ $PWD == "/usr/portage/packages/All" ] then # Remove Packages Because Some May Be Old echo "Removing Previous Packages" rm * else echo "failed to cwd /usr/portage/packages/All" exit 0 fi echo "Gathering Information On Installed Programs" cd /var/db/pkg if [ $PWD == "/var/db/pkg" ] then # Make Packages Of All Installed Applications array=(*) for directory in "${array[@]}" do { echo "changing to ${directory}" cd "$directory" quickpkg $(ls) cd .. } done else echo "failed to cwd /var/db/pkg" exit 0 fi cd /usr/portage/packages/All if [ $PWD == "/usr/portage/packages/All" ] then # Make An Archive Of The Packages We've Made mkdir packages mv * packages tar -cvf packages.tar packages bzip2 -zf9 packages.tar # Label The Archive So We Know What It's For mv packages.tar.bz2 $HOSTNAME.packages.tar.bz2 # Move The Archive To A Place We Will See It, And Move To Safe Storage mv $HOSTNAME.packages.tar.bz2 /root # Backup Important Settings Or We Will Be Hurtin mkdir etc cd etc cp -a /etc . cd .. # Make An Archive Of Important Settings To Save Space tar -cvf $HOSTNAME.etc.tar etc bzip2 -zf9 $HOSTNAME.etc.tar # Again We Move It To A Noticeable Place mv $HOSTNAME.etc.tar.bz2 /root # Backup Our User Settings mkdir home cd home cp -a /home . cd .. # Archive Them tar -cvf $HOSTNAME.home.tar home bzip2 -zf9 $HOSTNAME.home.tar # Move Them mv $HOSTNAME.home.tar.bz2 /root fi ;; # This Starts The Re-Install Section "2" ) if [ -e stage3-x86-200?.?.tar.bz2 ] then if [ $PWD == "/mnt/gentoo" ] then tar -jxvpf stage3-x86-200?.?.tar.bz2 else echo "Please move your stage 3 bz2 file to /mnt/gentoo" echo "This script should be there too." exit 0 fi else echo "stage 3 bz2 file not found in /mnt/gentoo" echo "Please move this script and your stage 3 bz2 file" echo "and your portage snapshot to /mnt/gentoo and run this again" exit 0 fi if [ -e portage-*.tar.bz2 ] then if [ $PWD == "/mnt/gentoo" ] then tar -jxvf portage-*.tar.bz2 -C /mnt/gentoo/usr else echo "Please move your portage snapshot to /mnt/gentoo" echo "This script should be there too." exit 0 fi else echo "portage snapshot not found in /mnt/gentoo" echo "Please move this script and your stage 3 bz2 file" echo "and your portage snapshot to /mnt/gentoo and run this again" exit 0 fi echo "Please choose one of the following processors:" echo "1. Pentium classic (i586)" echo "2. I don't know but it's not a Pentium classic (-mtune=i686)" echo "3. it's a Pentium 2 (-mtune=pentium2)" ;; * ) echo "Error." echo "You must choose 1 or 2." echo "Exiting" ;; exit 0