Δευτέρα 3 Νοεμβρίου 2008

Η Οδύσσεια ενός upgrade(2)



Η ιστορία με το upgrade δεν θα τελείωνε όσο εύκολα νόμιζα.
Το Σάββατο το βράδυ, αποφάσισα να εγκαταστήσω την έκδοση 8.10. Σε μισή ώρα είχα τελειώσει και έβαζα τα κύρια προγράμματα που με ενδιέφεραν απολαμβάνοντας το KDE 4. Όταν βαρέθηκα πήγα για ύπνο νομίζοντας πως η ταλαιπωρία είχε τελειώσει.
Την επομένη το πρωί, όμως δεν έμπαινε το pc στα windows βγάζοντας ο GRUB: Error 12: Invalid device requested. Δηλαδή, η εγκατάσταση του νέου λειτουργικού είχε εισάγει νέα version του GRUB, η οποία είχε αλλάξει τις εντολές που χρησιμοποιούνταν,για την εισαγωγή στα Windows. Αυτό δεν άργησα να το καταλάβω, αν και πιο πριν είχα προσπαθήσει να εισάγω ακόμα και καινούργιο Boot Sector για τα Windows χωρίς να έχω το αποτέλεσμα που ήθελα.Το πρόβλημα ήταν πως δεν ήξερα τί να αλλάξω στις εντολές του GRUB, αφού, με εμπειρία ενός μήνα και ούτε στο Linux, ακόμα δεν έχω καταλάβει ποιό partition είναι το hd(0,0) κοκ και δεν είχε χρειαστεί να ασχοληθώ με το GRUB. Μάλιστα στο Kubuntu 8.10 δεν επιτρέπεται να πειράξεις το αρχείο /boot/grub/menu.lst, στο οποίο βρίσκονται οι εντολές. Για να ρυθμίσεις αυτό το αρχείο πρέπει να πας από το KDE Menu-->Computer--> System Settings και στο tab advanced να ανοίξεις το Grub Editor. Διαβάζοντας από πολλά forums προσπάθησα μάταια από εκεί να διορθώσω το πρόβλημα.

Γύρω στις 6 είχα μία αναλαμπή. Γιατί να μη βάλω τη version 8.04 ώστε και να δω ποιες εντολές έχει ο GRUB για την εισαγωγή στο λειτουργικό της MS και να δοκιμάσω να κάνω update απότον main server αυτή τη φορά. Αφού λοιπόν ξαναέκανα εγκατάσταση, δοκίμασα το upgrade. Τα αρχεία κατεβήκαν όλα , όμως αυτή τη φορά, έσκασε αργότερα. Σήμερα, φίλοι μου είπαν πως γίνεται ένα λάθος στο upgrade αφού για να εισάγει τη νέα version του installer αφαιρεί πρώτα τη παλιά!!!!Εκεί βεβαίως σκάει!!!!Οπότε το λειτουργικό δεν μπορούσε να εισάγει τίποτα. Πλέον όμως ήξερα τις σωστές εντολές στο GRUB. Έτσι ξανα εγκατέστησα την 8.10, άλλαξα τις εντολές και πλέον μπαίνω και στα Windows.
Για όποιον κάνει εγκατάσταση της έκδοσης 8.10, οι εντολές που υπήρχαν στην νέα version του Grub για τα Windows είναι οι εξής:

root(hd1,0)
makeactive
savedefault
(hd0) is mapped to (hd1)
(hd1) is mapped to (hd0)
Chainloader: +1

To hd1,0 είναι το partition που έχω εγκατεστημένα τα windows. Όμως το σωστό είναι hd0,0. Αυτό δηλαδή στο οποίο είναι εγκαταστημένο το Linux.Ακόμα δεν χρειάζονται τα mapping,για Windows XP και πάνω γιατί αυτό είναι για λειτουργικά που στηρίζονται στο DOS.
Το σωστό δηλαδή είναι :

root(hd0,0)
makeactive
savedefault
Chainloader: +1


Στη τελική έχασα δύο μέρες για ένα upgrade που δεν έγινε, έλυσα το πρόβλημά μου με μία "ταρζανιά", έγινα λιγο πιο σοφός, αυτό το αναγνωρίζω, και ο Bob Page ζει ακόμα!! Καλωσήρθα στο "μαγικό" κόσμο του Linux.



9 σχόλια:

Unknown είπε...

Για να κάνεις edit το menu.lst δοκίμασες με sudo?
sudo vi /boot/grub/menu.lst
οπου vi = ο αγαπημένος σου editor.

