Startvorgang und Reparatur eines MBR-Sektorfehlers
- 1. Der Startvorgang des Linux-Betriebssystems
-
- 1. POST
- 2. MBR-Start
- 3. GRUB Menü
- 4. Laden Sie den Linux-Kernel
- 5. Initialisierung des Init-Prozesses
- 2. Systeminitialisierungsprozess
-
- 1. Init-Prozess
- 2. Systemd
- 3. Systemd-Einheitentyp
- 4. Das Systemd-Ziel, das der Laufstufe entspricht
- 3. Reparieren Sie den MBR-Sektorfehler
-
- 1. Fehlerursache
- 2. Fehlerphänomen
- 3. Lösungen
- 4. Startfehler beseitigen (experimentelle Schritte)
- - Reparieren Sie den MBR-Sektorfehler
-
- 1. Sichern Sie MBR-Sektordaten auf anderen Festplatten (/ dev / dsb1).
- 2. Simulieren Sie die Zerstörung des MBR-Bootsektors: (Zerstörung der 512-Byte-Größe der ersten Festplatte)
- 3. Die Startschnittstelle wechselt in den Notfallmodus und stellt die MBR-Sektordaten aus der Sicherungsdatei wieder her
- ——— Laden Sie zuerst das CD-Image und starten Sie das System neu
- Fünftens. Experimentelle Schritte
1. Der Startvorgang des Linux-Betriebssystems
1. POST
Nach dem Einschalten des Server-Hosts werden CPU, Speicher, Grafikkarte, Tastatur und andere Geräte zunächst gemäß den Einstellungen im Motherboard-BIOS getestet. Nach erfolgreichem Test wird die Systemsteuerung gemäß dem voreingestellten Start übertragen Die meiste Zeit wird auf die lokale Festplatte übertragen.
Zusammenfassung: Das erste Gerät, das das System booten kann, wird erkannt, z. B. eine Festplatte oder ein optisches Laufwerk
2. MBR-Start
Wenn Sie das System von der lokalen Festplatte starten, übertragen Sie zuerst die Systemsteuerung auf die Partition, die die Startdatei des Betriebssystems enthält, gemäß der MBR-Einstellung (Master Boot Record) im ersten Sektor der Festplatte oder direkt gemäß dem Start in der MBR-Datensatz Die Informationen rufen das Startmenü auf (z. B. GRUB).
Zusammenfassung: Führen Sie das im MBR-Sektor platzierte Boot-GRUB-Boot-Programm aus
3. GRUB Menü
Für das Linux-Betriebssystem ist GRUB (Unified Boot Loader) das am häufigsten verwendete Multi-System-Bootloader-Programm. Nachdem die Systemsteuerung an GRUB übergeben wurde, wird dem Benutzer das Startmenü zur Auswahl angezeigt, und die Linux-Kerneldatei wird gemäß der ausgewählten Option (oder dem Standardwert) geladen, und anschließend wird die Systemsteuerung an übertragen der Kernel.
CentOS 7 verwendet den GRUB2-Bootloader.
Zusammenfassung: Das GRUB-Startprogramm liest die GRUB-Konfigurationsdatei /boot/grub2/grub.cfg, um die Einstellungen und Pfadpositionen des Kernel- und Spiegeldateisystems abzurufen
4. Laden Sie den Linux-Kernel
Der Linux-Kernel ist eine vorkompilierte spezielle Binärdatei zwischen verschiedenen Hardwareressourcen und Systemprogrammen, die für die Ressourcenzuweisung und -planung verantwortlich ist. Nachdem der Kernel die Kontrolle über das System übernommen hat, wird er den laufenden Prozess des gesamten Linux-Betriebssystems vollständig kontrollieren.
Im CentOS 7-System befindet sich die Standard-Kerneldatei unter "/boot/vmlinuz-3.10.0-514.el7.x86_64".
Zusammenfassung: Laden Sie das Kernel- und Spiegeldateisystem in den Speicher
5. Initialisierung des Init-Prozesses
Um den weiteren Systemstartprozess abzuschließen, lädt der Linux-Kernel zuerst das Programm "/ sbin / init" im System in den Speicher, um es auszuführen (das laufende Programm wird als Prozess bezeichnet). Der Init-Prozess ist für den Abschluss der Initialisierung verantwortlich des gesamten Systems und wartet schließlich darauf, dass der Benutzer fortfährt, sich anzumelden.
Zusammenfassung: Laden Sie den Hardwaretreiber, der Kernel lädt den Init-Prozess zur Ausführung in den Speicher
Der Unterschied zwischen Sysvinit und Systend:
Herkömmliches Sysvinit ist auf die serielle Ausführung von Shell-Skripten angewiesen, um Dienste zu starten. Dies führt zu einer geringen Effizienz und einer langsamen Systemstartgeschwindigkeit.
Systemd kann mehr Dienstprozesse parallel starten und Dienste bei Bedarf starten, sodass weniger Prozesse gestartet werden können. Dadurch wird die Systemstartgeschwindigkeit verbessert.
2. Systeminitialisierungsprozess
1. Init-Prozess
● Das Programm / sbin / init wird vom Linux-Kernel geladen und ausgeführt
● Der Init-Prozess ist der erste Prozess im System
● Die PID-Nummer (Process Identifier) des Init-Prozesses ist immer 1
2. Systemd
● Systemd ist eine Art Init-Software des Linux-Betriebssystems
● CentOS7 verwendet eine neue Systemd-Startmethode, die das herkömmliche SysVinit ersetzt
● Der erste Init-Prozess, der in CentOS ausgeführt wird, ist / lib / systemd / systemd
3. Systemd-Einheitentyp
Gerätetyp | Name der Erweiterung | Beschreibung |
---|---|---|
Bedienung | .Bedienung | Beschreiben eines Systemdienstes |
Steckdose | .Steckdose | Beschreiben eines Sockets für die Kommunikation zwischen Prozessen |
Gerät | .Gerät | Beschreiben einer vom Kernel erkannten Gerätedatei |
Montieren | .montieren | Beschreiben des Einhängepunkts eines Dateisystems |
Automount | .automount | Beschreiben des automatischen Einhängepunkts eines Dateisystems |
Tauschen | .Tauschen | Beschreiben eines Speicheraustauschgeräts oder einer Auslagerungsdatei |
Pfad | .Pfad | Beschreiben einer Datei oder eines Verzeichnisses in einem Dateisystem |
Timer | .Timer | Beschreiben eines Timers (zum Implementieren von Cron-ähnlichen Planungsaufgaben) |
Schnappschuss | .Schnappschuss | Wird verwendet, um den Status eines Systems zu speichern |
Umfang | .Umfang | Verwenden Sie die Busschnittstelle von systemd, um externe Prozesse programmgesteuert zu erstellen |
Scheibe | .Scheibe | Beschreiben einer Gruppe von Managementsystemprozessen, die nach Hierarchien in einer cgroup organisiert sind |
Ziel | .Ziel | Beschreiben einer Reihe von Systemeinheiten |
4. Das Systemd-Ziel, das der Laufstufe entspricht
Level ausführen | Systemd 的 Ziel | Beschreibung |
---|---|---|
0 | Ziel | Beim Herunterfahren wird der Host heruntergefahren, wenn diese Ebene verwendet wird |
1 | retten.Ziel | Der Einzelbenutzermodus kann sich ohne Kennwortüberprüfung beim System anmelden und wird hauptsächlich für die Systemwartung verwendet |
2 | multi-user.target | Benutzerdefinierte / domänenspezifische Ausführungsebene. Der Standardwert entspricht 3 |
3 | multi-user.target | Vollständiger Mehrbenutzermodus mit Zeichenschnittstelle. Die meisten Server-Hosts werden auf dieser Ebene ausgeführt |
4 | multi-user.target | Benutzerdefinierte / domänenspezifische Ausführungsebene. Der Standardwert entspricht 3 |
5 | graphical.target | Der Mehrbenutzermodus der grafischen Oberfläche bietet eine grafische Desktop-Betriebsumgebung |
6 | reboot.target | Neustart, der Host wird bei Verwendung dieser Ebene neu gestartet |
3. Reparieren Sie den MBR-Sektorfehler
1. Fehlerursache
● Zerstörung durch Viren, Trojaner usw.
● Falsche Partitionsvorgänge, Lese- / Schreibfehler auf der Festplatte
2. Fehlerphänomen
● Das Startprogramm kann nicht gefunden werden, der Start wird unterbrochen.
● Das Betriebssystem kann nicht geladen werden und der Bildschirm wird nach dem Start schwarz
3. Lösungen
● Sicherungsdateien sollten im Voraus erstellt werden.
●
Von der Installations-CD in den Notfallmodus booten. ● Von Sicherungsdateien wiederherstellen
4. Startfehler beseitigen (experimentelle Schritte)
- Reparieren Sie den MBR-Sektorfehler
MBR befindet sich im ersten physischen Sektor der ersten Festplatte (dev / dsa). Insgesamt 512 Bytes
1. Sichern Sie MBR-Sektordaten auf anderen Festplatten (/ dev / dsb1).
①: Fügen Sie eine neue Festplatte hinzu, fdisk -l, um den Festplattenstatus
anzuzeigen. ②: fdisk / dev / sdb n ----- p ------… geben Sie ----- w, ### Create ein Festplattenpartition
③: mkfs.xfs / dev / sdb1 ### Formatierung
④: mkdir / backup ### Erstellen eines Sicherungsverzeichnisses
⑤: mount / dev / sdb1 / backup / ### Hängen Sie die Festplattenpartition in das Verzeichnis
df -h ein Überprüfen Sie, ob es gemountet wurde. Erfolgreich geladen
⑥: dd if = / dev / sda von = / backup / mbr.bak bs = 512 count = 1 ### Backup-Datei
: Nehmen Sie die Datei von der ersten Festplatte, Backup-Mount-Point-Verzeichnis, Geben Sie die Sicherungsdatei an. Der Name
hat eine Größe von 512 Byte und die Anzahl der Extraktionen beträgt 1
⑦: cd / backup ------- ls ------ ll #### Überprüfen Sie, ob die Datei gut erhalten ist
2. Simulieren Sie die Zerstörung des MBR-Bootsektors: (Zerstörung der 512-Byte-Größe der ersten Festplatte)
①: dd if = / dev / zero von = / dev / sda bs = 512 count = 1
: Nehmen Sie die leere Zeichendatei heraus , die erste Festplatte 512 Bytes einmal
②: init 6 #### Restart
3. Die Startschnittstelle wechselt in den Notfallmodus und stellt die MBR-Sektordaten aus der Sicherungsdatei wieder her
——— Laden Sie zuerst das CD-Image und starten Sie das System neu
①: Wenn die Benutzeroberfläche des Installationselements angezeigt wird, wählen Sie die Option "Fehlerbehebung"
②: Wählen Sie dann die Option "Centos Linux-System retten", um in den Notfallmodus zu wechseln
③: Wählen Sie "1", wählen Sie "Weiter" und drücken Sie die Eingabetaste, um fortzufahren
④: Nachdem Sie erneut die Eingabetaste gedrückt haben, gelangen Sie mit der Eingabeaufforderung "sh -4.2 #" in die Bash-Shell-Umgebung
sh -4.2 # mkdir / backupdir ####### Erstellen Sie ein Verzeichnis
sh-4.2 # mount / dev / sdb1 / backupdir #### Mounten Sie die Partition mit Sicherungsdateien
sh-4.2 # dd if = / backupdir /mbr.bak von = / dev / sda bs = 512 count = 1
#################### Backup - Daten - Wiederherstellung
sh-4.2 # exit ######### Exit
Fünftens. Experimentelle Schritte
1. Sichern Sie MBR-Sektordaten auf anderen Festplatten (/ dev / dsb1).
①: Fügen Sie eine neue Festplatte hinzu, fdisk -l, um den Festplattenstatus zu überprüfen
②: fdisk / dev / sdb n ----- p ------… enter ----- w, ### Erstellen Sie eine Festplattenpartition
③: mkfs.xfs / dev / sdb1 ### Formatierung
④: mkdir / backup ### Sicherungsverzeichnis erstellen
⑤: mount / dev / sdb1 / backup / ### Hängen Sie die Festplattenpartition in das Verzeichnis
df -h ein Das Mounten ist erfolgreich
⑥: dd if = / dev / sda von = / backup / mbr.bak bs = 512 count = 1 ### Sicherungsdatei⑦
: cd / backup ------- ls ----- -ll #### Überprüfen Sie, ob die Datei gut erhalten ist
2. Simulieren Sie die Zerstörung des MBR-Bootsektors: (Zerstörung der 512-Byte-Größe der ersten Festplatte)
①: dd if = / dev / zero von = / dev / sda bs = 512 count = 1
: Nehmen Sie die leere Zeichendatei heraus , die erste Festplatte 512 Bytes einmal
②: init 6 #### Restart
3. Die Startschnittstelle wechselt in den Notfallmodus und stellt die MBR-Sektordaten aus der Sicherungsdatei wieder her
①: Wenn die Benutzeroberfläche des Installationselements angezeigt wird, wählen Sie die Option
"Fehlerbehebung".
②: Wählen Sie dann die Option "Ein Centos Linux-System retten", um in den Notfallmodus zu gelangen. ③: Wählen Sie "1", wählen Sie "Weiter" und drücken Sie die Eingabetaste, um fortzufahren
④: Nachdem Sie erneut die Eingabetaste gedrückt haben, gelangen Sie mit der Eingabeaufforderung "sh -4.2 #" in die Bash-Shell-Umgebung
④: Nachdem Sie erneut die Eingabetaste gedrückt haben, gelangen Sie mit der Eingabeaufforderung "sh -4.2 #" in die Bash-Shell-Umgebung
sh -4.2 # mkdir / backupdir ####### Erstellen Sie ein Verzeichnis
sh-4.2 # mount / dev / sdb1 / backupdir #### Mounten Sie die Partition mit Sicherungsdateien
sh-4.2 # dd if = / backupdir /mbr.bak von = / dev / sda bs = 512 count = 1
#################### Backup - Daten - Wiederherstellung
sh-4.2 # exit ######### Beenden
und dann exit beenden —————————— Beenden und neu starten
Wiederherstellung:
Zu diesem Zeitpunkt wurde der Fehler behoben und neu gestartet, um zum Normalzustand zurückzukehren. Sie können das System betreten: