Maison  >  Article  >  Opération et maintenance  >  Conseils sur la façon de dépanner et de réparer les pannes du système Linux

Conseils sur la façon de dépanner et de réparer les pannes du système Linux

巴扎黑
巴扎黑original
2017-08-10 11:38:141661parcourir

[Introduction] J'ai constaté que certaines erreurs se produisaient pendant le processus de démarrage du système Linux, empêchant le démarrage normal du système. J'ai écrit ici plusieurs cas de réparation d'erreurs qui appliquent le mode mono-utilisateur, le fonctionnement de la commande GRUB, et le mode de secours Linux pour aider tout le monde. Apprenez à résoudre de tels problèmes. (1) Le système Linux en mode mono-utilisateur fournit

J'ai constaté que certains échecs se produisaient lors du processus de démarrage du système Linux, empêchant le démarrage normal du système. J'ai écrit plusieurs applications en mode mono-utilisateur et GRUB. opérations de commande ici. , Les cas de réparation des pannes du mode de secours Linux aident tout le monde à comprendre comment résoudre de tels problèmes.

(1) Mode mono-utilisateur

Le système Linux fournit un mode mono-utilisateur (similaire au mode sans échec de Windows), qui peut être exploité dans un environnement minimal Maintenance du système. En mode mono-utilisateur (niveau d'exécution 1), Linux démarre dans un shell racine, la mise en réseau est désactivée et seuls quelques processus sont en cours d'exécution. Le mode mono-utilisateur peut être utilisé pour modifier les dommages du système de fichiers, restaurer les fichiers de configuration, déplacer les données utilisateur, etc.

Voici quelques cas typiques de réparation de pannes système en mode mono-utilisateur :

Cas 1 : Mot de passe root oublié

En mode mono-utilisateur mode , Linux ne nécessite pas de mot de passe root (le système Red Hat ne nécessite pas de mot de passe root, mais SuSe le fait. Les différents systèmes Linux sont légèrement différents. Cet article utilise Fedora Core 6 comme exemple), ce qui rend très facile la modification du mot de passe. mot de passe root. Il est important de comprendre comment passer en mode mono-utilisateur lorsque le système ne parvient pas à démarrer en mode multi-utilisateur.

1. Pendant le processus de démarrage du système, l'interface de démarrage apparaîtra. Appuyez sur n'importe quelle touche pour accéder à l'option de menu GRUB.

Si vous souhaitez éviter cette invite à l'avenir, entrez directement l'option de menu GRUB et supprimez l'élément "hiddenmenu" dans le fichier de configuration grub.conf.

2. Appuyez sur la touche "e" pour modifier les options du menu de démarrage GRUB et l'écran GRUB après avoir appuyé sur la touche "e". Utilisez les touches fléchées pour descendre jusqu'à la ligne du noyau, et appuyez sur la touche "e",

3. Ajoutez un single au curseur de la dernière ligne, appuyez sur la touche Entrée pour revenir à l'écran précédent, et appuyez sur la touche "b" pour démarrer, le système entre automatiquement en mode mono-utilisateur. Si vous souhaitez modifier le mot de passe root, exécutez la commande : sh-3.1# passwd root

Une fois le changement réussi, exécutez. la commande exit pour quitter et redémarrer.

Vous pouvez corriger de nombreux problèmes qui empêchent le système de démarrer normalement en mode mono-utilisateur, tels que :

1 Désactiver les services susceptibles d'interrompre le fonctionnement du système. Par exemple, pour désactiver le service Samba. , exécutez : sh- 3.1# chkconfig smb off Le service Samba ne sera pas démarré au prochain démarrage du système.

2. Modifiez le niveau d'exécution par défaut du système. Si X Window ne peut pas démarrer ou échoue, vous pouvez modifier le fichier /etc/inittab, vous connecter en mode texte et modifier le niveau de démarrage initdefault sur 3 : id : 3 : initdefault :

Cas 2 : Le secteur du disque dur est désordonné

Le problème le plus courant rencontré lors du processus de démarrage est que le disque dur peut avoir des secteurs défectueux ou secteurs désordonnés (dommages aux données), cette situation est principalement causée par une panne de courant anormale ou un arrêt anormal. Lorsque ce genre de problème survient, au démarrage du système, l'écran affichera :

Appuyez sur le mot de passe root ou ctrl+D : À ce moment, entrez le mot de passe root et le système passera automatiquement en mode mono-utilisateur, entrez "fsck -y /dev/hda6 " (fsck est la commande de détection et de réparation du système de fichiers, "-y" définit la réparation automatique lorsqu'une erreur est détectée, /dev/hda6 est la partition du disque dur où l'erreur s'est produite, veuillez modifiez ce paramètre en fonction de la situation spécifique), une fois la réparation du système terminée, utilisez la commande " "reboot" pour redémarrer.

Cas 3, erreur de configuration de l'option GRUB

"Erreur 15" montre que le système ne peut pas trouver le noyau spécifié dans grub.conf. Message d'erreur de démarrage GRUB. Nous avons observé qu'en raison d'une erreur de frappe, "vmlinuz" dans le fichier du noyau était saisi comme "vmlinux", le système n'a donc pas pu trouver le fichier exécutable du noyau. Nous pouvons appuyer sur n'importe quelle touche pour revenir à l'interface d'édition de GRUB et modifier cette erreur. Appuyez sur Entrée pour enregistrer et appuyez sur la touche "b" pour démarrer normalement. Bien sûr, n'oubliez pas de modifier l'erreur dans le fichier grub.conf après. entrer dans le système. Il s'agit d'une erreur que de nombreux utilisateurs novices de Linux commettent facilement lors de la modification des paramètres GRUB. Lorsque cette invite d'écran noir apparaît, faites attention au message d'erreur et vous pourrez le corriger en conséquence.

(2) Dépannage au démarrage de GRUB

J'ai découvert que parfois Linux entre directement dans l'interface de ligne de commande GRUB après le démarrage (uniquement "grub> " invite), à ​​l'heure actuelle, de nombreux utilisateurs choisissent de réinstaller GRUB ou même de réinstaller le système. En fait, d'une manière générale, il y a deux raisons les plus courantes à cet échec : l'une est le mauvais réglage des options dans le fichier de configuration GRUB ; l'autre est la perte du fichier de configuration GRUB (il existe également plusieurs raisons, comme le noyau) ; fichier ou fichier image endommagé ou manquant, suppression accidentelle du répertoire /boot, etc.), si c'est le premier cas, vous pouvez d'abord démarrer le système via la commande GRUB et le réparer si c'est le deuxième cas, vous en avez besoin ; pour utiliser le mode de secours Linux pour le réparer (décrit plus loin dans cet article).

Tout d'abord, nous devons comprendre le processus de démarrage du système de démarrage GRUB. Les principales options de configuration dans le fichier grub.conf sont les suivantes (notez que le fichier de configuration GRUB est /boot/grub/grub). .conf, /etc/grub.conf Juste un lien symbolique vers ce fichier) :

title Fedora Core (2.6.18-1.2798.fc6)root (hd0,0)kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.18-1.2798.fc6.img

La section "title" précise le système démarré par GRUB : la section "root" précise l'emplacement de la partition /boot : la section "kernel" précise l'emplacement du fichier du noyau Lorsque le noyau est chargé. , l'attribut d'autorisation est en lecture seule. ("ro") et spécifie l'emplacement de la partition racine (root=LABEL=/ initrd spécifie l'emplacement du fichier image). Par conséquent, lorsque GRUB démarre, l'ordre est de charger d'abord la partition /boot, puis de charger le noyau et les fichiers image dans l'ordre.

