![Η Barbie Doll συνομιλεί με παιδί και γονείς, αλλά οι χάκερ το ακούνε](/f/e860a505f342bf8ca0493e5345afc716.jpg?width=100&height=100)
Λόγω των πρόσφατων αλλαγών στους στόχους των εξετάσεων πιστοποίησης LFCS που εφαρμόζονται από 2 Φεβρουαρίου 2016, προσθέτουμε τα απαραίτητα θέματα στο Σειρά LFCS δημοσιευμένο εδώ. Για να προετοιμαστείτε για αυτήν την εξέταση, ενθαρρύνεστε ιδιαίτερα να ακολουθήσετε το Σειρά LFCE επισης.
Σε αυτό το άρθρο θα σας παρουσιάσουμε το GRUB και θα εξηγήσουμε γιατί είναι απαραίτητος ένας φορτωτής εκκίνησης και πώς προσθέτει ευελιξία στο σύστημα.
ο Διαδικασία εκκίνησης Linux από τη στιγμή που πατάτε το κουμπί λειτουργίας του υπολογιστή σας μέχρι να αποκτήσετε ένα πλήρως λειτουργικό σύστημα ακολουθεί αυτήν την ακολουθία υψηλού επιπέδου:
Σε Μέρος 7 αυτής της σειράς ("SysVinit, Upstart και Systemd») Παρουσιάσαμε το συστήματα και εργαλεία διαχείρισης υπηρεσιών χρησιμοποιείται από τις σύγχρονες διανομές Linux. Μπορεί να θέλετε να αναθεωρήσετε αυτό το άρθρο προτού προχωρήσετε περαιτέρω.
Δύο μεγάλες ΚΑΜΠΙΑ εκδόσεις (v1 καλούνται μερικές φορές GRUB Legacy και v2) μπορεί να βρεθεί σε σύγχρονα συστήματα, αν και οι περισσότερες διανομές χρησιμοποιούν v2 από προεπιλογή στις πιο πρόσφατες εκδόσεις τους. Μόνο Red Hat Enterprise Linux 6 και τα παράγωγά του εξακολουθούν να χρησιμοποιούνται v1 σήμερα.
Έτσι, θα εστιάσουμε κυρίως στα χαρακτηριστικά του v2 σε αυτόν τον οδηγό.
Ανεξάρτητα από το ΚΑΜΠΙΑ έκδοση, ένας φορτωτής εκκίνησης επιτρέπει στον χρήστη να:
Σήμερα, ΚΑΜΠΙΑ διατηρείται από το ΑΝΤΙΛΟΠΗΣ ΤΗΣ ΑΦΡΙΚΗΣ έργο και είναι καλά τεκμηριωμένο στον ιστότοπό τους. Σας ενθαρρύνουμε να χρησιμοποιήσετε το Επίσημη τεκμηρίωση GNU ενώ περνάτε από αυτόν τον οδηγό.
Όταν εκκινήσει το σύστημα, εμφανίζονται τα ακόλουθα ΚΑΜΠΙΑ οθόνη στην κύρια κονσόλα. Αρχικά, θα σας ζητηθεί να επιλέξετε μεταξύ εναλλακτικών πυρήνων (από προεπιλογή, το σύστημα θα εκκινήσει χρησιμοποιώντας τον πιο πρόσφατο πυρήνα) και σας επιτρέπεται να εισαγάγετε έναν ΚΑΜΠΙΑ γραμμή εντολών (με ντο
) ή επεξεργαστείτε τις επιλογές εκκίνησης (πατώντας το κουμπί μι
κλειδί).
Ένας από τους λόγους για τους οποίους θα σκεφτόσασταν να εκκινήσετε με έναν παλαιότερο πυρήνα είναι μια συσκευή υλικού που λειτουργούσε σωστά και έχει ξεκινήσει "ενεργώντας επάνω"Μετά από αναβάθμιση (βλ αυτός ο σύνδεσμος στο AskUbuntu φόρουμ για παράδειγμα).
ο GRUB v2 διαμόρφωση διαβάζεται κατά την εκκίνηση από /boot/grub/grub.cfg
ή /boot/grub2/grub.cfg
, ενώ /boot/grub/grub.conf
ή /boot/grub/menu.lst
χρησιμοποιούνται σε v1. Αυτά τα αρχεία ΔΕΝ πρέπει να τροποποιηθούν με το χέρι, αλλά τροποποιούνται με βάση το περιεχόμενο του /etc/default/grub
και τα αρχεία που βρέθηκαν μέσα /etc/grub.d
.
Σε ένα CentOS 7, εδώ είναι το αρχείο διαμόρφωσης που δημιουργείται κατά την πρώτη εγκατάσταση του συστήματος:
GRUB_TIMEOUT = 5. GRUB_DISTRIBUTOR = "$ (sed's, release.*$,, g ' /etc /system-release)" GRUB_DEFAULT = αποθηκεύτηκε. GRUB_DISABLE_SUBMENU = αλήθεια. GRUB_TERMINAL_OUTPUT = "κονσόλα" GRUB_CMDLINE_LINUX = "vconsole.keymap = la-latin1 rd.lvm.lv = centos_centos7-2/swap crashkernel = auto vconsole.font = latarcyrheb-sun16 rd.lvm.lv = centos_centos7-2/root rhgb ήσυχο" GRUB_DISABLE_RECOVERY = "αληθινό"
Εκτός από την ηλεκτρονική τεκμηρίωση, μπορείτε επίσης να βρείτε το εγχειρίδιο GNU GRUB χρησιμοποιώντας πληροφορίες ως εξής:
# info grub.
Εάν ενδιαφέρεστε ειδικά για τις διαθέσιμες επιλογές για /etc/default/grub, μπορείτε να επικαλεστείτε απευθείας την ενότητα διαμόρφωσης:
# info -f grub -n 'Απλή διαμόρφωση'
Χρησιμοποιώντας την παραπάνω εντολή θα το διαπιστώσετε GRUB_TIMEOUT
ορίζει το χρόνο μεταξύ της στιγμής εμφάνισης της αρχικής οθόνης και της αυτόματης εκκίνησης του συστήματος, εκτός εάν διακόπτεται από τον χρήστη. Όταν αυτή η μεταβλητή έχει οριστεί σε -1
, η εκκίνηση δεν θα ξεκινήσει μέχρι ο χρήστης να κάνει μια επιλογή.
Όταν εγκαθίστανται πολλά λειτουργικά συστήματα ή πυρήνες στο ίδιο μηχάνημα, GRUB_DEFAULT
απαιτεί μια ακέραιη τιμή που υποδεικνύει ποια καταχώρηση λειτουργικού συστήματος ή πυρήνα στην αρχική οθόνη GRUB πρέπει να επιλεγεί για εκκίνηση από προεπιλογή. Η λίστα των καταχωρίσεων μπορεί να προβληθεί όχι μόνο στην οθόνη splash που εμφανίζεται παραπάνω, αλλά και χρησιμοποιώντας την ακόλουθη εντολή:
# awk -F \ '' $ 1 == "menuentry" {print $ 2} '/boot/grub2/grub.cfg.
# awk -F \ '' $ 1 == "menuentry" {print $ 2} '/boot/grub/grub.cfg.
Στο παράδειγμα που φαίνεται στην παρακάτω εικόνα, εάν θέλουμε να κάνουμε εκκίνηση με την έκδοση του πυρήνα 3.10.0-123.el7.x86_64 (4η καταχώρηση), πρέπει να ορίσουμε GRUB_DEFAULT
προς το 3
(οι καταχωρήσεις αριθμούνται εσωτερικά ξεκινώντας με μηδέν) ως εξής:
GRUB_DEFAULT = 3.
Μια τελευταία μεταβλητή διαμόρφωσης GRUB που παρουσιάζει ιδιαίτερο ενδιαφέρον είναι GRUB_CMDLINE_LINUX
, το οποίο χρησιμοποιείται για τη μεταφορά επιλογών στον πυρήνα. Οι επιλογές που μπορούν να περάσουν μέσω του GRUB στον πυρήνα είναι καλά τεκμηριωμένες στο Αρχείο παραμέτρων πυρήνα και στο man 7 bootparam.
Τρέχουσες επιλογές στο δικό μου CentOS 7 διακομιστής είναι:
GRUB_CMDLINE_LINUX = "vconsole.keymap = la-latin1 rd.lvm.lv = centos_centos7-2/swap crashkernel = auto vconsole.font = latarcyrheb-sun16 rd.lvm.lv = centos_centos7-2/root rhgb ήσυχο"
Γιατί θέλετε να τροποποιήσετε τις προεπιλεγμένες παραμέτρους του πυρήνα ή να περάσετε επιπλέον επιλογές; Με απλά λόγια, μπορεί να υπάρχουν στιγμές που πρέπει να πείτε στον πυρήνα ορισμένες παραμέτρους υλικού που μπορεί να μην είναι σε θέση να καθορίσει από μόνο του ή να παρακάμψετε τις τιμές που θα ανιχνεύσει.
Αυτό μου συνέβη όχι πολύ καιρό πριν όταν προσπάθησα Διάνυσμα Linux, παράγωγο του Slackware, στο φορητό υπολογιστή μου 10 ετών. Μετά την εγκατάσταση δεν εντόπισε τις σωστές ρυθμίσεις για την κάρτα βίντεο μου, οπότε έπρεπε να τροποποιήσω τις επιλογές πυρήνα που περνούν από το GRUB για να λειτουργήσει.
Ένα άλλο παράδειγμα είναι όταν πρέπει να φέρετε το σύστημα σε λειτουργία ενός χρήστη για να εκτελέσετε εργασίες συντήρησης. Μπορείτε να το κάνετε αυτό προσθέτοντας τη λέξη single στο GRUB_CMDLINE_LINUX
και επανεκκίνηση:
GRUB_CMDLINE_LINUX = "vconsole.keymap = la-latin1 rd.lvm.lv = centos_centos7-2/swap crashkernel = auto vconsole.font = latarcyrheb-sun16 rd.lvm.lv = centos_centos7-2/root rhgb ήσυχο μονόκλινο"
Μετά την επεξεργασία /etc/defalt/grub
, θα χρειαστεί να τρέξετε update-grub
(Ubuntu) ή grub2 -mkconfig -o /boot/grub2/grub.cfg
(CentOS και openSUSE) στη συνέχεια για ενημέρωση grub.cfg
(διαφορετικά, οι αλλαγές θα χαθούν κατά την εκκίνηση).
Αυτή η εντολή θα επεξεργαστεί τα αρχεία διαμόρφωσης εκκίνησης που αναφέρθηκαν νωρίτερα για ενημέρωση grub.cfg
. Αυτή η μέθοδος διασφαλίζει ότι οι αλλαγές είναι μόνιμες, ενώ οι επιλογές που περνούν από το GRUB κατά την εκκίνηση θα διαρκέσουν μόνο κατά την τρέχουσα περίοδο λειτουργίας.
Εάν εγκαταστήσετε ένα δεύτερο λειτουργικό σύστημα ή εάν το αρχείο διαμόρφωσης GRUB καταστραφεί λόγω ανθρώπινου σφάλματος, υπάρχουν τρόποι με τους οποίους μπορείτε να επαναφέρετε το σύστημά σας στα πόδια του και να μπορείτε να εκκινήσετε ξανά.
Στην αρχική οθόνη, πατήστε ντο
για να λάβετε μια γραμμή εντολών GRUB (θυμηθείτε ότι μπορείτε επίσης να πατήσετε μι
για να επεξεργαστείτε τις προεπιλεγμένες επιλογές εκκίνησης) και χρησιμοποιήστε βοήθεια για να φέρετε τις διαθέσιμες εντολές στη γραμμή GRUB:
Θα εστιάσουμε σε ls, η οποία θα αναφέρει τις εγκατεστημένες συσκευές και συστήματα αρχείων και θα εξετάσουμε τι βρίσκει. Στην παρακάτω εικόνα μπορούμε να δούμε ότι υπάρχουν 4 σκληροί δίσκοι (hd0
διά μέσου hd3
).
Μόνο hd0
φαίνεται να έχει χωριστεί (όπως αποδεικνύεται από msdos1 και msdos2, όπου 1 και 2 είναι οι αριθμοί διαμερισμάτων και το msdos είναι το σχήμα διαμερίσματος).
Ας εξετάσουμε τώρα το πρώτο διαμέρισμα hd0
(msdos1) για να δούμε αν μπορούμε να βρούμε το GRUB εκεί. Αυτή η προσέγγιση θα μας επιτρέψει να εκκινήσουμε το Linux και να χρησιμοποιήσουμε εκεί άλλα εργαλεία υψηλού επιπέδου για να επιδιορθώσουμε το αρχείο διαμόρφωσης ή να επανεγκαταστήσουμε το GRUB εντελώς εάν είναι απαραίτητο:
# ls (hd0, msdos1)/
Όπως μπορούμε να δούμε στην επισημασμένη περιοχή, βρήκαμε το grub2 κατάλογος σε αυτό το διαμέρισμα:
Μόλις είμαστε σίγουροι ότι το GRUB κατοικεί στο (hd0, msdos1), ας πούμε στο GRUB πού να βρει το αρχείο διαμόρφωσης και στη συνέχεια να του δώσουμε εντολή να επιχειρήσει να ξεκινήσει το μενού του:
set prefix = (hd0, msdos1)/grub2. set root = (hd0, msdos1) ανύπαρκτο φυσιολογικό. κανονικός.
Στη συνέχεια, στο μενού GRUB, επιλέξτε μια καταχώρηση και πατήστε Εισαγω για εκκίνηση χρησιμοποιώντας το. Μόλις εκκινήσει το σύστημα, μπορείτε να το εκδώσετε grub2-install /dev /sdX
εντολή (αλλαγή sdX
με τη συσκευή στην οποία θέλετε να εγκαταστήσετε το GRUB). Οι πληροφορίες εκκίνησης θα ενημερωθούν και όλα τα σχετικά αρχεία θα αποκατασταθούν.
# grub2-install /dev /sdX.
Άλλα πιο περίπλοκα σενάρια τεκμηριώνονται, μαζί με τις προτεινόμενες διορθώσεις τους, στο Οδηγός αντιμετώπισης προβλημάτων Ubuntu GRUB2. Οι έννοιες που εξηγούνται εκεί ισχύουν και για άλλες διανομές.
Σε αυτό το άρθρο σας παρουσιάσαμε το GRUB, όπου μπορείτε να βρείτε τεκμηρίωση τόσο online όσο και εκτός σύνδεσης, και εξήγησε πώς να προσεγγίσετε ένα σενάριο όπου ένα σύστημα έχει σταματήσει να εκκινεί σωστά λόγω σχετικού προγράμματος εκκίνησης θέμα.
Ευτυχώς, το GRUB είναι ένα από τα καλύτερα τεκμηριωμένα εργαλεία και μπορείτε εύκολα να βρείτε βοήθεια είτε στα εγκατεστημένα έγγραφα είτε online χρησιμοποιώντας τους πόρους που έχουμε μοιραστεί σε αυτό το άρθρο.
Έχετε ερωτήσεις ή σχόλια; Μη διστάσετε να μας ενημερώσετε χρησιμοποιώντας την παρακάτω φόρμα σχολίων. Ανυπομονούμε να ακούσουμε από εσάς!