Προς το περιεχόμενο

System tar & restore Project


tritonas00

Προτεινόμενες αναρτήσεις

4. Δεν εχω ανεβασει ακομα κωδικα μιας και δεν το εχω δοκιμασει πληρως.

 

1,2,5. Σωστα, θα τα κοιταξω.

 

Εγινε κανονικα το restore δηλαδη ? Το συστημα επαιξε ?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 1,6k
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Εγινε κανονικα το restore δηλαδη ? Το συστημα επαιξε ?

 

ναι κανονικα , grub , αρχεια συστηματος , permissions αυτων , ολα στην θεση τους.Ακομα και το swap ενεργοποιηθηκε κανονικα.

Boot-αρε κανονικα , απλα μετα που πηγε να σηκωσει Χ , εφαγε μια φρικη , μιας και ερχοταν απο φορητο με ΑΤΙ και μπηκε σε vmware χωρις καν να ειναι τα απαραιτητα πακετα εγκατεστημενα...

Τεσπα , μικρο το κακο.Θεωρω αν γινοταν restore σε μηχανημα με ΑΤΙ ή εστω και με nvidia να πηγαινε πιο ομαλα στο θεμα Χ.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Επειδη μετα απο καμια βδομαδα θα κλειδωσει το αρχικο post και δεν θα μπορω να κανω επεξεργασια, δινω ενα link οπου εκει θα ανεβαζω καθε νεα εκδοση.

 

Τωρα παω να δοκιμασω το ξεχωριστο home σε ενα φλασακι.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@mphxths Το έχω δοκιμάσει να το βάλω από σύστημα με nvidia σε συστημα με ati. όλα πήγαν καλά παρα μόνο ο X που δεν ξεκίνησε προφανώς. Επαγκατέστησα τον nvidia και έβαλα τον ati και όλα μια χαρά.

 

Ο tritonas αυτό που κάνει είναι να έχει μια εγκατάσταση σε vm με vesa (και δηλωμένο στο xorg.conf) και nomodeset στον grub. Κατά 99% θα παίξει παντού λοιπόν και μετά θα περάσεις τους απαραίτητους drivers. Α! και wicd για το internet με dhcp.

 

Το δοκίμασα και αυτό σε ένα τρίτο σύστημα και όλα πήγαν μια χαρά. Άνοιξε κανονικά ο X και μετά πέρασα τον catalyst.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

μάλλον παίζει και το restore έτσι

είναι βέβαια μόνο τοπικά αλλά θα το φτιάξω κι αυτό

 

 

>
#!/bin/bash

clear
echo "`date +%A-%d-%m-%Y-%R`"

BRZENITY=$(which zenity 2>/dev/null)
TEXTMODE=false

if [ "x$BRZENITY" = "x" ]; then
TEXTMODE=true
echo "Running in text mode"
fi


echo "---------------READING INPUT VARIABLES---------------"
while [ ! -n "$input_variable" ]
do
if [ $TEXTMODE = 'false' ]; then
input_variable=$(find /dev -mindepth 1 -maxdepth 1 -name "*[sh]d[a-z][0-9]" -printf 'FALSE\0%p\0' | xargs -0 zenity --width=500 --height=300 --text "Select target partition" --list --radiolist --multiple --column ' ' --column 'Partitions'); echo $input_variable
else
echo " "
ls /dev/[sd]d[a-z][0-9]
echo "Select target partition:"
read input_variable
fi
done

while [ ! -n "$input_variable2" ]
do
if [ $TEXTMODE = 'false' ]; then
input_variable2=$(zenity --width=500 --height=300 --list --text "Filesystem (for fstab)" --radiolist --column "Filesystems" --column "list" FALSE ext2 FALSE ext3 FALSE ext4 FALSE btrfs); echo $input_variable2
else
echo " "
echo "ext2, ext3, ext4, btrfs"
echo "Filesystem (for fstab):"
read input_variable2
fi
done