Cas : La section "titre Fedora Core (2.6.18-1.2798.fc6)" a été accidentellement supprimée

À ce moment, le système entrera automatiquement "GRUB> ; "Ligne de commande, afin de dépanner, nous pouvons effectuer les opérations suivantes dans l'ordre :

1. Rechercher la partition où se trouve le fichier /boot/grub/grub.conf GRUB> find /boot/grub /grub.conf(hd0, 0)

2. Vérifiez le fichier grub.conf pour les erreurs GRUB>cat (hd0, 0)/boot/grub/grub.conf Il est recommandé de le faire après l'installation du système. et configuré, le fichier grub.conf doit être sauvegardé S'il existe un fichier de sauvegarde, tel que grub.conf.bak, vous pouvez vérifier le fichier de sauvegarde à ce moment-là, le comparer avec le fichier actuel et trouver l'erreur. : GRUB>cat (hd0, 0)/boot/grub/grub.conf.bak

3. Confirmez l'erreur Enfin, terminez d'abord le démarrage de GRUB via la ligne de commande, puis réparez le fichier grub.conf. erreur après être entré dans le système : 1) Spécifiez la racine de la partition /boot (hd0, 0)

2) Spécifiez le noyau pour charger le noyau /boot/ vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL= / rhgb quiet 3) Spécifiez l'emplacement du fichier image initrd /boot/initrd-2.6.18-1.2798.fc6.img