Συνήθως το ενδεδειγμένο partitioning scheme για dual boot linux/windoze είναι:
εγκατάσταση win στο πρώτο partition, και στην συνέχεια εγκατάσταση linux στα υπόλοιπα και αντικατάσταση του boot loader με grub.

Γενικά πάντως αν τα windoze δεν τα χρησιμοποιείς για παιχνίδια είναι προτιμότερο να εγκαταστήσεις linux σε όλο το σκληρό και στην συνέχεια win πάνω σε vmware ή virtualbox.

keep linuxing

Javatzis είπε...

Πήγα στο φάκελο /boot/grub και το άνοιξα με Kate. Αλλά όταν έκανα τις δεν με άφηνε να το σώσω!!! Αλλά εφόσον έχει τον Grub Editor κάνεις ακριβώς τις αλλαγές που θες εκεί. Έχω 5 partitions 1 για Windows, 1 για το Linux και 3 άλλα με NTFS για να τα βλέπουν και τα δύο λειτουργικά.

Unknown είπε...

Ιστορικά πάντως αν Θέλεις να κάνες edit το menu.lst με το χέρι, άνοιξε ενα command line και γράψε:
sudo kate /boot/grub/menu.lst.

Στο ubuntu πάντα οταν θέλεις να πειράξεις "ευαίσθητα" αρχεία πρέπει να χρησιμοποιείς sudo. (super user do)

Χμμμ swap partition δεν έχεις?

Οσο για το root clause του grub, ειναι

hd([disk],[partition])

Οπότε αν έχεις ένα σκληρό το πρώτο θα είναι πάντα 0. Αν τα windows είναι στο πρώτο partition τότε το σωστό είναι hd(0,0) όπως και το έγραψες. Αντίστοιχα το linux σου θα πρέπει να είναι στο hd(0,1).

Javatzis είπε...

Ναι εννοείται ότί έχω και swap partition απλά δεν το ανέφερα.
Το περίεργο είναι πως το partition των Windows δηλ. τα περιεχόμενα του δίσκου C:, είναι το hd(1,0). Αλλά αν το βάλω μου πετάει το Error 12 που λέω στο post. Αλλάζοντας σε hd(0,0) που νομίζω πως είναι το partition του Linux, φορτώνει και τα XP.

Unknown είπε...

Αν η σειρά στα partitions σου είναι Windoze και μετά Linux τότε καλώς είναι:
Windoze hd(0,0) (πρώτος σκληρός, πρώτο partition)
Linux hd(0,1) (πρώτος σκληρός, δεύτερο partition)

Πως προκύπτει οτι τα περιχόμενα του C: είναι το hd(1,0)? Απο που το βλέπεις εννοω, γιατί αυτό σημαίνει οτι έχεις δύο δίσκους και το πρώτο partition του δεύτερου ειναι win.

Javatzis είπε...

Κοίτα, είχα μέχρι πρόσφατα μόνο Windows στο pc στο πρώτο partition ενός από τους δύο δίσκους. Πρόσφατα αγόρασα ένα SATA δίσκο και στο ένα parition που έφτιαξα έβαλα Linux. Το ότι το partition των Windows είναι το hd(1,0) το καταλαβαίνω από την αντιστοίχιση που έκανε ο Grub Editor, δηλαδή εκεί που διαλέγω το σωστό disk, για να το εισάγει στο menu.lst, διαλέγοντας το partition που έχει το φάκελο Windows, άρα είναι ο C: των Windows μου έδειχνε το hd(1,0). Ο ίδιος ο editor δεν έδειχνε πουθενά τον hd(0,0) για αυτό και θεωρώ πως είναι το partition του Linux. Εννοείται πως είχα κάνει mount όλους τους δίσκους.

Unknown είπε...

Αν οι άλλοι δίσκοι ήταν PATA τότε ίσως να θεώρησε το καινούριο GRUB οτι θα bootάρεις απο τον SATA οπότε το Linux ειναι το 0,0 και τα win το 1,0.

Τρελό μπέρδεμα, αλλά αφού το βρήκες πάλι καλά

Anastasia είπε...

Μη ξανακούσω τη πρόταση "upgrade στα Kubuntu" θα πάρω ένα κουζινομάχαιρο και θα σε κυνηγάω μέσα στο σπίτι.Και ξέρεις πολύ καλά οτι το εννοώ.

Javatzis είπε...

Μπορείς να ησυχάσεις..... για 6 μήνες τουλάχιστον :P