Παρακάτω θα κάνουμε την πρώτη μας εργασία μέσα από περιβάλλον linux. Για το λόγο αυτό ανατρέξτε για λίγο παρακάτω στο κεφάλαιο Ξεκινώντας από τα βασικά για να δείτε πως ανοίγουμε ένα τερματικό και πως εκτελούμε μια εφαρμογή ως υπερχρήστης. Επιστρέψτε μετά πάλι εδώ για να συνεχίσουμε.
Θέλουμε να αλλάξουμε ρυθμίσεις στο grub. Όμως στο περιβάλλον δουλεύουμε σαν απλώς χρήστης χωρίς δικαιώματα αλλαγών σε κρίσιμα αρχεία. Θα ανοίξουμε λοιπόν σε έναν κειμενογράφο με δικαιώματα υπερχρήστη το αρχείο /boot/grub/menu.lst που έχει τις ρυθμίσεις του grub. Εκτελέστε ως υπερχρήστης την εντολή
gedit /boot/grub/menu.lst&
Βρείτε την γραμμή που ξεκινάει με title Other Operating Systems. Η επόμενη γραμμή title αφορά το λειτουργικό σύστημα Windows που έχετε ήδη. Αλλάξτε την να μοιάζει ως εξής. Στον τίτλο βάλτε οτιδήποτε θέλετε
title Microsoft Windows XP Home Edition unhide (hd0,0) hide (hd0,1) root (hd0,0) savedefault makeactive chainloader +1
Οι δίσκοι και τα partitions ξεκινούν την αρίθμηση από το 0. Άρα (hd0,0) ή αλλιώς όπως είδαμε προηγουμένος στην ρύθμιση των κατατμήσεων hda1 είναι η 1η κατάτμηση στον 1ο δίσκο. Εδώ έχουμε το λειτουργικό που δουλέυαμε ήδη π.χ. WIndows XP Home. Οι ρυθμίσεις αυτές λένε να είναι :
Αν και δεν έχουμε ακόμα λειτουργικό στην 2η κατάτμηση βάλτε σε σχόλια (με #) τις παρόμοιες εντολές που θα χρειαστούν. Όταν εγκαταστήσετε εκεί λειτουργικό αφαιρέστε τα. Π.χ.
#title Microsoft Windows Vista #hide (hd0,0) #unhide (hd0,1) #root (hd0,1) #savedefault #makeactive #chainloader +1
Θα θέλετε όταν ο υπολογιστής σας ξεκινάει να φορτώνει μετά από κάποια δευτερόλεπτα το λειτουργικό σύστημα που δουλεύατε ήδη και όχι το Linux. (Τουλάχιστον όχι ακόμα). Βρείτε στην αρχή του αρχίου την γραμμή
default 0
και αλλάξτε την σε 3 π.χ. για να φορτώνει την 4η επιλογή, στο grub (μετράμε πάλι ξεκινώντας από το 0).
default 3
Αλλάξτε επίσης, αν θέλετε, και τον χρόνο αναμονής πριν την αυτόματη φόρτωση σε όσο θέλετε. Π.χ. για 10 δευτερόλεπτα
timeout 10
Αποθηκεύστε το αρχείο και επανεκκινήστε τον υπολογιστή σας πηγαίνοντας από το μενού Επιφάνεια εργασίας στην επιλογή Κλείσιμο.
Το επόμενο βήμα της προχωρημένης ρύθμισης του grub δεν μας είναι άκρως απαραίτητο για να συνεχίσουμε. Το grub όμως αυτήν την στιγμή είναι μέσα στην διανομή linux. Εάν την διαγράψουμε απλώς ο υπολογιστής μας δεν θα εκκινεί καθόλου προσωρινά. Εάν δεν ξέρετε πως να διαγράψετε το mbr για να εκκινήσει ο υπολογιστής από την 1η ενεργή κατάτμηση, θα έχετε πρόβλημα.
Στόχοι μας είναι οι παρακάτω:
Έχουμε ήδη μια κατάτμηση, για τα αρχεία του grub, που ακόμα δεν έχουμε χρησιμοποιήσει. Θα δούμε πως θα φορτώσουμε τα περιεχόμενά της σε έναν φάκελο (/mnt/hda5). Θα γράψουμε εκεί τις ρυθμίσεις του grub για το mbr αποσυνδέοντας το έτσι από την διανομή μας.
Συνεχίζουμε λοιπόν με τις παρακάτω ενέργειες. Ως root δημιουργήστε τον φάκελο /mnt/hda5
mkdir /mnt/hda5
Φορτώστε τώρα τα περιεχόμενά της κατάτμησης hda5 στον φάκελο αυτό.
mount /dev/hda5 /mnt/hda5
Αντιγράψτε τον φάκελο /boot/grub και τα περιεχόμενά του μέσα στο /mnt/hda5/. Τα περιεχόμενο του /boot εκτός από τον φάκελο grub δεν μας χρειάζονται
cp -r /boot/grub /mnt/hda5/
Ανοίξτε το αρχείο /mnt/hda5/grub/menu.lst ως υπερχρήστης
gedit /mnt/hda5/grub/menu.lst&
Μπορούμε να σβήσουμε τα σχόλια ή να τα αφήσετε και εάν θέλετε ρίξτε τους μια ματιά. Στο αντίγραφο αυτό δεν θα μας χρειαστουν. Στο /boot/grub/menu.lst όμως μην τα σβήσετε, τα χρειάζεται η εντολή update-grub. Θα κρατήσουμε ότι επεξεργαστήκαμε προηγουμένως μόνο. Τις 2 εγγραφές για τα λειτουργικά Windows, και θα σβήσουμε (ή θα περάσουμε σε σχόλια ότι είναι ανάμεσα σε
## ## End Default Options .. .. #This entry automatically added by the Debian installer for a non-linux OS
π.χ. Θα περάσουν σε σχόλια τα εξής
#title Debian GNU/Linux, kernel 2.6.18-4-486 #root (hd0,6) #kernel /boot/vmlinuz-2.6.18-4-486 root=/dev/hda7 ro vga=785 quiet splash #initrd /boot/initrd.img-2.6.18-4-486 #savedefault # #title Debian GNU/Linux, kernel 2.6.18-4-486 (single-user mode) #root (hd0,6) #kernel /boot/vmlinuz-2.6.18-4-486 root=/dev/hda7 ro vga=785 quiet splash single #initrd /boot/initrd.img-2.6.18-4-486 #savedefault ### END DEBIAN AUTOMAGIC KERNELS LIST # This is a divider, added to separate the menu items below from the Debian # ones # title Other operating systems # root
Τα μόνα κομμάτια χωρίς σχόλια θα είναι περιληπτικά τα εξής. Προσοχή το default θα αλλάξει τώρα σε 0 αφού περάσαμε σε σχόλια τρεις καταχωρήσεις.
default 0 timeout 5 color cyan/blue white/blue # title Microsoft Windows XP Home Edition unhide (hd0,0) hide (hd0,1) root (hd0,0) savedefault makeactive chainloader +1 # #title Microsoft Windows Vista #hide (hd0,0) #unhide (hd0,1) #root (hd0,1) #savedefault #makeactive #chainloader +1
Προσθέστε τώρα μια νέα καταχώρηση που θα φορτώνει το 2ο μενού που θα αφορά την εγκατάσταση Debian GNU/Linux στην 3η λογική κατάτμηση ( hda7 ή (hd0,6) )
title Debian GNU/Linux configfile (hd0,6)/boot/grub/menu.lst
Για να κάνουμε εύκολη την αντιμετώπιση μελλοντικών προβλημάτων θα προσθέσουμε επίσης μία επιλογή που θα επανεγκαθιστά εάν χρειαστεί το grub στο mbr. Κάτι απαραίτητο καθώς τα windows κατά την εγκατάστασή τους έχουν την τάση να διαγράφουν το mbr. Δείτε την Επανεγκατάσταση-τροποποίηση grub στο κεφάλαιο Αντιμετώπιση προβλημάτων
title Install GRUB to hard disk (mbr) install (hd0,4)/grub/stage1 (hd0) (hd0,4)/grub/stage2 p (hd0,4)/grub/menu.lst
Πάμε τώρα να αλλάξουμε το αρχείο /boot/grub/menu.lst και να αφαιρέσουμε από αυτό τις επιλογές για την εκκίνηση των λειτουργικών windows αφήνοντας μόνο τους πυρήνες του Linux. Θα πάρουμε ένα αντίγραφο ασφαλείας πρώτα (πάντα ως root)
cp /boot/grub/menu.lst /boot/grub/menu.lst.old gedit /boot/grub/menu.lst&
Διαγράψτε όλες τις γραμμές μετά την γραμμή
### END DEBIAN AUTOMAGIC KERNELS LIST
Τώρα θα κάνουμε κάτι που θα σας φανεί λίγο παράξενο. Στο Linux όμως γίνεται αφού είναι χρήσιμο σε πάραπολλές περιπτώσεις. Αρχικά θα αποπροσαρτήσουμε την κατάτμηση /dev/hda5 από τον φάκελο /mnt/hda5.
umount /mnt/hda5
Εκτελώντας την παρακάτω εντολή τα περιεχόμενα του ήδη υπάρχοντος φάκελου /boot δεν θα σβηστουν αλλά θα κρυφτούν και στην θέση τους θα τοποθετηθούν τα περιεχόμενα της κατάτμησης /dev/hda5 (BOOT κατάτμηση)
mount /dev/hda5 /boot
Tώρα είμαστε έτοιμοι να εγκαταστήσουμε το grub που δημιουργήσαμε για το mbr
grub-install hd0
Εάν θελήσουμε να επεξεργαστούμε το grub με το μενού του mbr θα εκτελούμε
mount /dev/hda5 /boot gedit /boot/grub/menu.lst&
Για να επεξεργαστούμε πάλι το 2ο μενού με τους πυρήνες,
umount /boot gedit /boot/grub/menu.lst&
Επανεκκινήστε λοιπόν να δούμε αν όλα πήγαν καλά. Αν ναι τότε χαλαρώστε για λίγο. Έχουμε κάνει ήδη πάρα πολλά και ακόμα δεν ξεκινήσαμε. Το σύστημα μας όχι μόνο είναι dual-boot αλλά μπορούμε να εγκαταστήσουμε επιπλέον λειτουργικά Windows και Linux χωρίς πρόβλημα. Παρακάτω θα δούμε πώς
Το 2ο λειτουργικό Windows θα εγκατασταθεί στην 2η πρωτεύουσα κατάτμηση που έχουμε ήδη δημιουργήσει. Πριν την εγκατάσταση θα ενεργοποιήσουμε στο mbr μενού του grub το 2ο λειτουργικό Windows που περάσαμε σε σχόλια (βλ.Ρύθμιση Φορτωτή εκκίνησης grub). Εκκινήστε στο Linux και φορτώστε λοιπόν στον κατάλογο /boot τις ρυθμίσεις του grub από την κατάτμηση ΒΟΟΤ
mount /boot
Επεξεργαστείτε το /boot/grub/menu.lst
su gedit /boot/grub/menu.lst&
Αφαιρέστε τα σχόλια από την 2η καταχώρηση (βάλτε το δικό σας τίτλο)
title Microsoft Windows Vista hide (hd0,0) unhide (hd0,1) root (hd0,1) savedefault makeactive chainloader +1
Βάλτε μέσα το cd της εγκατάστασης και δώστε προσοχή στο επόμενο βήμα. Για να εγκατασταθούν τα windows στην δεύτερη κατάτμηση θα πρέπει να κάνουμε κάποιες ενέργειες Τρέξτε λοιπόν το gparted (πάντα ως root).
Ωραία μέχρι τώρα, αλλά τι γίνεται εάν θέλουμε και 3ο και 4ο λειτουργικό Windows; Τα Windows λειτουργικά (μέχρι στιγμής), χρειάζονται μία πρωτεύουσα κατάτμηση, (δυστυχώς δε μπορούν σε λογική απ' όσο γνωρίζω) για να γράψουν boot πληροφορία. Κατα την εγκατάσταση τους, γράφουν καινούργια πληροφορία στην πρώτη φανερή και ενεργή πρωτεύουσα κατάτμηση που θα βρούν. Άρα πριν από κάθε εγκατάσταση σε μία λογική κατάτμηση, από το gparted:
title Microsoft Windows unhide (hd0,0) hide (hd0,1) root (hd0,0) savedefault makeactive chainloader +1
Ακολουθήστε τις οδηγίες για Αντίγραφα Ασφαλείας Κατάτμησης Λειτουργικού, για να πάρετε αντίγραφο της κατάτμησης με τις πληροφορίες εκκίνησης, για μελλοντική επαναφορά εάν προκύψει πρόβλημα.
Προσοχή όμως! Την κατάτμηση αυτή δεν θα την διαγράψετε μελλοντικά. Αν το κάνετε θα διαγραφεί η πληροφορία εκκίνησης για τα λειτουργικά Windows που έχετε σε λογικές κατατμήσεις και δεν θα εκκινούν. Τι θα γίνει έαν για παράδειγμα πρέπει να διαγραφεί λόγου ιού. Από προηγούμενο αντίγραφο της κατάτμησης με τις πληροφορίες εκκίνησης, θα επαναφέρετε.
Πάντως γενικά δεν είναι τόσο κομψή και απροβλημάτιστη λύση. Το 3ο λειτουργικό σας θα έχει το γράμμα D:\, ενώ πάντα το γράμμα C:\ θα υπάρχει, και θα αφορά την εγκατάσταση των Windows στην 1η πρωτεύουσα κατάτμηση. Μπορεί να γίνει μπλέξιμο έτσι.
Άλλη λύση για 3 ανεξάρτητα μεταξύ τους λειτουργικά Windows προυποθέτει μικρές τις 3 πρώτες πρωτεύουσες κατατμήσεις, την 4η ως εκτεταμένη με τις λογικές, χωρίς κενή πρωτεύουσα κατάτμηση στο τέλος. Π.χ. αν είστε εγκρατείς με τον χώρο δοκιμάστε τις παρακάτω κατατμήσεις, με τα παρακάτω ακριβή μεγέθη.
Τύπος | Διαμέρισμα | Σύστημα Αρχείων | Μέγεθος(Mb) | Όνομα | Κατάσταση |
---|---|---|---|---|---|
primary | hda1 | ntfs | 6000 | WIN2000 | active |
primary | hda2 | fat32 | 1999 | WIN98 | hidden |
primary | hda3 | ntfs | 8000 | WINXP | hidden |
primary | hda4 | extended | (υπόλοιπο) |
Ακολουθώντας τις οδηγίες για επανεγκατάσταση-τροποποίηση grub ανοίξτε το αρχείο menu.lst, που αφορά το mbr, και προσθέστε μια νέα καταχώρηση. Αν π.χ. το νέο σας linux είναι στην 4η λογική κατάτμηση ( hda8 ή (hd0,7) ) και το μενού με τους πυρήνες που το αφορά είναι στο /boot/grub/menu.lst προσθέστε
title Fedora 7 configfile (hd0,7)/boot/grub/menu.lst
και εγκαταστήστε το πάλι (δείτε από τις ίδιες οδηγίες το πως).
Προυποθέτουμε ότι έχουμε διαμορφώσει κατατμήσεις στον δίσκο μας για την εγκατάσταση πολλών λειτουργικών (βλ. Δημιουργία κατατμήσεων πριν την εγκατάσταση)
Έστω ότι έχουμε εγκατεστημένα τα Windows XP στην 1η πρωτεύουσα κατάτμηση και τα Windows7 στην 2η. Εάν δεν έχουμε λειτουργικό στην 2η κατάτμηση μπορούμε να το περάσουμε στα σχόλια βάζωντας το # μπροστά
Τροποποιούμε το αρχείο /etc/grub.d/40_custom προσθέτωντας τις παρακάτω γραμμές
# OS in 1st primary partition. We hide 2nd primary partition on boot. menuentry "Windows XP" { insmod ntfs set root='(hd0,1)' parttool (hd0,1) hidden- parttool (hd0,2) hidden+ parttool (hd0,1) boot+ drivemap -s (hd0) ${root} chainloader +1 savedefault } # OS in 2nd primary partition. We hide 1st primary partition on boot. menuentry "Windows 7" { insmod ntfs set root='(hd0,2)' parttool (hd0,2) hidden- parttool (hd0,1) hidden+ parttool (hd0,2) boot+ drivemap -s (hd0) ${root} chainloader +1 savedefault } menuentry "Debian Linux" { configfile (hd0,6)/boot/grub/grub.cfg }
Πλέον στην αναβάθμιση πυρήνων όταν θα τροποποιείται το grub, δεν θέλουμε να φαίνονται ΛΣ εκτός του linux. Για τον λόγο αυτό τροποποιούμε το αρχείο /etc/default/grub προσθέτωντας την παρακάτω γραμμή, ώστε να μην ανιχνεύονται άλλα λειτουργικά
GRUB_DISABLE_OS_PROBER=true
Για να μην εμφανιστούν τα μενού memtest ένας τρόπος είναι να αφαιρέσουμε το δικαίωμα εκτέλεσης από το αρχείο /etc/grub.d/20_memtest86+
chmod -x /etc/grub.d/20_memtest86+
Εκτελούμε
update-grub
Συνεχίζουμε με τις παρακάτω ενέργειες. Ως root δημιουργήστε τον φάκελο /mnt/sda5
mkdir /mnt/sda5
Φορτώνουμε τώρα τα περιεχόμενά της κατάτμησης sda5 στον φάκελο αυτό.
mount /dev/sda5 /mnt/sda5
Αντιγράφουμε τον φάκελο /boot/grub και τα περιεχόμενά του μέσα στο /mnt/sda5/.
cp -rpf /boot/grub /mnt/sda5/ chmod u+w /mnt/sda5/grub/grub.cfg
Στο mbr δεν θέλουμε να εμφανίζονται οι πυρήνες του linux. Για τον λόγο αυτό τροποποιούμε απευθείας το αρχείο /mnt/sda5/grub/grub.cfg, διαγράφοντας ότι υπάρχει μεταξύ των γραμμών
### BEGIN /etc/grub.d/10_linux ### .. ### END /etc/grub.d/10_linux ###
Τώρα θα κάνουμε κάτι που θα σας φανεί λίγο παράξενο. Στο Linux όμως γίνεται αφού είναι χρήσιμο σε πάραπολλές περιπτώσεις. Αρχικά θα αποπροσαρτήσουμε την κατάτμηση /dev/hda5 από τον φάκελο /mnt/hda5.
umount /mnt/sda5
Εκτελώντας την παρακάτω εντολή τα περιεχόμενα του ήδη υπάρχοντος φάκελου /boot δεν θα σβηστουν αλλά θα κρυφτούν και στην θέση τους θα τοποθετηθούν τα περιεχόμενα της κατάτμησης /dev/hda5 (BOOT κατάτμηση)
mount /dev/sda5 /boot
Tώρα είμαστε έτοιμοι να εγκαταστήσουμε το grub που δημιουργήσαμε για το mbr
grub-install /dev/sda
Ολοκληρώσαμε την δημιουργία ενός μενού για το mbr.
Πάμε να ρυθμίσουμε σωστά και το μενού του grub που θα αφορά μόνο το linux και που θα ανανεώνεται αυτόματα από την διανομή μας κάθε φορά που θα γίνεται αναβάθμιση πυρήνα.
Αποπροσαρτούμε την κατάτμηση /dev/sda5
umount /dev/sda5
Θα επαναδημιουργήσουμε το αρχείο /boot/grub/grub.cfg που θα αφορά μόνο το linux.
Βάζουμε σε σχόλια τις γραμμές που είχαμε εισάγει στο /etc/grub.d/40_custom
# OS in 1st primary partition. We hide 2nd primary partition on boot. #menuentry "Windows XP" { # insmod ntfs # set root='(hd0,1)' # parttool (hd0,1) hidden- # parttool (hd0,2) hidden+ # parttool (hd0,1) boot+ # drivemap -s (hd0) ${root} # chainloader +1 # savedefault #} # OS in 2nd primary partition. We hide 1st primary partition on boot. #menuentry "Windows 7" { # insmod ntfs # set root='(hd0,2)' # parttool (hd0,2) hidden- # parttool (hd0,1) hidden+ # parttool (hd0,2) boot+ # drivemap -s (hd0) ${root} # chainloader +1 # savedefault #} #menuentry "Debian Linux" { # configfile (hd0,6)/boot/grub/grub.cfg #}
Εάν θέλουμε τα μενού memtest εκτελούμε
chmod +x /etc/grub.d/20_memtest86+
Εκτελούμε
update-grub
Είμαστε έτοιμοι!
Πλέον έχουμε ένα βασικό μενού για το mbr και ένα 2ο μενού μόνο για το linux που θα αλλάζει αυτόματα από την διανομή.
Εάν θέλουμε μελλοντικά να κάνουμε αλλαγές στο βασικό μενού του grub, προσαρτούμε την κατάτμηση /dev/sda5
mount /dev/sda5 /mnt/sda5
και τροποποιούμε απευθείας το αρχείο /mnt/sda5/grub/grub.cfg
gedit /mnt/sda5/grub/grub.cfg&
Μια καλή πρακτική είναι να πάρουμε την κατάτμηση /dev/sda5 (1η λογική στον extended partition) backup με το clonezilla. Αυτό μας δίνει την δυνατότητα σε περίπτωση που υπάρξει κάποιο πρόβλημα να την επαναφέρουμε εύκολα. Μάλιστα ακόμα και να διαγραφεί ο boot loader, το clonezilla κατά την επαναφορά από το backup, τον επανεγκαθιστά
Εκκινούμε από ένα live cd π.χ. parted magic Προσαρτούμε την κατάτμηση που έχει το grub2 (π.χ. την κατάτμηση /dev/sda5)
mount /dev/sda5 /mnt/sda5
Στην συνέχεια εγκαθιστούμε το grub2 με την εντολή
grub-install --force --no-floppy --root-directory=/media/sda5 /dev/sda
Χρησιμοποιούμε το boot repair cd