if [ $TEXTMODE = 'false' ]; then
input_variable3=$(find /dev -mindepth 1 -maxdepth 1 -name "*[sh]d[a-z][0-9]" -printf 'FALSE\0%p\0' | xargs -0 zenity --width=500 --height=300 --text "Optional - Press cancel to skip
Select swap partition (for fstab)" --list --radiolist --multiple --column ' ' --column 'Partitions'); echo $input_variable3
else
echo " "
ls /dev/[sd]d[a-z][0-9]
echo "Select swap partition (for fstab):"
echo "Optional - Press ENTER to skip"
read input_variable3
fi

while [ ! -n "$input_variable1" ]
do
if [ $TEXTMODE = 'false' ]; then
input_variable1=$(find /dev -mindepth 1 -maxdepth 1 -name "*[sh]d[a-z]" -printf 'FALSE\0%p\0' | xargs -0 zenity --width=500 --height=300 --text "Where to install grub" --list --radiolist --multiple --column ' ' --column 'Hard Drives'); echo $input_variable1
else
echo " "
ls /dev/[sd]d[a-z]
echo "Where to install grub:"
read input_variable1
fi
done

echo "---------------MAKING WORKING DIRECTORY---------------"
mkdir /media/target 2>&1 && echo SUCCESS || echo WARNING
sleep 1

echo "---------------MOUNTING $input_variable---------------"
mount $input_variable /media/target 2>&1 && echo SUCCESS || echo WARNING

echo "---------------GETTING TAR IMAGE---------------"


while [ ! -f /media/target/fullbackup.tgz ]
do

if [ $TEXTMODE = 'false' ]; then

file=$(zenity --width=500 --height=300 --list --text "Where is the tar file
Downloaded files are stored in $input_variable which is mounted in /media/target" --column File "Browse" "Enter URL" "Protected URL")



if [ "$file" = "Browse" ]; then

IFS=$'\n' input_variable4=$(zenity --width=500 --height=300 --file-selection --separator=$'\n' --file-filter=*.tgz); echo $input_variable4
if [ -n "$input_variable4" ]
then
echo "Copying, please wait"
cp "${input_variable4[@]}" "/media/target/fullbackup.tgz" 2>&1 | zenity --width=500 --height=100 --no-cancel --progress --pulsate --text "Copying file in $input_variable as fullbackup.tgz" --auto-close
fi

elif [ "$file" = "Enter URL" ]; then

input_variable5=$(zenity --width=500 --height=300 --entry --text=URL); echo $input_variable5
if [ -n "$input_variable5" ]
then
cd /media/target
echo "Downloading, please wait"
wget $input_variable5 2>&1 | \sed -u 's/^.* \+\([0-9]\+%\) \+\([0-9.]\+[GMKB]\) \+\([0-9hms.]\+\).*$/\1\n# Downloading... \2 (\3)/' | \zenity --width=500 --height=100 --progress --title="Downloading file in /media/target" --no-cancel --auto-close
fi

elif [ "$file" = "Protected URL" ]; then

input_variable6=$(zenity --width=500 --height=300 --entry --text=URL); echo $input_variable6
if [ -n "$input_variable6" ]
then
USERNAME=$(zenity --width=500 --height=100 --entry --text=USERNAME --title="Enter your Username" )
PASSWORD=$(zenity --width=500 --height=100 --entry --hide-text --text=PASSWORD --title="Enter your Password" )
cd /media/target
echo "Downloading, please wait"
wget --user=$USERNAME --password=$PASSWORD $input_variable6 --tries=2 2>&1 | \sed -u 's/^.* \+\([0-9]\+%\) \+\([0-9.]\+[GMKB]\) \+\([0-9hms.]\+\).*$/\1\n# Downloading... \2 (\3)/' | \zenity --width=500 --height=100 --progress --title="Downloading file in /media/target" --no-cancel --auto-close
fi

fi

if [ ! -f /media/target/fullbackup.tgz ]
then
echo "Browse for a .tgz file.
Downloaded files are stored in $input_variable which is mounted in /media/target"
fi

else
echo " "
echo "Where is the tar file?"
echo "Insert path:"
read file
cp "${file}" "/media/target/fullbackup.tgz"
fi

done



if [ $TEXTMODE = 'false' ]; then
zenity --question --title='Continue?' --text='Press "Yes" to restore the system, or "No" to cancel operation.'
else
echo " "
echo "Continue?"
echo "Insert Y to restore the system, or N to cancel"
read a

if [ $a = 'N' ]; then
exit
fi

if [ $? != "0" ]; then
echo "---------------CLEANING AND UNMOUNTING---------------"
cd ~
rm /media/target/fullbackup.tgz
umount $input_variable
sleep 1
rm -r /media/target 2>&1 && echo SUCCESS || echo FAILED
exit
else


(
echo "5" ; sleep 1
echo "# Starting up" ; sleep 1

echo "10" ; sleep 1
echo "# Extracting files in $input_variable..." ; sleep 1


echo "---------------EXTRACTING---------------"
cd /media/target
tar xvpfz fullbackup.tgz -C /media/target 2>&1 && echo SUCCESS || echo WARNING
cd ~

echo "50" ; sleep 1
echo "# Mounting /dev /proc and /sys" ; sleep 1
echo "---------------MOUNTING /dev /proc /sys---------------"
mount --bind /dev /media/target/dev
mount -t proc /proc /media/target/proc
mount -t sysfs /sys /media/target/sys 2>&1 && echo SUCCESS || echo FAILED

echo "60" ; sleep 1
echo "# Installing and updating grub2 on $input_variable1 (MBR)" ; sleep 1
echo "---------------INSTALLING AND UPDATING GRUB 2 IN $input_variable1---------------"
chroot /media/target grub-install --target=i386-pc $input_variable1
cp /media/target/usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /media/target/boot/grub/locale/en.mo
chroot /media/target grub-mkconfig -o /boot/grub/grub.cfg 2>&1 && echo SUCCESS || echo FAILED

echo "70" ; sleep 1
echo "# Ganerating fstab..." ; sleep 1
echo "tmpfs /tmp tmpfs nodev,nosuid 0 0" > /media/target/etc/fstab
echo "$input_variable / $input_variable2 defaults,noatime 0 1" >> /media/target/etc/fstab

if [ -n "$input_variable3" ]
then
echo "$input_variable3 swap swap defaults 0 0" >> /media/target/etc/fstab
fi


sed -n 's|^/dev/\([sh]d[a-z][0-9]\).*|\1|p' /media/target/etc/fstab2

while read LINE; do
UUID=`ls -l /dev/disk/by-uuid | grep "$LINE" | sed -n 's/^.* \([^ ]*\) -> .*$/\1/p'`
sed -i "s|^/dev/${LINE}|UUID=${UUID}|" /media/target/etc/fstab
done rm /media/target/etc/fstab2

echo "---------------READING GENERATED FSTAB---------------"
cat /media/target/etc/fstab

echo "80" ; sleep 1
echo "# Building initramfs image..." ; sleep 1

echo "---------------BUILDING INITRAMFS IMAGE---------------"
chroot /media/target mkinitcpio -p linux 2>&1 && echo SUCCESS || echo WARNING

echo "90" ; sleep 1
echo "# Ganerating locales..." ; sleep 1

echo "---------------GENERATING LOCALES---------------"
chroot /media/target locale-gen 2>&1 && echo SUCCESS || echo FAILED

echo "100" ; sleep 1
echo "# Done." ; sleep 1


) | tee >( zenity --width=500 --height=100 --progress --no-cancel --title="Restore" --percentage=0 --auto-close )

if [ $TEXTMODE = 'false' ]; then
zenity --info --text="Completed.Press OK to unmount and clean, then reboot your system." --title=Completed
else
echo "Completed. Press ENTER to unmount and clean, then reboot your system"
read a
fi

sleep 2

echo "---------------CLEANING AND UNMOUNTING---------------"

cd ~
umount /media/target/dev
umount /media/target/proc
umount /media/target/sys
rm /media/target/fullbackup.tgz
umount $input_variable
sleep 1
rm -r /media/target 2>&1 && echo SUCCESS || echo FAILED

fi

 

 

δεν κάνεις κάνα git?

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Και ναι μολις επανεφερα επιτυχως σε ξεχωριστο /home :-D

 

Παει να προστεθει και το ξεχωριστο /boot

 

warlock thanks !

 

ειναι νωρις για git πιστευω.

 

Μην βιαζεσαι, γιατι εχουν να γινουν αλλαγες στα scripts. Οποτε οταν φτασουν σε μια σταθερη μορφη τοτε κανεις ανετα το text mode.

 

Δεν θα κανεις την ιδια δουλεια σε καθε αλλαγη :P

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Και ναι μολις επανεφερα επιτυχως σε ξεχωριστο /home :-D

 

Παει να προστεθει και το ξεχωριστο /boot

 

warlock thanks !

 

ειναι νωρις για git πιστευω.

 

Μην βιαζεσαι, γιατι εχουν να γινουν αλλαγες στα scripts. Οποτε οταν φτασουν σε μια σταθερη μορφη τοτε κανεις ανετα το text mode.

 

Δεν θα κανεις την ιδια δουλεια σε καθε αλλαγη :P

σε git μπορεί να το κάνει πολύ ευκολότερα αλλάζοντας μόνο τα σημεία που θέλει, για αυτό στο λέει :P

 

δεν έχει νωρίς στο git, push it

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

martinoff +1

 

Παλιά κινέζικη παροιμία: "Οτιδήποτε είναι πάνω 20 γραμμές (χωρίς τα σχόλια), βάλε git."

 

Git repo ακόμη και για τη λίστα με τα ψώνια από το μανάβη :)

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ακόμα δεν το δοκίμασα, αλλά βλέποντας το λινκ στην πρώτη σελίδα μπήκα να σου πω για άλλη μια φορά να φτιάξεις κάπου λογαριασμό και να το gitαρεις! Και από ότι είδα στην τελευταία σελίδα είμαστε πολλοί που το λέμε :P Τι περιμένεις;;;;;;;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Τι περιμένεις;;;;;;;

 

Λιγο να γιανω, γιατι ειμαι 38 πυρετο :-(

 

https://github.com/t...tar-and-restore

 

Επειδη δεν εχω ξανα ασχοληθει, πως δουλευει το ολο πραμα ?

 

Κανω τις αλλαγες πχ σε ενα αρχειο και μετα ?

 

git commit -m "comment" -a

 

και

 

git push origin master για να συγχρονίσει ?

 

--------------------------------------------------

 

edit: ναι ετσι γινεται τελικα :P

Επεξ/σία από tritonas00
  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ναι έτσι είναι (ένας από τους πολλούς τρόπους). Τώρα όποιος θέλει κάνει fork και αλλάζει ό,τι θέλει και σου στέλνει pull request. Βλέπεις τον κώδικά του και αν σου αρέσει τον περνάς στο δικό σου repo που είναι το "official".

 

Το github έχει απλούς οδηγούς για διάφορες λειτουργίες. Αυτοί που κάνουν fork καλό είναι να εισάγουν και το δικό σου repo ως remote για να παρακολουθούν τις αλλαγές και επίσης να δουλεύουν με branches ώστε να αποφεύγονται άπειρα άσκοπα merge commits όταν εισάγεις μια pull request.

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

https://github.com/t.../commits/master

 

Προστεθηκαν :

 

Added check for root privileges ( thanks warlock)

Added support for separate /home partition

 

Warlock μετακινησα το clear πανω απο τον ελεχγο, στο restore script

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...