Obtenir le temps de démarrage du système sous Linux. Étapes de démarrage Linux

Maison / Ne s'allume pas

Dans cet article, nous examinerons le processus de téléchargement système opérateur Linux. Examinons de plus près les étapes par lesquelles passent l'ordinateur et le système d'exploitation pendant le processus de démarrage. L'article s'adresse principalement aux nouveaux utilisateurs qui viennent tout juste de commencer à se familiariser avec Linux. Comprendre le fonctionnement du processus de démarrage Linux est important pour résoudre d'éventuels problèmes liés au processus de démarrage, le cas échéant.

Immédiatement après le démarrage de l'ordinateur, vous êtes invité à appuyer sur une touche spéciale pour démarrer Menu du BIOS, si cela n'est pas fait, le système continuera à démarrer. Nous verrons ensuite ce qui se passe à chaque étape du démarrage de Linux.

BIOS (système d'entrée-sortie de base) - c'est un logiciel pré-intégré au chipset carte mère. Le BIOS démarre l'ordinateur et analyse tout son matériel, vérifiant la présence et la fonctionnalité de périphériques tels que disque dur, CD-ROM, RAM. À ce stade, le processus de démarrage du système d'exploitation Linux commence.

Le BIOS recherche alors le MBR (Master Boot Record), qui se situe généralement dans le premier secteur disque dur et lance le bootloader du premier degré qui y est enregistré, par exemple Grub ou Lilo. Le BIOS prépare le chargeur de démarrage MBR, charge toutes les données dans la RAM et l'exécute.

MBR occupe les 512 premiers octets du disque dur. Celui-ci contient des informations sur le chargeur du système d'exploitation ; les chargeurs pour la plupart des systèmes d'exploitation y sont écrits, par exemple : Linux, Unix, WIndows.

Bien que le MBR occupe de l'espace disque, cette zone n'appartient à aucune partition. L'adresse MBR est généralement la piste 0, cylindre 0. Cet espace est réservé aux programmes de démarrage. Il comprend non seulement le programme de démarrage exécutable, mais également la table de partition sur le disque.

Le BIOS analyse le MBR, trouve le chargeur de démarrage de premier niveau, puis analyse la table de partition et trouve le chargeur de démarrage de deuxième niveau sur la partition marquée comme amorçable.

Chargeur

Si vous divisez le processus de démarrage Linux en étapes, il s'agit de la deuxième étape. La première partie du bootloader, située dans le MBR, se charge dans la RAM.

Ensuite, les fichiers de la deuxième partie du bootloader sont chargés depuis le bootloader section difficile disque. Par exemple, Grub ou Lilo. Cette division est nécessaire car l'intégralité du code du chargeur de démarrage ne tient pas dans 512 octets.

Une fois le chargeur de démarrage Grub démarré, il lit son fichier de configuration et invite l'utilisateur à sélectionner le système d'exploitation à démarrer.

Le fichier de configuration de chaque élément contient un noyau qui doit être chargé. Généralement, les noyaux se trouvent dans le dossier /boot. Grub charge ensuite la version souhaitée du noyau vmlinuz

Préparation du noyau

Le chargement commence ici Noyaux Linux. Grub réserve de l'espace dans BÉLIER pour l'image Initrd, puis charge cette image là-bas. Cette image contient le système de fichiers initial, les modules et les utilitaires nécessaires au chargement anticipé, par exemple pour travailler avec Btrfs ou une partition cryptée. Le chargeur de démarrage prépare ensuite le noyau pour le démarrage et charge les modules nécessaires pour que le processus d'initialisation puisse commencer.

Sous Linux, la plupart des pilotes propriétaires sont packagés sous forme de modules et hébergés sur disque de démarrage initrd.img. De cette façon, lorsque le noyau démarre, tous les modules nécessaires sont déjà disponibles dans le fichier initrd.

Une fois que le noyau a chargé tout ce dont il a besoin et terminé l'initialisation initiale, le noyau Linux est considéré comme terminé et le processus d'initialisation du système, appelé processus d'initialisation, est démarré. Il peut être défini manuellement, par exemple, avec l'option init du noyau ; .

Initialisation du noyau

L'initialisation du noyau comprend les étapes suivantes :

  • Initialisation des composants du processeur tels que la MMU
  • Initialisation du planificateur (PID 0)
  • Montage système de fichiers en mode lecture et écriture
  • Forkez le processus d'initialisation (PID 1)

Pendant le processus d'initialisation, le noyau effectue les tâches suivantes :

  • Démarrage du système principal et gestionnaire général des ressources (RAM, processeur, disque dur)
  • Démarrage du processus d'initialisation (/sbin/init)

Système d'initialisation

C'est à ce stade que le processus de démarrage de Linux est le plus sujet aux erreurs. Une fois que le noyau a transféré le contrôle au système d'initialisation, le système commence à se préparer au fonctionnement et à lancer tous les services nécessaires - journalisation, messagerie système, configuration du réseau, préparation des systèmes de fichiers réseau, configuration du son, montage des systèmes de fichiers locaux et autres composants du système. Sur à l'heure actuelle Dans la plupart des cas, l'un des deux systèmes d'initialisation les plus populaires est utilisé : SysVinit ou Systemd.

Le processus de téléchargement est légèrement différent dans chaque cas, mais l'essence est la même.

SysVinit exécute d'abord le programme /sbin/init, puis lit le fichier d'options /etc/inittab pour déterminer le niveau d'exécution par défaut souhaité. Voici les niveaux de démarrage Linux :

  • 0 - arrêt
  • 1 - Mode mono-utilisateur
  • 2 - Mode multijoueur sans réseau
  • 3 - Mode complet
  • 4 - Non utilisé
  • 5 - Lancez X11

Les niveaux de démarrage Linux peuvent également être modifiés manuellement à l'aide de la commande telinit. La valeur par défaut est généralement le niveau 5.

Ensuite, le script /etc/rc.d/rc.sysinit est exécuté, ainsi que tous les scripts du dossier /etc/rc.d/rcx, où x est le numéro du niveau d'exécution. Par exemple, si nous démarrons avec le niveau d'exécution 5, alors tous les scripts du dossier /etc/rc.d/rc5.d seront exécutés.

Les noms des scripts de démarrage commencent par la lettre S et les scripts de fin par la lettre K. Après avoir examiné cette structure, comprenez-vous déjà comment fonctionnent les services de démarrage automatique sous Linux ? Vous pouvez désormais ajouter manuellement le script au démarrage en créant simplement un lien symbolique dans le dossier souhaité.

Après avoir terminé toutes ces étapes, le système n'a plus qu'à démarrer toutes les consoles virtuelles TTY et un gestionnaire de connexion, tel que XDM ou SDDM.

Dans Systemd, le processus de chargement est légèrement différent ; ici, contrairement à la version précédente, ce ne sont pas des scripts qui sont utilisés, mais des fichiers de configuration spéciaux - des unités. Cela résout de nombreux problèmes, tels que la portabilité, et ajoute également de nouvelles fonctionnalités telles que les dépendances et le chargement parallèle.

Mais l'essence du processus de téléchargement est la même, les mêmes services sont lancés. Au lieu des niveaux de lancement, des unités spéciales sont utilisées - .target. Le nom de l'unité contient le numéro du niveau d'exécution et le mot niveau d'exécution. Par exemple : runlevel0.target - désactiver, etc. Ces unités entraînent avec elles, dans des dépendances, tous les services nécessaires à fonctionnement normal systèmes.

En fait, deux séquences d'événements sont nécessaires pour démarrer un ordinateur Linux et le rendre utilisable : le démarrage et le démarrage. La séquence de démarrage commence lorsque l'ordinateur est allumé et se termine lorsque le noyau est initialisé et que systemd est démarré. Le processus de démarrage termine ensuite la tâche consistant à amener l'ordinateur Linux à état de fonctionnement.

Dans l’ensemble, le processus de téléchargement et d’exécution de Linux est assez facile à comprendre. Il comprend les étapes suivantes, qui seront décrites plus en détail dans les sections suivantes.

POST DU BIOS ;
- chargeur de démarrage (GRUB2) ;
- initialisation du noyau ;
- lancer systemd, le composant parent de tous les processus.

Veuillez noter que cet article couvre GRUB2 et systemd car ils constituent le chargeur de démarrage et le système d'initialisation actuels pour la plupart des distributions majeures. D'autres variantes de ces programmes étaient auparavant utilisées et sont toujours utilisées dans certaines distributions.

Processus de démarrage

Le processus de téléchargement peut être lancé de plusieurs manières. Tout d’abord, si l’alimentation est coupée, sa mise sous tension lancera le processus de démarrage. Si l'ordinateur est déjà en marche, utilisateur local y compris la racine ou utilisateur régulier, peut lancer par programme la séquence de démarrage en utilisant Interface graphique ou une ligne de commande pour redémarrer l'ordinateur. L'ordinateur sera d'abord éteint puis redémarré.

POST DU BIOS

La première étape du processus de démarrage de Linux n'a en réalité rien à voir avec Linux. Il s’agit de la partie matérielle du processus de démarrage et elle est la même pour n’importe quel système d’exploitation. Lorsque l'alimentation est fournie à l'ordinateur, il lance la procédure POST (Power On). Auto-test), qui fait partie du BIOS (Basic I/O System).

Lorsqu'IBM a développé le premier ordinateur, en 1981, le BIOS avait été développé pour initialiser les composants matériels. Le POST fait partie du BIOS, dont le rôle est d'assurer le bon fonctionnement du matériel. Si le POST ne fonctionne pas correctement, l'ordinateur n'est peut-être pas utilisé et le processus de démarrage ne se poursuivra pas.

Le BIOS POST vérifie les fonctionnalités de base matériel, puis émet l'interruption du BIOS, INT 13H, qui recherche les secteurs de démarrage sur tous les périphériques de démarrage connectés. Le premier secteur de démarrage avec un enregistrement de démarrage valide trouvé est chargé dans la RAM, puis le contrôle est transféré au code chargé depuis secteur de démarrage.

Le secteur de démarrage est en fait la première étape du chargeur de démarrage. Il existe trois chargeurs de démarrage utilisés par la plupart des distributions Linux : GRUB, GRUB2 et LILO. GRUB2 est le plus moderne et est aujourd’hui beaucoup plus utilisé que les anciennes versions.

GRUB2

GRUB2 signifie « GRAND Unified Bootloader Version 2 » et est aujourd’hui le principal chargeur de démarrage de la plupart des distributions Linux. GRUB2 est un programme qui rend l'ordinateur suffisamment intelligent pour trouver le noyau du système d'exploitation et le charger en mémoire. Parce que GRUB est plus facile à écrire et à dire que GRUB2, j'utiliserai le terme GRUB tout au long de ce document, mais je ferai référence à GRUB2, sauf indication contraire.

GRUB a été conçu pour être compatible avec la spécification multiboot, qui permet à GRUB de démarrer plusieurs Versions Linux et autres systèmes d'exploitation gratuits ; il peut également démarrer l'enregistrement de démarrage des systèmes d'exploitation propriétaires.

GRUB permet également à l'utilisateur de choisir de démarrer l'un des nombreux noyaux différents pour n'importe quelle distribution Linux. Cela permet de démarrer à partir de version précédente noyau, si la version mise à jour ne fonctionne pas correctement ou est incompatible avec une partie logiciel. GRUB peut être configuré à l'aide du fichier /boot/grub/grub.conf.

GRUB1 est désormais considéré comme obsolète et a été remplacé dans la plupart des distributions modernes par GRUB2, qui est une réécriture de GRUB1. Les distributions basées sur Red Hat ont été mises à jour vers GRUB2, à commencer par Fedora 15 et CentOS/RHEL 7. GRUB2 offre les mêmes fonctionnalités que GRUB1, mais GRUB2 offre également plus de flexibilité dans la phase de pré-démarrage. GRUB2 est configuré à l'aide du fichier /boot/grub2/grub.cfg.

La fonction principale de GRUB est de charger le noyau Linux en mémoire et de l'exécuter. Les deux versions de GRUB fonctionnent fondamentalement de la même manière et le processus implique les trois mêmes étapes, mais j'utiliserai GRUB2. La configuration de GRUB ou GRUB2 et l'utilisation des commandes GRUB2 dépassent le cadre de cet article.

Bien que GRUB2 n'utilise pas officiellement la notation d'étape pour les trois étapes du démarrage de GRUB2, il est pratique de s'y référer de cette façon, ce que je ferai dans cet article.

Étape 1

Comme mentionné dans la section POST BIOS, à la fin du POST, le BIOS examine les lecteurs connectés à la recherche. entrée de démarrage, généralement situé dans l'enregistrement de démarrage principal (MBR), charge le premier trouvé dans la RAM, puis commence à exécuter l'enregistrement de démarrage. Le code d'amorçage, c'est-à-dire l'étape 1 de GRUB2, est très petit car il doit tenir dans le premier secteur de 512 octets du disque dur avec la table de partition. La quantité totale d'espace allouée au code d'amorçage réel dans le MBR partagé classique est de 446 octets. Le fichier de 446 octets pour l'étape 1 s'appelle boot.img et ne contient pas de table de partition, qui est ajoutée séparément à l'enregistrement de démarrage.

Étant donné que l'enregistrement de démarrage doit être très petit, il n'est pas très intelligent et ne comprend pas la structure du système de fichiers. Par conséquent, le seul objectif de l’étape 1 est de rechercher et de charger l’étape 1.5. Pour ce faire, l'étape 1.5 de GRUB doit être située dans l'espace entre l'enregistrement de démarrage lui-même et la première partition du disque. Une fois l'étape 1.5 de GRUB chargée dans la RAM, l'étape 1 transfère le contrôle à l'étape 1.5.

Étape 1.5

Comme mentionné ci-dessus, l'étape 1.5 de GRUB doit être située dans l'espace entre l'enregistrement de démarrage lui-même et la première partition du disque. Pour des raisons techniques, cet espace n’a pas été historiquement utilisé. La première partition du disque dur commence au secteur 63 avec le MBR au secteur 0, ce qui laisse des secteurs de 62 512 octets - 31 744 octets - qui stockent le fichier core.img, qui est l'étape 1.5 de GRUB. Le fichier core.img a une taille de 25 389 octets, il y a donc beaucoup d'espace entre le MBR et la première partition de disque. espace libre pour le stocker.

En raison de la plus grande quantité de code pouvant être impliquée pour l'étape 1.5, celle-ci peut contenir plusieurs pilotes pour les systèmes de fichiers courants tels que EXT et d'autres systèmes de fichiers Linux, FAT et NTFS. GRUB2 core.img est beaucoup plus complexe et intelligent que l'ancienne étape 1.5 de GRUB1. Cela signifie que GRUB2 stage 2 peut être localisé sur un système de fichiers EXT standard, mais ne peut pas être localisé sur un volume logique. Ainsi, l'emplacement standard des fichiers de l'étape 2 est le système de fichiers /boot, à savoir /boot/grub2.

Notez que le répertoire /boot doit se trouver sur un système de fichiers pris en charge par GRUB. Tous les systèmes de fichiers ne sont pas adaptés. La fonction de l'étape 1.5 est de charger les pilotes du système de fichiers nécessaires pour rechercher les fichiers de l'étape 2 dans le système de fichiers /boot et charger les pilotes nécessaires.

Étape 2

Tous les fichiers GRUB stage 2 se trouvent dans le répertoire /boot/grub2 et plusieurs de ses sous-répertoires. GRUB2 n'a pas de fichier image comme les étapes 1 et 2. Au lieu de cela, il se compose principalement de modules de noyau chargés selon les besoins à partir du répertoire /boot/grub2/i386-pc.

La fonction de GRUB2 stage 2 est de rechercher et de charger le noyau Linux dans la RAM et de basculer le contrôle de l'ordinateur vers le noyau. Le noyau et ses fichiers associés se trouvent dans le répertoire /boot. Les fichiers du noyau peuvent être identifiés car leurs noms commencent tous par vmlinuz. Vous pouvez afficher le contenu du répertoire /boot pour voir les noyaux installés sur votre système.

GRUB2, comme GRUB1, prend en charge le démarrage à partir de l'un des noyaux Linux. Le gestionnaire de paquets de Red Hat, DNF, prend en charge le stockage de plusieurs versions du noyau, donc s'il y a un problème avec le noyau lui-même nouvelle version, vous pouvez télécharger davantage ancienne version graines. Par défaut, GRUB fournit un menu de pré-démarrage des noyaux installés, comprenant une option de démarrage sécurisé et, si configuré, une option de récupération.

Étape 2 GRUB2 charge le noyau sélectionné en mémoire et transfère le contrôle de l'ordinateur au noyau système.

Cœur

Tous les noyaux sont stockés dans un format d'archive auto-extractible pour économiser de l'espace. Les noyaux se trouvent dans le répertoire /boot avec l'image du disque RAM d'origine et les cartes des périphériques du disque dur.

Une fois que le noyau sélectionné est chargé en mémoire et commence à s'exécuter, il doit d'abord se désarchiver avant de pouvoir exécuter quoi que ce soit. travail utile. Une fois que le noyau s'est éjecté, il charge systemd, qui a remplacé l'ancien programme d'initialisation SysV, et en bascule le contrôle.

C'est la fin du processus de téléchargement. À ce stade, le noyau Linux et systemd sont en cours d'exécution, mais sont incapables d'effectuer des tâches productives pour l'utilisateur final car rien ne fonctionne.

Processus de démarrage

Le processus de démarrage suit le processus de démarrage et met votre ordinateur Linux dans un état de fonctionnement où il peut être utilisé pour un travail productif.

système

systemd est la mère de tous les processus et est responsable de mettre le système Linux dans un état où il peut être exécuté. Certaines de ses fonctionnalités sont beaucoup plus larges que ancien programme init sont conçus pour gérer divers aspects d'un système Linux en cours d'exécution, notamment la création de systèmes de fichiers et le démarrage et la gestion des services système nécessaires au quotidien. Linux fonctionne. Toutes les tâches systemd non liées à la séquence de démarrage dépassent le cadre de cet article.

Tout d'abord, systemd monte les systèmes de fichiers spécifiés dans /etc/fstab, y compris les fichiers d'échange ou les partitions. À ce stade, elle peut accéder aux fichiers de configuration situés dans /etc, y compris le sien. Il utilise son fichier de configuration, /etc/systemd/system/default.target, pour définir l'état (cible) dans lequel il doit démarrer le système. Le fichier default.target n'est qu'un lien symbolique vers le fichier cible réel. Pour poste de travail ou ordinateurs de bureau ce sera généralement graphique.target, ce qui équivaut au niveau d'exécution 5 dans l'ancien système d'initialisation SystemV. Pour le serveur par défaut, il s'agira probablement de multi-user.target, qui est similaire au niveau d'exécution 3 dans SystemV. Emergency.target est similaire au mode solo.

Notez que les cibles et les services sont des unités systemd.

Le tableau 1 ci-dessous fournit une comparaison des cibles systemd avec les anciens niveaux d'exécution SystemV. Les alias cibles sont fournis par systemd pour une compatibilité ascendante. Les alias cibles permettent aux scripts et à de nombreux administrateurs système comme moi d'utiliser des commandes SystemV telles que init 3 pour modifier les niveaux d'exécution. Bien entendu, les commandes SystemV sont transmises à systemd pour interprétation et exécution.

Niveau SystèmeV Objectifs cible Alias ​​​​cibles systemd Description
- halt.target - Arrête le système sans couper l'alimentation.
0 poweroff.cible niveau d'exécution0.cible Arrête le système en coupant l'alimentation.
S urgence.cible - Mode mono-utilisateur. Les services sont en panne ; les systèmes de fichiers ne sont pas montés. Il s'agit d'un niveau de fonctionnement de base avec uniquement un shell d'urgence exécuté sur la console principale pour permettre à l'utilisateur d'interagir avec le système.
1 sauvetage.cible niveau d'exécution1.cible Un système de base qui inclut des systèmes de fichiers montés avec uniquement le fichier principal services en cours d'exécution et une coque de secours sur la console principale.
2 - niveau d'exécution2.cible Mode multi-utilisateur sans NFS, mais avec d'autres services de console en cours d'exécution
3 multi-utilisateur.cible runlevel3.cible Tous les services sont en cours d'exécution, mais seule l'interface de ligne de commande est disponible.
4 - niveau d'exécution4.cible Non utilisé
5 graphique.cible niveau d'exécution5.cible Mode multi-utilisateur avec interface graphique
6 redémarrer.cible runlevel6.cible
- par défaut.cible - Cette cible est toujours un lien symbolique vers multi-user.target ou Graphical.target. le système utilise toujours default.target pour démarrer le système. default.ne devrait jamais faire référence à halt.target, poweroff.target ou reboot.target.

Tableau 1 : Comparaison des niveaux d'exécution SystemV avec les cibles systemd.

Chaque cible possède un ensemble de dépendances décrites dans le fichier de configuration. systemd exécute les dépendances nécessaires. Ces dépendances sont des services requis pour exécuter un hôte Linux à un certain niveau de fonctionnalités. Lorsque toutes les dépendances répertoriées dans les fichiers de configuration cible sont téléchargées et exécutées, le système s'exécute à ce niveau cible.

systemd examine également les anciens répertoires d'initialisation SystemV pour voir si les fichiers de démarrage s'y trouvent. S'ils sont présents, systemd les utilise comme fichiers de configuration pour démarrer les services décrits dans ces fichiers. Dépassé service réseau est bon exemple un de ces cas où Fedora utilise toujours les fichiers de démarrage SystemV.

La figure 1 ci-dessous est copiée directement à partir de la page de manuel de démarrage. Il montre séquence généraleévénements lors du démarrage de systemd et les exigences de base pour leur commande afin de garantir un démarrage réussi.

Les cibles sysinit.target et basic.target peuvent être considérées comme points de contrôle pendant le processus de démarrage. Bien que l'un des objectifs de conception de systemd était de permettre aux services système de s'exécuter simultanément, certains services et cibles fonctionnelles doivent toujours être démarrés avant que d'autres services et cibles puissent être démarrés. Ces points de contrôle ne peuvent pas être franchis tant que tous les services et objectifs requis n'ont pas été complétés.

Ainsi, sysinit.target est atteint lorsque tous les composants dont il dépend sont terminés. Le montage des systèmes de fichiers, la configuration des fichiers d'échange, le démarrage d'udev, l'installation du générateur de nombres aléatoires, le démarrage des services de bas niveau et la configuration des services cryptographiques si un ou plusieurs systèmes de fichiers sont chiffrés doivent être effectués, mais dans sysinit.target, ces tâches peuvent s'exécuter en parallèle.

Sysinit.target démarre tous les services et composants de bas niveau requis pour les fonctionnalités minimales du système et qui seront nécessaires pour migrer vers basic.target.

Local-fs-pre.target | sauvetage.cible v (divers montages et (divers swap (divers services cryptsetup fsck...) périphériques...) périphériques...) (divers bas niveau (divers bas niveau | | | services : udevd, API montages VFS : v v v fichiers tmp , file d'attente aléatoire, configfs, local-fs.target swap.target cryptsetup.target seed, sysctl, ...) debugfs, ...) | | | | | urgence.cible\_________________|_________________ | ___________________|____________________/ \|/ v sysinit.target | multi-utilisateur.cible ____________________________________/|\________________________________________ / | | | \ | | | | | graphique.cible

vv | v v (divers (divers | (divers minuteurs de secours.service...) chemins...) | sockets...) |

Une fois sysinit.target exécuté, systemd exécutera basic.target, démarrant tous les composants nécessaires à son exécution. basic.target fournit des fonctionnalités supplémentaires en exécutant les composants nécessaires à la cible suivante. Ceux-ci incluent la configuration d'aspects tels que les chemins vers divers répertoires exécutables, sockets de communication et minuteries.

Enfin, des cibles au niveau utilisateur, multi-user.target ou Graphical.target, peuvent être initialisées. Veuillez noter que le mode multijoueur doit être atteint avant que les dépendances graphiques ne soient satisfaites.

Les cibles soulignées dans la figure 1 sont des cibles de lancement courantes. Lorsqu’un de ces objectifs est atteint, le lancement est terminé. Si la valeur par défaut est multi-user.target, vous devriez voir la connexion en mode texte sur la console. Si la valeur par défaut est graphique.target, vous devriez voir un écran de connexion graphique ; L'écran de connexion spécifique que vous voyez dépendra du gestionnaire de session par défaut que vous utilisez.

Problèmes

J'ai récemment dû changer le noyau par défaut sur une machine Linux exécutant GRUB2. J'ai constaté que certaines commandes ne semblaient pas fonctionner comme prévu, ou peut-être que je les utilisais de manière incorrecte. Je ne suis pas encore sûr des raisons, je dois faire d'autres tests.

La commande grub2-set-default n'a pas défini correctement l'index du noyau par défaut dans /etc/default/grub, donc le noyau alternatif que je voulais ne se chargeait pas. Ensuite, j'ai modifié manuellement /etc/default/grub GRUB_DEFAULT=saved en GRUB_DEFAULT=2, où 2 est l'index du noyau installé que je voulais démarrer. J'ai ensuite exécuté la commande grub2-mkconfig> /boot/grub2/grub.cfg pour créer un nouveau fichier de configuration grub. Cette solution de contournement a fonctionné comme prévu et a démarré un noyau alternatif.

Conclusion

GRUB2 et systemd sont des composants clés lors des phases de démarrage et de démarrage de la plupart des distributions Linux modernes. Ces deux composants fonctionnent ensemble pour charger d'abord le noyau, puis exécuter tous les services système nécessaires pour créer un système Linux entièrement fonctionnel.

Bien que je trouve GRUB2 et systemd plus complexes que leurs prédécesseurs, ils sont assez faciles à apprendre et à gérer. Les pages de manuel contiennent de nombreuses informations sur systemd, et freedesktop.org a ensemble complet Pages de manuel systemd disponibles en ligne.

Décomposons le processus de démarrage du système d'exploitation Linux en neuf étapes qui s'appliquent à presque toutes les configurations du système d'exploitation Linux :

  1. La première étape du chargement consiste à lire le BOIS de l'ordinateur ou tout autre matériel et logiciel à partir du MBR du disque dur ou autre. périphérique de démarrage(comme un CD, une disquette ou un périphérique de démarrage réseau, etc.).
  2. Le chargeur de démarrage commence à fonctionner. Linux sur architecture x86 utilise généralement LILO ou GRUB. Certains systèmes plus anciens peuvent utiliser Loadlin pour démarrer via une partition DOS secondaire. DANS Systèmes électriques PC®, cela peut être BootX ou yaboot. Du tout, chargeur est un programme simple qui sait néanmoins où chercher le noyau Linux, peut choisir lequel démarrer parmi plusieurs versions du noyau, ou même sélectionner un système d'exploitation différent sur la même machine.
  3. Le système de fichiers racine est monté. Dans certains cas, un système de fichiers racine initial est temporairement monté à partir du contenu, par exemple, d'un disque RAM initialisé par le chargeur de démarrage pour permettre le chargement des pilotes et modules spéciaux pouvant être nécessaires à l'exécution du système de fichiers racine réel.

    Maintenant que nous avons un système de fichiers racine, nous pouvons commencer l'initialisation proprement dite.

  4. Le processus init est lancé, ancêtre de tous les autres processus du système d'exploitation Linux.
  5. Le contenu du fichier /etc/inittab est lu pour déterminer la progression du téléchargement. Il est particulièrement important de savoir ce qui est écrit dans le fichier /etc/inittab dans la ligne qui détermine le niveau de démarrage du système (et, par conséquent, les étapes de démarrage ultérieures).

    En effet, tout ce qui se passe après ce point est entièrement déterminé par le contenu du fichier /etc/inittab. En fait, les scripts et autres outils qui fonctionnent sont soumis aux paramètres appropriés, mais en principe vous pouvez complètement modifier /etc/inittab pour contrôler le fonctionnement des différents outils comme vous le souhaitez.

    L'un des paramètres du fichier /etc/inittab est particulièrement important. Il s'agit d'une ligne similaire à :

    identifiant:5:initpar défaut :

    Il est généralement situé au début du fichier et définit le niveau d'exécution du système. Le niveau d'exécution détermine les actions qui seront prises dans les instructions restantes du fichier /etc/inittab.

    Que se passe-t-il lorsque le script /etc/inittab est exécuté ? Et surtout, quels fichiers et répertoires participent au processus ?

  6. Initialisation indépendante du niveau d'exécution. Un certain nombre d'actions seront effectuées quel que soit le niveau d'exécution défini. Ces étapes sont indiquées dans /etc/inittab par des lignes similaires à :

    # Initialisation du système.
    si::sysinit:/etc/rc.d/rc.sysinit

    Sur certains systèmes Linux (principalement les systèmes basés sur Debian), vous verrez probablement des lignes ressemblant davantage à celles-ci :

    si::sysinit:/etc/init.d/rcS

    Dans ce dernier cas, le fichier /etc/init.d/rcS est simplement un script qui exécute les scripts /etc/rcS.d/??* un par un. En revanche, si votre système utilise /etc/rc.d/rc.sysinit, un long script contenu dans ce fichier suffit pour effectuer l'initialisation.

  7. Initialisation dépendante du niveau d'exécution. En fait, vous pouvez définir autant d'activités de niveau d'exécution que vous le souhaitez, et chaque activité peut être affectée à un ou plusieurs niveaux d'exécution. Généralement, /etc/inittab contiendra des lignes telles que :

    l0:0:attendre:/etc/rc.d/rc 0
    # ...
    l5:5:attendre:/etc/rc.d/rc 5
    l6:6:attendre:/etc/rc.d/rc 6

    À son tour, le script /etc/rc.d/rc gérera tous les fichiers nommés /etc/rc$1.d/??*. Dans l'exemple suivant, vous pouvez voir que sur un système donné à partir du niveau d'exécution 5, les éléments suivants seront exécutés (dans l'ordre) :

    /etc/rc5.d/K15postgresql
    /etc/rc5.d/S01switchprofile
    /etc/rc5.d/S05harddrake
    ...
    /etc/rc5.d/S55sshd
    ...
    /etc/rc5.d/S99linuxconf
    /etc/rc5.d/S99local

    Les fichiers commençant par "K" ou "k" sont tuer des scripts, ils achèvent des processus ou organisent leurs actions (conséquences). Les fichiers commençant par « S » ou « s » sont scripts de démarrage, ils démarrent de nouveaux processus ou préparent le système à s'exécuter à ce niveau d'exécution. La plupart d'entre eux sont des scripts shell, et la plupart d'entre eux seront des liens (souvent vers /etc/init.d/).

    Alors que Système Linux démarre à un certain niveau d'exécution, vous souhaitez vous connecter au système en tant qu'utilisateur. Pour garantir que l'autorisation est réussie, le programme getty est utilisé. De nombreux types de programmes basés sur Getty sont utilisés par les créateurs de distributions telles que agetty, mgetty et mingetty. Mais ils font tous à peu près la même chose.

  8. Connectez-vous sur invitation. Le familier /etc/inittab exécute généralement getty sur un ou plusieurs écrans virtuels et ce sur plusieurs niveaux d'exécution. Les niveaux sont définis dans des lignes telles que :

    # Exécutez gettys dans les niveaux d'exécution standard
    1:2345:respawn:/sbin/mingetty tty1
    2:2345:respawn:/sbin/mingetty tty2
    3:2345:respawn:/sbin/mingetty tty3
    4:2345:respawn:/sbin/mingetty tty4
    5:2345:respawn:/sbin/mingetty tty5
    6:2345:respawn:/sbin/mingetty tty6

    Le numéro au début indique dans quel terminal virtuel le programme getty s'exécutera ; les prochains nombres sont les niveaux d'exécution auxquels cela se produira (par exemple, exécuter mingetty à chacun des niveaux 2, 3, 4 et 5).

Les étapes suivantes lancent le démarrage de services supplémentaires, l'accès à l'environnement graphique, la restauration des paramètres de l'interface utilisateur ou d'autres détails plus personnalisés qui dépassent la portée de ce didacticiel.

Le concept de niveau d'exécution est quelque peu arbitraire ; du moins, il n'est pas écrit dans le noyau Linux. Les niveaux d'exécution réels sont mappés à un ensemble de nombres afin que vous puissiez définir (ou modifier un niveau d'exécution existant) par défaut en sélectionnant un nombre compris entre 0 et 6. Par convention, la signification suivante est attribuée à chaque numéro de niveau d'exécution :


Listing 1. Niveaux d'exécution
# Niveau d'exécution par défaut. Les niveaux d'exécution utilisés par Mandrake Linux sont : # 0 - Halt (Ne définissez PAS initdefault sur ceci) # 1 - Mode mono-utilisateur # 2 - Multi-utilisateur, sans NFS (Identique à 3, si vous n'avez pas de réseau) # 3 - Mode multi-utilisateur complet #4 - Inutilisé #5 - X11 #6 - Redémarrer (Ne définissez PAS initdefault sur ceci)

Cette convention peut être considérée comme utilisée dans la distribution Mandrake Linux, mais la plupart des distributions utilisent la même convention. Il se peut que les distributions textuelles ou intégrées n'utilisent pas certains niveaux d'exécution, mais elles réserveront toujours les mêmes numéros.

Vous avez vu beaucoup de lignes /etc/inittab dans les exemples, mais que signifient-elles exactement ? Chaque ligne a le format :

identifiant: niveaux d'exécution: action: processus

Le champ id est une courte abréviation pour une ligne de configuration. (1 à 4 lettres dans dernières versions initialiser ; 1 à 2 chez les plus âgés). Le champ des niveaux d'exécution a déjà été abordé. Le champ d'action suivante indique l'action entreprise par la ligne. Certaines actions peuvent être « spéciales », telles que :

ca::ctrlaltdel:/sbin/shutdown -t3 -r maintenant

Cette ligne définit l'action de la séquence de touches Ctrl-Alt-Suppr (quel que soit le niveau d'exécution). Mais la plupart des actions déclenchent simplement les processus correspondants. Une liste partielle d'actions comprend :

  • respawn : le processus sera redémarré à chaque fois qu'il se terminera (comme c'est le cas avec getty).
  • wait : le processus sera démarré une fois lorsque le niveau d'exécution spécifié sera entré, et init attendra qu'il se termine.
  • once : le processus s'exécutera une fois lorsque le niveau d'exécution spécifié sera entré.
  • boot : le processus sera exécuté lors du démarrage du système (mais après sysinit). Le niveau de lancement n'a pas d'importance.

Configuration du processus de démarrage et de démarrage du système

Il y a quelques années, un programme appelé LILO était principalement utilisé pour démarrer Linux sur les systèmes x86. Le nom LILO est l'abréviation de « LInux LOader ». De nos jours, un programme plus populaire s'appelle GRUB (GRand Unified Bootloader). Sur les systèmes non x86, différents chargeurs de démarrage sont utilisés, mais ils sont tous configurés de la même manière que LILO et GRUB.

Bien qu'il existe des différences dans leur syntaxe de configuration, LILO et GRUB effectuent en grande partie la même tâche. Essentiellement, chacun d'eux propose un choix de système d'exploitation (y compris éventuellement plusieurs noyaux Linux) et charge le noyau du système d'exploitation sélectionné dans la mémoire de l'ordinateur. Les deux programmes vous permettent de transmettre des arguments au noyau Linux en cours de route, et les deux peuvent être configurés pour démarrer des systèmes d'exploitation non Linux sur la même machine.

LILO ou GRUB (ou un autre chargeur de démarrage) réside sur le MBR (Master Boot Record) du disque dur principal, qui est automatiquement démarré par le BIOS du système. LILO a des restrictions sur le chargement de fichiers bruts spéciaux secteur dur disque. Le chargeur de démarrage GRUB est plus sophistiqué et reconnaît différents systèmes de fichiers, tels que ext2/3, ReiserFS, VFAT ou UFS. Cela signifie que GRUB n'a pas besoin de réécrire le MBR à chaque fois que le fichier de configuration change (comme le fait LILO).

Le chargeur de démarrage LILO est configuré à l'aide du contenu du fichier /etc/lilo.conf. Pour un aperçu plus détaillé des options de configuration de LILO, lisez les pages de manuel de lilo.conf. La nature générale du comportement est déterminée par plusieurs paramètres initiaux. Par exemple, vous verrez probablement boot=/dev/hda ou quelque chose de similaire. Cette commande installe le chargeur de démarrage sur le MBR du disque dur principal. lecteur IDE . Vous pouvez également installer LILO dans une partition spécifique, généralement lorsque vous utilisez un autre chargeur de démarrage principal. Par exemple, boot=/dev/sda3 installe LILO sur la troisième partition du premier disque SCSI. D'autres paramètres déterminent apparence

N'oubliez pas qu'après avoir apporté des corrections au fichier /etc/lilo.conf, vous devez exécuter LILO pour installer un nouveau secteur de démarrage utilisé au moment du démarrage. Il est facile d'oublier de définir de nouveaux paramètres, mais le chargeur de démarrage lui-même ne pourra pas lire la nouvelle configuration à moins que les adresses réelles des secteurs (que LILO reconnaît lors de son exécution) soient écrites.

Si LILO est utilisé, les lignes sont particulièrement importantes tapez une image= et peut-être autre= s'il y a le choix entre Linux et d'autres systèmes d'exploitation. Un exemple /etc/lilo.conf pourrait contenir :


Listing 2. Exemple de configuration LILO
image=/boot/bzImage-2.7.4 label="experimental" image=/boot/vmlinuz label="linux" initrd=/boot/initrd.img append="devfs=mount acpi=off quiet" vga=788 read- seulement autre=/dev/hda3 label=dos

Cette configuration permet de choisir soit le noyau 2.7.4, en cours de développement, soit le noyau stable (ci-après déclaré être utilisé comme disque RAM de démarrage (initrd) lors du processus de démarrage). Vous pouvez également sélectionner DOS qui se trouve sur la troisième partition IDE principal disque.

L'avantage indéniable de GRUB est qu'il n'est pas nécessaire de le réinstaller à chaque fois que vous modifiez vos options de démarrage. Bien sûr, vous devez toujours installer GRUB la première fois, généralement avec une commande telle que grub-install /dev/hda . En règle générale, la distribution le fait pour vous pendant le processus d'installation, vous ne pouvez donc jamais le faire vous-même.


Listing 3. Exemple de configuration GRUB
timeout 5 couleur noir/jaune jaune/noir par défaut 0 mot de passe mot secret titre noyau Linux (hd0,1)/boot/vmlinuz root=/dev/hda2 quiet vga=788 acpi=off initrd (hd0,1)/boot/initrd.img titre noyau expérimental (hd0,1)/boot/bzImage-2.7.4 root=/dev/hda2 titre silencieux dos root (hd0,4) makeactive chainloader +1

LILO et GRUB vous permettent de transmettre des paramètres spéciaux au noyau de votre choix. Si vous utilisez LILO, vous pouvez transmettre des options à l'invite de démarrage en les ajoutant au noyau de votre choix. Par exemple, pour les options de démarrage normales, vous pouvez saisir :

LILO : Linux ether=9.0x300.0xd0000 root=/dev/ha2 vga=791 acpi=on

Cette ligne transmet des paramètres spéciaux au module Ethernet, spécifie la partition racine, sélectionne le mode vidéo, etc. Bien sûr, tout cela n'est pas pratique, car vous devez connaître exactement les valeurs appropriées pour ces paramètres et pouvoir les saisir correctement.

Le paramètre qui modifie le niveau de démarrage du système du chargeur de démarrage est particulièrement important. Par exemple, à des fins de récupération du système, vous souhaitez démarrer le système en mode mono-utilisateur. Cela se fait comme suit :

LILO : single expérimental

Une autre option spéciale est l'argument init=, qui vous permet d'utiliser des programmes autres que init comme processus principal. Les options pour le mode d'urgence pourraient être init=/bin/sh , ce qui vous permettrait au moins d'avoir ligne de commande(Shell Linux) si init est complètement hors service.

Avec le chargeur de démarrage GRUB, vous disposez d'encore plus de flexibilité. En fait, GRUB est un shell de ligne de commande et fournit à l'utilisateur des fonctionnalités de base du shell. GRUB permet non seulement de modifier la configuration de base du chargeur de démarrage, mais même de lire les systèmes de fichiers. Pour configurer les options de démarrage, appuyez sur "e" sur la ligne de commande GRUB, puis ajoutez des paramètres (par exemple, le numéro de niveau d'exécution ou le mot-clé "single" comme dans LILO). Tous les autres arguments à l'invite de démarrage que vous pourriez saisir à l'aide de LILO peuvent être utilisés sur la ligne de commande GRUB.

Pour comprendre vos options, vous pouvez ouvrir l'invite de commande GRUB. Par exemple, supposons que vous pensez que votre fichier /etc/inittab est mal configuré et que vous souhaitez enquêter avant de démarrer. Vous pourriez saisir :

grub>cat (hd0,2)/etc/inittab

Cela vous permettrait de visualiser votre fichier d'initialisation à l'avance, sans démarrer le système d'exploitation. S'il y avait une erreur, il serait possible de démarrer en mode mono-utilisateur et de la corriger.

Une fois que vous avez compris les étapes de démarrage de Linux après le démarrage du noyau (en d'autres termes, le processus d'initialisation et tout ce qu'il appelle), vous comprenez également comment les modifier. Fondamentalement, toute la configuration se fait en éditant le fichier /etc/inittab et divers scripts dans le répertoire /etc/rc?.d/.

Par exemple, j'ai récemment dû configurer le BIOS vidéo sur un ordinateur portable Linux basé sur Debian à l'aide de solutions tierces. S'il n'était pas démarré avant le démarrage des X11, mon pilote XOrg ne définirait pas les modes vidéo corrects. Une fois que j'ai compris quel était le problème, la solution était aussi simple que de créer le script /etc/rcS.d/S56-resolution.sh. En d’autres termes, j’exécutais un script supplémentaire à chaque démarrage du système.

Notez que je me suis assuré que ce script s'exécutait avant /etc/rcS.d/S70xorg-common en raison de la simple convention selon laquelle les scripts s'exécutent par ordre alphabétique (si je voulais que mon script s'exécute plus tard, j'aurais pu appeler serait une résolution S98 .sh au lieu de /etc/rcS.d/S56-resolution.sh). Peut-être que je mettrais ce script uniquement dans le répertoire /etc/rc5.d/ afin qu'il s'exécute lorsque les X11 sont en cours d'exécution, mais je peux exécuter manuellement startx sous un niveau d'exécution différent.

Tous les paramètres pendant le processus d'initialisation sont ouverts pour modification, directement dans le système de fichiers ; presque tout peut être corrigé à l'aide de scripts texte.

Récupération du système de fichiers

L'avantage de Linux du point de vue de la maintenance du système est que tout est un fichier. Bien sûr, de temps en temps la question se pose , dans lequel fichier qui vit. Mais, en règle générale, restaurer Linux signifie utiliser les utilitaires de base du système de fichiers tels que cp, mv, rm et éditeur de texte tapez vi. Des outils tels que grep, awk et bash sont utiles pour automatiser ces actions ; ou à un niveau supérieur, perl ou python. Mais dans ce tutoriel, nous n’avons pas pour objectif d’étudier la gestion des fichiers.

En supposant que vous sachiez comment modifier et gérer des fichiers, sur un système endommagé, les fichiers concernés risquent de ne pas être utilisables du tout.

Ton meilleur ami dans la restauration d'un système de fichiers fsck endommagé.

La commande fsck n'est en fait que le début de la commande pour grande quantité les autres outils fsck.* sont fsck.ext2, fsck.ext3 ou fsck.reiser. Vous pouvez déterminer le type explicitement en utilisant l'option -t, mais fsck fera un effort pour le découvrir par lui-même. Lisez la page de manuel de fsck ou fsck.* pour plus d'informations. informations détaillées. La principale chose que vous devez savoir est que lorsque vous utilisez l'argument -a, le programme essaiera de corriger toutes les erreurs qu'il trouvera.

Vous pouvez vérifier le système de fichiers non monté en mentionnant l'emplacement du périphérique sur lequel il se trouve. Par exemple, tapez fsck /dev/hda8 pour rechercher une partition inutilisée. Vous pouvez également vérifier le système de fichiers racine en tapant fsck /home , mais ne le faites généralement que si le système de fichiers est déjà monté en lecture seule plutôt qu'en lecture-écriture.

L'un des principaux avantages des systèmes Linux est la flexibilité du contrôle utilisateur lors du montage et du démontage des systèmes de fichiers. Contrairement à Windows et à certains autres systèmes d'exploitation, les emplacements des partitions ne sont pas automatiquement épinglés par le noyau Linux, mais sont attachés à la hiérarchie du système de fichiers racine avec la commande mount. En plus, différents types

les systèmes de fichiers (même sur des appareils différents) peuvent être montés dans la même hiérarchie. Vous pouvez démonter une partition spécifique avec la commande umount, attribuer n'importe quel point de montage (par exemple, /home) ou adresse de périphérique (par exemple, /dev/hda7).

Lorsqu'un système de fichiers est en cours de restauration, la possibilité de contrôler les points de montage vous permet d'analyser l'état des partitions à l'aide de fsck ou d'autres outils sans risquer d'endommager davantage un système de fichiers déjà endommagé. Vous pouvez également monter le système de fichiers normalement en utilisant diverses options ; les plus importants montent le système de fichiers pour une utilisation en lecture seule en utilisant l'un des synonymes -r ou -o ro.

À titre d'exemple, vous souhaiterez peut-être remplacer l'emplacement du répertoire d'un utilisateur par celui d'un autre, soit parce que la partition est endommagée, soit simplement pour augmenter l'espace disque, soit pour passer à un lecteur plus rapide. Ce changement peut être effectué en utilisant :
# umount /home # old /dev/hda7 répertoire personnel
# mount -t xfs /dev/sda1 /home # nouveau disque SCSI utilisant XFS

# mount -t ext3 /dev/sda2 /tmp # met également le /tmp sur SCSI


Pour la récupération, les mises à niveau du système et à des fins spéciales, il est utile de pouvoir monter et démonter les systèmes de fichiers à volonté. Mais pour le travail quotidien, il vous sera pratique d'effectuer automatiquement l'ensemble de montages spécifiques requis à chaque démarrage du système. Vous gérez les points de montage en écrivant les lignes de configuration nécessaires dans le fichier /etc/fstab. Une configuration typique pourrait ressembler à ceci :
Listing 4. Exemple de configuration dans /etc/fstab

/dev/hda7 / ext3 par défaut 1 1 aucun /dev/pts devpts mode=0620 0 0 /dev/hda9 /home ext3 par défaut 1 2 aucun /mnt/cdrom supermount dev=/dev/hdc,fs=auto,ro,- -,iocharset=iso8859-1,codepage=850,umask=0 0 0 none /mnt/floppy supermount dev=/dev/fd0,fs=auto,--,iocharset=iso8859-1,sync,codepage=850,umask =0 0 0 aucun /proc proc valeurs par défaut 0 0 /dev/hda8 swap swap valeurs par défaut 0 0 Probablement la tâche la plus primaire et la plus typique- Ceci permet de garantir que le système d'exploitation démarre correctement.

Pour ce faire, il est absolument nécessaire que l'administrateur comprenne clairement les principes de démarrage du système et les différentes étapes de ce processus.

Il faut dire que les tâches visant à éliminer divers dysfonctionnements lors du chargement du système se retrouvent souvent dans divers examens de certification dans les domaines du système d'exploitation.

La première étape après la mise sous tension de l'ordinateur consiste à exécuter un code de démarrage spécial, représenté sous la forme du système d'entrée/sortie de base (BIOS). Système BIOS Presque toute la configuration du fer est connue. Il existe des informations à partir de quel appareil lire les 512 premiers octets (MBR).

C'est dans le MBR (Master Boot Record) que est stocké le programme de démarrage principal (étape 1), qui contient des informations sur l'emplacement sur le disque du programme de démarrage secondaire (étape 2), qui charge le système d'exploitation lui-même.

Un tel chargeur dans notre exemple spécifique est GRUB (Grand Unified Boot Loader). Il existe également une étape intermédiaire (appelée étape 1.5), qui aide le chargeur de démarrage du système d'exploitation à déterminer les paramètres spéciaux du système de fichiers. Cette routine est utilisée si le chargeur de démarrage GRUB n'a pas été installé directement dans le MBR.

Après avoir pris le contrôle, GRUB affiche une liste des systèmes d'exploitation (Linux/Windows et différentes versions Noyaux Linux) si disponible. Sinon, le contrôle passe à la ligne de commande GRUB.

Supposons que tout se passe comme il se doit et que nous avons choisi le système d'exploitation (ou la version du noyau) dont nous avons besoin. Dans ce cas, GRUB passe à ce qu'il préfère : charger le système d'exploitation lui-même.

Toutes les informations sur la progression du processus de démarrage sont affichées à l'écran (s'il n'y a pas de paramètre dans les options de démarrage du noyau calme ), ainsi qu'au fichier journal /var/log/dmesg. Vous pouvez le visualiser directement ou en utilisant l'utilitaire message.

Sur la base des informations de service, on peut tirer des conclusions sur les paramètres matériels et logiciels, tels que les versions du noyau du système d'exploitation, la quantité de RAM, le nombre et les caractéristiques des processeurs, des disques durs et des partitions correspondantes. cartes réseau, fichier d'échange et bien plus encore.

L'analyse de ces informations en cas d'impossibilité de charger le système d'exploitation peut faire la lumière sur le problème survenu, ce fichier est donc considéré comme assez important pour le dépannage.

Lorsque le noyau du système est chargé, la configuration de base des périphériques nécessaires, des sous-systèmes LVM et RAID et du disque RAM initrd est effectuée, permettant de charger les pilotes nécessaires.

Les autres étapes pour charger les processus varient considérablement en fonction de la version du système d'exploitation. RHEL5 utilise le processus de chargement de service SysV traditionnel. RHEL6 dispose déjà d'une parallélisation partielle du chargement des processus, et selon les besoins, et pas tous à la suite. Dans les nouvelles versions de RHEL (à partir de la version 3.0 du noyau), le processus est encore optimisé grâce à l'utilisation du programme systemd, tout comme dans Fedora à partir de la version 15. Dans ce cas, un mode de fonctionnement asynchrone est utilisé, ce qui accélère le chargement du système d'exploitation.

Après avoir transféré le contrôle au processus d'initialisation, le noyau passe dans un mode spécial et accepte les appels de tous les processus via une interface d'appel système universelle spéciale. À ce stade, le téléchargement de Linux peut être considéré comme terminé.

Vous aimerez également :

Système d'exploitation Linux Cours magistral. Tutoriel Correction de la faille CVE-2015-0235 sous Linux

Linux : Guide complet Kolisnichenko Denis Nikolaïevitch

1.8. D'abord lancer Linux

1.8. Premier lancement de Linux

Si vous avez choisi le mode graphique pour vous connecter (ou si l'installateur l'a choisi lui-même sans rien vous demander), alors vous verrez un écran graphique avec un champ pour saisir un nom et un mot de passe. Connectez-vous au système (de préférence sous le nom que vous avez défini pour un utilisateur régulier ; utilisez root uniquement si vous n'avez pas déjà de compte régulier), et vous verrez le bureau de l'environnement de fenêtre que vous avez défini comme environnement par défaut, qui ressemble à assez similaire au bureau Windows.

Comment est-ce possible, vous avez entendu dire que les vrais utilisateurs de Linux travaillent dans un environnement de ligne de commande ? Trouvons maintenant la ligne de commande.

Vous savez que la console, ou terminal (par exemple ordinateur personnel Ces concepts sont des synonymes) sont appelés dispositifs d'entrée-sortie conçus pour la communication entre le système et l'utilisateur, c'est-à-dire le clavier et le moniteur. Dans les systèmes de type UNIX, il existe le concept de consoles virtuelles : des consoles qui occupent physiquement à tour de rôle le même moniteur et le même clavier. Chacun d'eux peut ouvrir une session utilisateur distincte, exécuter ses propres applications, en général, ce sont des systèmes informatiques presque indépendants les uns des autres.

La plupart des distributions Linux prennent en charge par défaut six consoles virtuelles textuelles, la septième étant graphique. C'est ici que vous êtes. Pour passer de celle-ci à la première console de texte, appuyez sur la combinaison de touches Ctrl+Alt+F1 (sur la sixième - Ctrl+Alt+F6).

En réponse à l'invitation du programme se connecter: tapez racine et appuyez sur<Ввод>. Entrez ensuite votre mot de passe et votre session de console texte est démarrée.

Des informations sur le nom du réseau de la machine, la version du système d'exploitation et l'architecture peuvent être obtenues à l'aide de la commande uname -a.

Si compte Pour l’utilisateur moyen, vous ne l’avez pas encore, il est temps de l’obtenir. Entrez la commande

#useradd< имя >

Si on vous répondait « commande pas trouvé", alors cette commande est appelée adduser sur votre système.

#passwd< имя >

Vous pouvez désormais vous connecter sous un nouveau nom sur une autre console virtuelle. Pour passer d'une console texte à une autre console texte, appuyez sur la combinaison Alt+Fn, où n est un nombre compris entre 1 et 6. Vous verrez à nouveau l'invite se connecter:.

Êtes-vous inscrit? Faites attention à la ligne d'invitation. Sur la console sur laquelle vous vous êtes connecté en tant que root, il se termine par le symbole #, et pour tout utilisateur régulier, par le symbole $. Outre ce symbole, l'invite comprend généralement le nom d'utilisateur, le nom du système et le répertoire actuel, et peut être modifiée une fois que vous savez comment procéder. Dans d'autres exemples, les lignes commençant par # ou indiqueront la commande en cours de saisie, et les lignes sans un tel symbole indiqueront ses messages.

Voyez maintenant par vous-même que Linux est véritablement un système multitâche et multi-utilisateurs, c'est-à-dire que contrairement à Windows, plusieurs utilisateurs peuvent travailler simultanément. Demandez qui travaille actuellement sur le système en entrant la commande who.

Vous verrez quelque chose comme :

racine tty1<дата и время начала сеанса root>

Ivan Tty2<дата и время начала сеанса ivan>

racine:0<дата и время начала сеанса root>

<на графической консоли>

ttyN est le numéro de la console texte virtuelle.

Si vous êtes perdu et souhaitez savoir sur quelle console vous vous trouvez actuellement, exécutez la commande tty. Si vous avez oublié le nom sous lequel vous vous êtes connecté sur la console actuelle, entrez la commande whoami. La commande w affichera non seulement les utilisateurs en cours d'exécution, mais également les tâches qu'ils exécutent.

Vous pouvez faire défiler l'écran à l'aide des combinaisons de touches Shift+PgUp et Shift+PgDn.

Pour copier du texte dans la ligne de commande, utilisez la souris : glisser la souris tout en maintenant enfoncé le bouton gauche sélectionne un fragment, cliquez sur bouton droit l'insère à la position actuelle du curseur sur n'importe quelle console de texte virtuelle.

Si vous souhaitez travailler sous le nom d'un autre utilisateur sans quitter cette console, saisissez su<имя>. Par défaut, le nom est root. Cela est généralement nécessaire pour effectuer rapidement certaines actions administratives. Retournez au travail sous votre nom en utilisant la commande exit.

Pour revenir à la console graphique, appuyez sur Alt+F7.

En mode graphique, vous pouvez également non seulement cliquer sur des icônes, mais également saisir des commandes. Pour cela, lancez un terminal virtuel (Fig. 1.13) - application graphique, dans la fenêtre de laquelle vous pouvez travailler en mode ligne de commande.

Riz. 1.13. Fenêtre du terminal virtuel

Le nombre de terminaux virtuels, contrairement au nombre de consoles virtuelles, n’est limité par rien, pas même par la tradition.

Pour terminer une session sur un terminal virtuel ou une console virtuelle, entrez la commande exit (vous pouvez également vous déconnecter sur une console virtuelle) ou appuyez sur la combinaison de touches Ctrl+D.

L'arrêt d'un utilisateur n'arrête pas l'ensemble du système. Pour éteindre la machine, vous devez exécuter la commande avec les droits de superutilisateur

# shutdown -h 19:00 [Fin de la journée de travail]

Dans ce cas, quelques minutes avant l'heure spécifiée, un message d'avertissement « Fin de la journée de travail » sera envoyé à toutes les personnes travaillant dans le système, après quoi le système sera arrêté correctement. La forme abrégée de cette commande est halt , qui arrête le système immédiatement et sans avertissement. Vous pouvez redémarrer avec la commande reboot.

Extrait du livre Monde de la communication : ICQ auteur Léontiev Vitaly Petrovitch

Premier lancement du programme. Interface ICQ Après avoir installé ICQ et redémarré l'ordinateur, une modeste fleur aux pétales pâles apparaîtra dans le coin droit de votre barre des tâches - ICQ Netdetect Agent.

Icône ICQAu moment où vous vous connectez à Internet, les pétales de fleurs devraient devenir vert vif auteur Extrait du livre Guide de l'utilisateur de Fedora 8

Kolisnichenko Denis Nikolaïevitch 1.1.3.1. Exécution du programme d'installation Linux La première étape consiste à configurer votre ordinateur pour qu'il démarre à partir d'un CD. Généralement, lorsque vous démarrez votre ordinateur, un message s'affiche à l'écran : Appuyez sur DEL pour accéder au SETUP ou appuyez sur F2 pour accéder au SETUP. Programme de configuration

vous devez configurer votre ordinateur pour démarrer à partir d'un CD/DVD (Fig. 1.2), si vous auteur Depuis Linux pour le livre d'utilisateur

Kostromin Viktor Alekseevich

Chapitre 3. Premier lancement du système d'exploitation Linux 3.1. Démarrage du système d'exploitation Linux L'installation de Linux est donc terminée et vous redémarrez votre ordinateur. Si Linux est le seul système d'exploitation installé sur votre ordinateur (ce qui signifie que le chargeur de démarrage LILO se trouve dans l'enregistrement de démarrage principal - MBR), alors après Du livre 200 meilleurs programmes auteur pour Linux

Yaremchuk Sergueï Akimovitch

P5. Vers le chapitre 3 « Démarrer le système d'exploitation Linux pour la première fois » 1. Sur la page d'Alexey Makhotkin (http://alexm.here.ru/manpages-ru/index.html), vous pouvez trouver des traductions de pages de manuel en russe. 2. Guido Gonzato, « From DOS/Windows to Linux HOWTO », traduit par Alex Ott, v1.3.2, 22 février 1999 (http://linux.webclub.ru/howtorus/doswinhow/dos-win-to-linux -comment faire .html). C'est un matériel très utile auteur Dneprov Alexandre G.

Lancement Jeux Windows pour Linux Il existe peu de jeux pour Linux. Linux propose de nombreux jeux non occasionnels pour gagner du temps ; lors de l'installation de la distribution, l'utilisateur en trouvera plusieurs dizaines. Il existe également des projets OpenSource proposant des jeux assez sérieux dans une grande variété de

Extrait du livre Création Modèles Joomla auteur Auteur inconnu

Premier lancement de Premiere Pro L'installation de Premiere Pro sur votre ordinateur s'effectue à l'aide d'un assistant étape par étape. Il vous suffit de suivre les instructions à l'écran. Programme de première Pro et créez un nouveau projet pour vous familiariser davantage avec l'interface du programme.1. Cliquez

Extrait du livre Magazine numérique "Computerra" n°71 auteur Magazine informatique

Premier lancement Après avoir créé la structure de répertoires [PathKJoomla!]/templates/, notre modèle apparaîtra dans la section correspondante de la partie administrative de Joomla! (Extensions | Modèle). Il peut désormais être utilisé comme modèle par défaut. Riz. 2 : Structure du répertoire et fichiers modèles

Extrait du livre Computerra PDA N113 (28/05/2011-03/06/2011) auteur Magazine informatique

Premier aperçu de Fedora Linux 15 Evgeny Krestnikov Publié le 30 mai 2011 Cette version est importante pour plusieurs raisons. Premièrement, Fedora est une distribution populaire utilisée par de nombreuses personnes dans le monde. De plus, il est créé par la communauté.

Extrait du livre Comment rechercher et télécharger des fichiers sur Internet auteur Reitman M.A.

Premier aperçu de Fedora Linux 15 Auteur : Evgeniy Krestnikov Publié le 30 mai 2011 Cette version est importante pour plusieurs raisons. Premièrement, Fedora est une distribution populaire utilisée par de nombreuses personnes dans le monde. De plus, il est créé par une communauté de développeurs indépendants

Extrait du livre Un tutoriel visuel pour travailler sur un netbook auteur Senkevitch G.E.

Premier lancement Comme la plupart des modèles modernes programmes antivirus AVG Anti-Virus Free n'est pas un programme unique, mais un package composé de plusieurs modules responsables de divers domaines de la protection informatique :? Antivirus - analyseur antivirus, est responsable de l'analyse des fichiers

Extrait du livre GUIDE DU DÉVELOPPEUR DE BASE DE DONNÉES Firebird par Borri Helen

Premier lancement de Mail Windows Live Pour exécuter l'installé programme de messagerie, cliquez sur le bouton Démarrer et sélectionnez Windows Live Mail (1) dans le menu qui s'ouvre. Si cette icône ne figure pas dans le menu, cliquez sur Tous les programmes. Dans la liste des programmes, cliquez sur Élément Windows En direct-

Extrait du livre Photoshop CS4 auteur Jvalevski Andreï Valentinovitch

D'abord Démarrage de Windows Média Pour lancer Windows Media Player, cliquez sur le bouton de la barre des tâches ou sélectionnez Tous les programmes | Windows Media Player dans le menu Démarrer. Lorsque vous lancez le lecteur pour la première fois, vous êtes invité à effectuer certains réglages. Réglez le commutateur

Extrait du livre Questions d'histoire : UNIX, Linux, BSD et autres auteur Fedorchuk Alexeï Viktorovitch

Exécution de Firebird sur un superserveur Linux/UNIX Le répertoire d'installation par défaut est /opt/firebird. Le répertoire /bin contient le serveur Firebird fbserver au format binaire (ibserver pour Firebird 1.0.x), qui s'exécute comme un processus démon sous Linux/UNIX. Il démarre automatiquement après l'installation via RPM ou

Extrait du livre de l'auteur

Installer Photoshop CS4 et le lancer pour la première fois La configuration système requise pour Photoshop CS4 est la suivante : un processeur avec une vitesse d'horloge d'au moins 1,8 GHz ; salle d'opération Système Windows XP avec Service Pack 2 (de préférence Service Pack 3) ou Windows Vista; au moins 512 Mo de RAM (1 Go recommandé) ; 16 bits

Extrait du livre de l'auteur

Slackware : le premier pas vers Linux pour tous La distribution SLS est donc morte. Mais son âme a survécu. Même pendant la période de développement actif, Patrick Volkerding a adopté SLS comme base de son système Linux, appelé Slackware, dont la première version a été rendue publique le 17 juillet 1993 et ​​s'est développée avec succès depuis lors.

Extrait du livre de l'auteur

IPLabs Linux Team : le début du Linux russe La prochaine étape sur le chemin du Linux russe fut 1998, lorsque IPLabs (plus précisément, sa division - IPLabs Linux Team) en collaboration avec l'Institut de Logique (en fait, c'étaient les mêmes personnes - Alexey Novodvorsky, Alexey Smirnov et Yuri Devyatkin avec

© 2024 ermake.ru -- À propos de la réparation de PC - Portail d'information