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

System tar & restore Project


tritonas00

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

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

 

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

 

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

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • Απαντήσεις 1,6k
  • Δημιουργία
  • Τελευταία απάντηση

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

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

Δημοφιλή Μηνύματα

ABOUT:   Το System tar & restore εχει στοχο να απλοποιησει την διαδικασια δημιουργιας backup μιας GNU/Linux εγκαταστασης και την επαναφορα αυτου χρησιμοποιωντας τo tar ή την μεταφορα υπαρχουσας

καθισα λιγο και σουλουπωσα το gui  

Update - Στοχοι για την 5.0   1. Support για encrypted root σε ολα τα flavors (απλο*, LVM on LUKS*, LUKS on LVM*, LUKS on mdadm) 2. Ξαναγραφτηκε ολο το EFI subsystem: - Προαιρετικο ESP (αν δεν θελου

Δημοσιευμένες Εικόνες

Εγινε κανονικα το 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
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

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

Συνδεθείτε τώρα

  • Δημιουργία νέου...

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.