Astuce : GRUB prend en charge les onglets Fonction de complétion des commandes clavier

4. Démarrez le démarrage à partir de la partition /boot (hd0, 0)

Le mode ligne de commande peut être appelé en appuyant sur la touche "c" dans le mode menu GRUB, ou vous pouvez utiliser Pour tester le noyau nouvellement compilé (définir up kernel, initrd pour démarrer le nouveau noyau et le nouveau fichier image). Améliorer votre compréhension du démarrage GRUB et du démarrage du système Linux contribuera grandement à résoudre ce type de problème.

(3) Application du mode de secours Linux

Lorsque le système ne peut même pas entrer en mode mono-utilisateur ou que la ligne de commande GRUB ne peut pas résoudre le problème problème Problèmes de démarrage, nous devons utiliser le mode de secours Linux pour résoudre les problèmes. Les étapes sont les suivantes :

1. Mettez le CD d'installation de Linux (si vous utilisez un CD, mettez le premier CD de démarrage) dans le lecteur de CD-ROM, configurez le firmware CMOS/BIOS pour démarrer à partir du CD, Lorsque l'écran d'installation de Linux apparaît, entrez « Linux Rescue » à l'invite « Boot : » et appuyez sur Entrée pour passer en mode de secours. (Si vous souhaitez en savoir plus sur le mode de secours, vous pouvez également appuyer sur la touche F5 pour afficher)

2. Le système détectera le matériel, démarrera l'environnement Linux sur le CD et vous demandera de sélectionner la langue à utiliser en mode de secours (il est recommandé de choisir l'anglais par défaut est suffisant. Selon le test de l'auteur, certains systèmes Linux produiront des caractères tronqués lors de la sélection du chinois, utilisez simplement le « nous » par défaut pour les paramètres réseau du clavier) ; les paramètres peuvent être basés sur les besoins. La plupart des réparations de pannes ne nécessitent pas de connexion réseau, vous n'avez donc pas besoin de définir ce paramètre. Sélectionnez « Non ».

3. Ensuite, le système essaiera de trouver la partition racine et une invite de montage apparaîtra. Le paramètre par défaut est le mode de secours. La partition racine du disque dur sera montée sur /mnt/sysimage. répertoire de l'environnement Linux du CD-ROM. L'option par défaut est " " continuer " signifie que l'autorisation de montage est en lecture et en écriture : " Lecture seule " signifie lecture seule. Si la détection échoue, vous pouvez choisir " ignorer " pour ignorer. Ici, parce que le système doit être réparé, des autorisations de lecture et d'écriture sont requises. Généralement, l'option par défaut « continuer » est sélectionnée.

Après avoir passé à l'étape suivante, le système vous invite à exécuter la commande "chroot /mnt/sysimage" pour monter le répertoire racine sur le répertoire racine de notre système de disque dur.

Cas 1 : Réparation du démarrage d'un double système

Lorsque nous installons un environnement à double système, installez d'abord Linux, puis installez Windows ou Windows qui a été installé dans le système ; L'environnement double système est endommagé. Après la réinstallation de Windows, le MBR (Master Boot Record) qui enregistre GRUB sera écrasé par le chargeur de démarrage du système Windows NTLDR, provoquant l'échec du démarrage du système Linux.

