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

update-grub debian προβλημα.


SV8XXX

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

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

Με ενα script που εφτιαξα, κανω τα εξης:

 Σε ενα διαμερισμα δισκου το /dev/sda1: LABEL="lab" UUID="0d1e1aac-9f84-4d35-84f6-edd1a1ee04f6"

αντιγραφω το υπαρχον συστημα μου που ειναι το: /dev/sdc1: UUID="1a74804c-58d1-40e9-b115-d9c66a6b97f5"

Το script τελειωνει με την εντολη update-grub.

Μετα το reboot διαλεγω το "αντγραφο" partition κανονικα απο τον grub. O οποιος με γυρναει στο "κανονικο"

συστημα αντι να με παει στο αντιγραφο.

 

Στο grub.cfg μου τα μπερδευει. Τα βρισκει ολα τα partition κανονικα, στο συγκεκριμενο ενω βαζει

search --no-floppy --fs-uuid --set=root 0d1e1aac-9f84-4d35-84f6-edd1a1ee04f6 σωστα

σεταρει για root λαθος root=UUID=1a74804c-58d1-40e9-b115-d9c66a6b97f5

Αμα το διορθωσω με το χερι ειναι ολα ενταξει.Μπουταρει κανονικα.

 

Τι λαθος κανω ??

 

 

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Debian GNU/Linux (jessie/sid)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-0d1e1aac-9f84-4d35-84f6-edd1a1ee04f6' {
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' 0d1e1aac-9f84-4d35-84f6-edd1a1ee04f6
else
search --no-floppy --fs-uuid --set=root 0d1e1aac-9f84-4d35-84f6-edd1a1ee04f6
fi
linux /boot/vmlinuz-3.10-2-amd64 root=UUID=1a74804c-58d1-40e9-b115-d9c66a6b97f5 ro clocksource=acpi_pm quiet nomodeset nouveau.modeset=0
initrd /boot/initrd.img-3.10-2-amd64

 

 

 

 

[chris@debian ~]$ sudo blkid
[sudo] password for chris:
/dev/sda1: LABEL="lab" UUID="0d1e1aac-9f84-4d35-84f6-edd1a1ee04f6" TYPE="ext4"
/dev/sda4: LABEL="files" UUID="b16d69cc-ecdf-4e1e-ab01-eba82bf9d0b5" TYPE="ext4"
/dev/sdb1: LABEL="win7" UUID="0F9DB778409046AF" TYPE="ntfs"
/dev/sdb2: LABEL="winfiles" UUID="592668265F15FC60" TYPE="ntfs"
/dev/sdc1: UUID="1a74804c-58d1-40e9-b115-d9c66a6b97f5" TYPE="ext4" LABEL="root"
/dev/sdc2: LABEL="home" UUID="32a101d0-dd82-4f1a-adcc-4a4fabc27a4c" TYPE="ext4"
[chris@debian ~]$ sudo fdisk -l

Disk /dev/sda: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders, total 1250263728 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000406bf

Device Boot Start End Blocks Id System
/dev/sda1 * 63 124391294 62195616 83 Linux
/dev/sda4 124391295 1250258624 562933665 83 Linux

Disk /dev/sdc: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003627f

Device Boot Start End Blocks Id System
/dev/sdc1 * 63 39070079 19535008+ 83 Linux
/dev/sdc2 39071744 1465147391 713037824 83 Linux

Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x831c7fb5

Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 102402047 51200000 7 HPFS/NTFS/exFAT
/dev/sdb2 102402048 312580095 105089024 7 HPFS/NTFS/exFAT
[chris@debian ~]$

 

 

Το script ΠΡΟΣΟΧΗ αν χρησιμοποιηθει για αλλον σκοπο απο οτι φτιαχτηκε ειναι επικινδυνο

 

 

#!/bin/bash

echo " Clone your linux to an other partition or disk"
# Author:  10/01/11
echo
select i in "Make backup your system? " "Make backup only your /? " "Reinstall your destination system? " "Quit " "Reboot "
do
case $i in
"Make backup your system? ")
cd /home/chris/Backups/my_backup
tar cvpzf backroot_$dt.tar --exclude=/proc/* --exclude=/lost+found/* --exclude=/media/* --exclude=/dev/* --exclude=/sys/* --exclude=/tmp/* --exclude=/home/* /
wait
cd /home/chris
ls -a | grep '^\...' | xargs tar cvzpf /home/chris/Backups/my_backup/backhome.tar --exclude=.thumbnails --exclude=.cache --exclude=.opera --exclude=.mozilla --exclude=.shotwell --exclude=.googleearth --exclude=.wallpapers --exclude=.local/share/Trash;;
"Make backup only your /? ")
cd /home/chris/Backups/my_backup
tar cvpzf backroot.tar --exclude=/proc/* --exclude=/etc/fstab --exclude=/lost+found/* --exclude=/media/* --exclude=/dev/* --exclude=/sys/* --exclude=/tmp/* --exclude=/home/* /;;
"Reinstall your destination system? ")
mkdir /media/lab
mount /dev/sda1 /media/lab
wait
rm -rf /media/lab/*
wait
cd /home/chris/Backups/my_backup
tar xvpfz backroot.tar -C /media/lab
wait
cd ./
mkdir /media/lab/home/chris
wait
cd /home/chris/Backups/my_backup
tar xvpf backhome.tar -C /media/lab/home/chris
wait
cd ./
cp -f ./fstab /media/lab/etc/fstab
mkdir /media/lab/home/chris/Desktop
chown -R chris /media/lab/home
#chmod 644 /media/lab/home/chris/.dmrc
update-grub
umount /dev/sda1
rm -rf /media/lab;;
"Quit ") echo "Bye $USER" all its ok... ; exit;;
"Reboot ")
shutdown -r now;;
esac
done

 

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

E ποιος δεν το ειδε!

Το δικο μου ειναι για αλλη δουλεια εξαλλου ειναι καταδικο μου :-D

Το θεμα ειναι γιατι το update-grub μπερδευεται αν λυθει αυτο το θεματακι  ειμαι οκ

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

χωρις να ειμαι και ειδημων στο θεμα πιστευω οτι το upgrade-grub δεν θα δουλεψει ετσι οπως το εκτελεις.

 

Γιατι κανεις mount το target partition και εκτελεις το upgrade-grub  "απεξω".

 

Λογικα και κανονικα πρεπει να κανεις mount το target partition μαζι με ολη την τρελοπαρεα(=proc.dev.κλπ) και να εκτελεις το upgrade-grub απο μεσα , δηλαδη εχοντας κανει chroot στην target εγκατασταση ετσι ωστε το upgrade-grub να διαβασει σωστα partitions και uuids

 

ΥΓ : για την τρελοπαρεα γοογλαρε πως γινονται mount τα proc  , bind , sys οταν χρειαζονται για chroot καταστασεις....

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

Αυτο που λεει ο μπηχτης ειναι, θες chroot.

 

hints απο το s.t.a.r

 

 

 

prepare_chroot() {
  echo -e "\n${BR_SEP}PREPARING CHROOT ENVIROMENT"
  echo -e "Binding /run"
  mount --bind /run /mnt/target/run
  echo -e "Binding /dev"
  mount --bind /dev /mnt/target/dev
  echo -e "Binding /dev/pts"
  mount --bind /dev/pts /mnt/target/dev/pts
  echo -e "Mounting /proc"
  mount -t proc /proc /mnt/target/proc
  echo -e "Mounting /sys"
  mount -t sysfs /sys /mnt/target/sys
}

......

install_bootloader() {
  if [ -n "$BRgrub" ]; then
    echo -e "\n${BR_SEP}INSTALLING AND UPDATING GRUB2 IN $BRgrub"
    if [[ "$BRgrub" == *md* ]]; then
      for f in `cat /proc/mdstat | grep $(echo "$BRgrub" | cut -c 6-) | grep -oP '[hs]d[a-z]'` ; do
        if [ "$BRdistro" = "Arch" ]; then
          chroot /mnt/target grub-install --target=i386-pc --recheck /dev/$f || touch /tmp/bl_error
        elif [ "$BRdistro" = "Debian" ]; then
          chroot /mnt/target grub-install --recheck /dev/$f || touch /tmp/bl_error
        elif [ "$BRdistro" = "Fedora" ]; then
          chroot /mnt/target grub2-install --recheck /dev/$f || touch /tmp/bl_error
        fi
      done
    elif [ "$BRdistro" = "Arch" ]; then
      chroot /mnt/target grub-install --target=i386-pc --recheck $BRgrub || touch /tmp/bl_error
    elif [ "$BRdistro" = "Debian" ]; then
      chroot /mnt/target grub-install --recheck $BRgrub || touch /tmp/bl_error
    elif [ "$BRdistro" = "Fedora" ]; then
      chroot /mnt/target grub2-install --recheck $BRgrub || touch /tmp/bl_error
    fi

    if [ "$BRdistro" = "Fedora" ]; then
      if [ -f /mnt/target/etc/default/grub ]; then
        mv /mnt/target/etc/default/grub /mnt/target/etc/default/grub-old
      fi
      echo 'GRUB_TIMEOUT=5' > /mnt/target/etc/default/grub
      echo 'GRUB_DEFAULT=saved' >> /mnt/target/etc/default/grub
      echo 'GRUB_CMDLINE_LINUX="vconsole.keymap=us quiet"' >> /mnt/target/etc/default/grub
      echo 'GRUB_DISABLE_RECOVERY="true"' >> /mnt/target/etc/default/grub
      echo -e "\n${BR_SEP}Generated grub2 config" >> /tmp/restore.log
      cat /mnt/target/etc/default/grub >> /tmp/restore.log
      chroot /mnt/target grub2-mkconfig -o /boot/grub2/grub.cfg
    else
      chroot /mnt/target grub-mkconfig -o /boot/grub/grub.cfg
    fi

   
  elif [ -n "$BRsyslinux" ]; then 

.....

}

 

 

 

 

*το script σου ειναι λιγο επικινδυνο :P

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

το σκριπτ...απλα ειναι κομμενο και ραμενο για συγκεκριμενο συστημα,layout κλπ και σε ορισμενα σημεια ελλειπες..

 

δεν καλυπτει αλλα σεναρια και δεν εχει error handling...

 

αν χρησιμοποιηθει για αλλον σκοπο απο οτι φτιαχτηκε..ναι...ειναι επικινδυνο :)

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

*το script σου ειναι λιγο επικινδυνο :P

Μμπα πριν 2 χρονια το εφτιαξα και το δουλεψα πολλλλλλλες φορες

βασικα αμα θελω να κανω μεγαλες αλλαγες η compile με πολλες εξαρτησεις - πειραματα ερχομαι εδω και οτι βρεξει ας κατευασει χαχα.

Ηβασικη εγκατασταση δεν κυνδυνευει.

rm -rf  :-D

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

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

λεω οτι ειναι λιγο επικινδυνο γιατι εκτελεις rm -rf χωρις ομως να ελεγχεις αν οντως εγινε unmount απο πανω.

 

αν για οποιονδηποτε λογο δεν γινει unmount το partition σου..? :P

 

καλο ειναι να υπαρχει ενα υποτυπωδες check, ποτε δεν ξερεις.

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

περα απο το γεγονος οτι το σκριπτ δεν ελεγχει πολλα πραματα.. αν εκτελουνται σωστα κλπ εγω καταλαβαινω οτι το restore προυποθετει την υπαρξη του backup dir που ειναι καπου μεσα στο home dir του χρηστη.

 

Αν η εγκατασταση εχει χαιρετησει τον ματαιον τουτο κοσμο....πως θα γινει το restore ?

 

Αν μη τι αλλο θα πρεπε να υπηρχε μια βασικη προβλεψη επιλογης destination οπου θα βρισκει το backup file....δεν σε ενδιαφερει τοσο αυτο να συμβαινει και κατα το backup γιατι μετα το παιρνεις το tar και το πας οπου θες...καπου σε ουδετερο μερος...

 

Το θεμα ειναι τι γινεται οταν εχουν γαμηθει ολα και εισαι σε live environment και τρεχεις το σκριπτ να σωσεις τα ασωστα ...που θα βρεις το tar και πως θα το ψαξει το σκριπτ που εχει καρφωτο path....

 

οπως και πριν ειπα...το χεις φτιαξει για συγκεκριμενο σεναριο και συστημα..οποτε ολα αυτα που λεμε εμεις εδω μπορει να ειναι λογικα αλλα περιττα για σενα...  :)

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

περα απο το γεγονος οτι το σκριπτ δεν ελεγχει πολλα πραματα.. αν εκτελουνται σωστα κλπ εγω καταλαβαινω οτι το restore προυποθετει την υπαρξη του backup dir που ειναι καπου μεσα στο home dir του χρηστη.

Σωστα καταλαβαινεις

 

Αν η εγκατασταση εχει χαιρετησει τον ματαιον τουτο κοσμο....πως θα γινει το restore ?

 

Αν μη τι αλλο θα πρεπε να υπηρχε μια βασικη προβλεψη επιλογης destination οπου θα βρισκει το backup file....δεν σε ενδιαφερει τοσο αυτο να συμβαινει και κατα το backup γιατι μετα το παιρνεις το tar και το πας οπου θες...καπου σε ουδετερο μερος...

 

Το θεμα ειναι τι γινεται οταν εχουν γαμηθει ολα και εισαι σε live environment και τρεχεις το σκριπτ να σωσεις τα ασωστα ...που θα βρεις το tar και πως θα το ψαξει το σκριπτ που εχει καρφωτο path....

Μονο που ο /home βρισκεται σε αλλο partition και να γαμ@@ η εγκατασταση ο /home θα μεινει εκει που ειναι.

Μετα υπαρχει και η κανονικη διαδικασια του μπακαπ μου που και να γινουν ολλα ρημαδιο σε 5 λεπτα ειναι πισω το συστημα  :P

 

οπως και πριν ειπα...το χεις φτιαξει για συγκεκριμενο σεναριο και συστημα..οποτε ολα αυτα που λεμε εμεις εδω μπορει να ειναι λογικα αλλα περιττα για σενα...  :)

Ακριβώς οπως το λες ειναι, τα paths ειναι συγκεκριμενα καρφωτα και αν υποθεσουμε οτι δεν γινει umount το /dev/sda1 απλα θα μου ξανασβυσει το αντιγραφο. ελαχιστο το κακο.

Τον /home τον εχω 6-7 χρονια δεν θυμαμε ακριβως.

την εγκατασταση :

cdrom:[Debian GNU/Linux testing _Wheezy_ - Official Snapshot amd64 NETINST Binary-1 20120114-15:10]/

 

Α ξεχασα ο /home στο αντιγραφο συστημα ειναι απλος dir μονο με τα κρυφα αρχεια και οχι ο κανονικος /home "partition" για αυτο τον σβυνω ελαφρα τη καρδια. :)

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

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

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

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

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

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

Σύνδεση

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

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