1. Si vous souhaitez restaurer le démarrage sur deux systèmes, entrez d'abord en mode de secours en utilisant la méthode ci-dessus et exécutez la commande chroot comme suit :

sh-3.1# chroot /mnt/sysimage

2. dans le répertoire racine du système de disque dur, puis exécutez la commande grub-install pour réinstaller GRUB :

sh-3.1# grub-install /dev/hda

"/dev/hda" est le nom du disque dur si vous utilisez un disque dur SCSI. ou Linux est installé sur le deuxième disque dur IDE, ce réglage doit être effectué en conséquence.

3. Exécutez ensuite la commande exit dans l'ordre pour quitter le mode chroot et le mode de secours (exécutez la commande exit deux fois) :

sh-3.1# exit

Après le redémarrage du système, le démarrage du système double de Le démarrage GRUB sera restauré.

Cas 2 : Réparation du fichier de configuration système perdu

Lors du démarrage du système, un processus très important est que le processus d'initialisation lit son fichier de configuration /etc/inittab et démarre Le programme de service de base du système et le programme de service au niveau de l'exécution par défaut terminent le démarrage du système. Si /etc/inittab est accidentellement supprimé ou modifié de manière incorrecte, Linux ne démarrera pas normalement, comme le montre la figure 7. À ce stade, ces problèmes ne peuvent être résolus que via le mode de secours.

Exemple d'erreur de démarrage manquant dans le fichier /etc/inittab

1、有备份文件的恢复办法进入救援模式,执行chroot命令后,如果有此文件的备份(强烈建议系统中的重要数据目录,如/etc、/boot等要进行备份),直接将备份文件拷贝回去,退出重启即可。如果是配置文件修改错误,如比较典型的/boot/grub/grub.conf及/etc/passwd的文件修改错误,也可以直接修正恢复。假设有备份文件/etc/inittab.bak,则在救援模式下执行:

sh-3.1# chroot /mnt/sysimagesh-3.1# cp /etc/inittab.bak /etc/inittab

2、没有备份文件的恢复办法如果一些配置文件丢失或软件误删除,且无备份,可以通过重新安装软件包来恢复,首先查找到/etc/inittab属于哪一个RPM包(即便文件丢失,因为存在RPM数据库,一样可以查找到结果):sh-3.1# chroot /mnt/sysimage sh-3.1# rpm -qf /etc/inittab initscripts-8.45.3-1

退出chroot模式:

sh-3.1# exit

挂载存放RPM包的安装光盘(在救援模式下,光盘通常挂载在/mnt/source目录下):

sh-3.1# mount /dev/hdc /mnt/source

Fedora系统的RPM包存放在光盘Fedora/RPMS目录下,其他Linux存放位置大同小异,我在这里不一一列举;另外,因为要修复的硬盘系统的根目录在/mnt/sysimage下,需要使用——root选项指定其位置。覆盖安装/etc/inittab文件所在的RPM包:

sh-3.1# rpm -ivh ——replacepkgs ——root /mnt/sysimage /mnt/source/Fedora/RPMS/ initscripts-8.45.3-1.i386.rpm

其中的rpm命令选项“——replacepkgs”表示覆盖安装,执行完成后,即已经恢复了此文件。

如果想只提取RPM包中的/etc/inittab文件进行恢复,可以在进入救援模式后,执行命令:

sh-3.1# rpm2cpio /mnt/source/Fedora/RPMS/initscripts-8.45.3-1.i386.rpm | cpio -idv ./etc/inittabsh-3.1# cp etc/inittab /mnt/sysimage/etc

注意此命令执行时不能将文件直接恢复至/etc目录,只能提取到当前目录下,且恢复的文件名称所在路径要写完整的绝对路径。提取文件成功后,将其复制到根分区所在的/mnt/sysimage目录下相应位置即可。

救援模式是维护Linux的有力武器,本文以上述两个例子讲解了它的应用方法,希望能够给读者一点启示。解决Linux系统启动的故障,必须充分理解Linux的引导过程,才能够对故障进行有效的判断和处理。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn