Analysez et corrigez les images personnalisées avec sersi avant leur importation afin d'éviter les échecs de démarrage et les problèmes réseau causés par des pilotes manquants ou des configurations incorrectes.
Les modifications apportées par les scripts de correction de sersi sont irréversibles.
Systèmes d'exploitation pris en charge
Familles de systèmes d'exploitation prises en charge :
Série Red Hat : Alibaba Cloud Linux, Anolis, Red Hat, CentOS, CentOS Stream, Fedora, AlmaLinux, Rocky Linux, openEuler et OpenCloudOS.
Série Debian : Debian, Ubuntu, Kylin et UOS.
Série SUSE : SUSE et openSUSE.
FreeBSD, Fedora CoreOS et Windows Server ne sont pas pris en charge.
Procédure
Étape 1 : Télécharger et décompresser l'outil
-
Téléchargez le package
sersi.wget https://ecs-image-tools.oss-cn-hangzhou.aliyuncs.com/imagecheck/sersi.tar.gz -
Extrayez le package.
tar -xf sersi.tar.gz
Étape 2 : Vérifier l'image
Exécutez la commande de vérification pour générer un rapport d'état de santé de l'image.
-
Analysez l'image.
./main.sh --target=image --diagnostic -
Analysez les résultats :
OK: Respecte les spécifications des images Alibaba Cloud.FAILED(Correction obligatoire) : Problème critique susceptible d'empêcher le démarrage ou de provoquer l'échec des fonctions principales (telles que la mise en réseau).WARNING(Correction recommandée) : Problème de configuration qui n'affecte pas le démarrage, mais qui peut rendre certaines fonctionnalités (telles que Cloud Assistant ou la surveillance) indisponibles ou présenter des risques de sécurité.
Consultez la section Présentation des éléments de vérification et de correction pour obtenir des détails sur chaque élément.
------------------------------------------------------------ OS: Alibaba Cloud Linux 3 Kernel: 5.10.134-18.al8.x86_64 Arch: x86_64 RTC-Mode: utc Boot-Mode: Legacy ------------------------------------------------------------ Image Check Result Virtio [OK] Nvme [OK] Fstab [OK] Grub [OK] Dhcp [OK] Selinux [OK] OnlineResizeFS [OK] CloudAssistant [OK] CloudInit [OK] CloudInitConfigPassword [OK] SecurityCenterAgent [OK] SupportMocInstanceTypes [OK] DiskUsage [OK] InodeUsage [OK] SystemFileAttribute [OK] CriticalUser [OK] QemuGuestAgent [OK] SshConfig [OK] Firewall [OK] Total case Count 19 Successes: 19 Failures: 0 Warnings: 0 ------------------------------------------------------------ Import Image Command Example (aliyun CLI) ------------------------------------------------------------ Based on the detected system information, you can use the following command to import this image via Alibaba Cloud CLI: aliyun ecs ImportImage \ --RegionId <your-region-id> \ --ImageName <your-image-name> \ --Architecture x86_64 # [!] auto-detected, verify it matches your image \ --OSType linux \ --Platform 'Aliyun' # [!] auto-detected, must match OS distribution \ --BootMode BIOS # [!] auto-detected, wrong value causes boot failure \ --DiskDeviceMapping.1.OSSBucket <your-oss-bucket> \ --DiskDeviceMapping.1.OSSObject '<your-oss-object-path>' \ --DiskDeviceMapping.1.Format <RAW|VHD|QCOW2> NOTE: Replace <...> placeholders with your actual values. - RegionId must match the OSS Bucket's region. - Format: RAW, VHD, or QCOW2 (matches your image file format). ------------------------------------------------------------ -
Vérifiez les paramètres d'importation de l'image. La section
Import Image Command Exampleà la fin du rapport génère un exemple de commande aliyun CLI pour importer l'image, en fonction des informations système détectées. Les paramètres marqués par[!]sont détectés automatiquement. Vérifiez chacun d'eux avant l'importation, car des valeurs non conformes à l'image réelle empêcheront le démarrage des instances créées à partir de cette image.--Architecture: L'architecture système de l'image. Valeurs valides :x86_64etarm64.--Platform: La distribution du système d'exploitation de l'image. Elle doit correspondre au système réellement installé dans l'image. Si le système d'exploitation de votre image est unePlatformnon prise en charge par les paramètres d'importation d'image, le rapport de vérification recommande unePlatformappropriée. Pour les distributions basées sur Red Hat telles que openEuler et openCloudOS, nous vous recommandons de définirPlatformsur CentOS Stream.--BootMode: Le mode de démarrage de l'image. Valeurs valides :BIOSetUEFI. Une valeur non conforme au mode de démarrage réel empêche le démarrage de l'instance.
Pour une description complète de chaque paramètre, consultez la rubrique Importer une image personnalisée.
Étape 3 : Corriger l'image
Correction automatique
Les scripts de correction apportent des modifications irréversibles. Suivez une procédure « examiner, puis exécuter ».
L'outilsersine peut pas corriger automatiquementDiskUsage,InodeUsage,CriticalUser,LibDirectoryetSupportMocInstanceTypes. Corrigez-les manuellement en suivant les instructions de la section Correction manuelle .
-
Examen :
Utilisez
--dry-runpour générer et examiner le script de correction sans appliquer les modifications.Pour corriger un seul élément, consultez la section Comment corriger un seul élément de vérification ? .
# Repair all issues ./main.sh --target=image --run all --dry-run -
Exécution :
Après avoir confirmé que le script est sûr, supprimez
--dry-runpour appliquer la correction.# Interactive repair: Confirmation is requested before each repair step is executed. ./main.sh --target=image --run all -
Analysez les résultats de la correction :
OK: Correction réussie.NO_FOUND_RISK: Aucun problème trouvé.OK_Need_Reboot: Correction effectuée, mais un redémarrage est nécessaire pour qu'elle prenne effet.DRY_RUN: Problème identifié ; le script de correction est affiché mais non exécuté.FAILED: Échec de la correction. Effectuez une correction manuelle.
Correction manuelle
Pour les éléments qui ne peuvent pas être corrigés automatiquement ou lorsque la correction automatique échoue, suivez ces instructions.
DiskUsage: Supprimez manuellement les fichiers inutiles.InodeUsage: Supprimez manuellement les fichiers inutiles.CriticalUser: Conservez le compte root.LibDirectory: Les liens symboliques /lib et /lib64 doivent pointer vers des chemins relatifs, et non absolus.SupportMocInstanceTypes: Généralement causé par des versions de système d'exploitation anciennes et arrivées en fin de vie (EOL). Mettez à niveau vers une version activement maintenue.Virtio: Installez le pilote virtio.Nvme: Installez le pilote NVMe.Selinux: Activez ou désactivez SELinux.OnlineResizeFS: Installez cloud-init et l'outil growpart.Cloudinit: Installez cloud-init.-
CloudInitConfigPassword: Créez le lien symbolique du fichier de configuration cloud-init.ln -sf /sys/firmware/qemu_fw_cfg/by_name/etc/cloud-init/vendor-data/raw /etc/cloud/cloud.cfg.d/aliyun_cloud.cfg SshConfig: Vérifiez le fichier de configuration sshd.Firewall: Désactivez le service de pare-feu système.CloudAssistant: Installez l'agent Cloud Assistant.SecurityCenterAgent: Installez l'agent Security Center.QemuGuestAgent: Désinstallez manuellementqemu-guest-agent.SystemFileAttribute: N'utilisez pas la commandechattrpour verrouiller les fichiers critiques tels que /etc/shadow.
Étape 4 : Vérifier la correction
(Facultatif) Redémarrez le système. Certaines corrections (
Nvme,Dhcp,Selinux) nécessitent un redémarrage.-
Réexécutez la commande de vérification pour vous assurer que tous les éléments affichent
OK../main.sh --target=image --diagnostic
Présentation des éléments de vérification et de correction
|
Élément de vérification (nom du cas) |
Élément de correction |
Impact |
Description |
|
|
|
L'instance ECS ne démarre pas. |
Vérifie si le pilote virtio est installé. Les instances ECS Alibaba Cloud sont des machines virtuelles basées sur KVM et nécessitent le pilote virtio pour les disques virtuels. |
|
|
|
Impossible d'utiliser les types d'instance qui nécessitent des disques cloud basés sur le protocole NVMe, tels que ecs.g7se. |
Vérifie si le pilote NVMe est installé. Certains types d'instance ECS, tels que ecs.g8i, ecs.g8a, ecs.g9i et ecs.g9a, utilisent des disques cloud basés sur le protocole NVMe et nécessitent le pilote NVMe. NVMe offre des vitesses plus rapides et une bande passante plus élevée que les protocoles traditionnels (tels que SCSI et virtio-blk). |
|
|
|
Le système ne démarre pas. |
Vérifie si /etc/fstab est correctement configuré. Des entrées incorrectes, telles qu'un périphérique de montage inexistant ou un UUID erroné, peuvent empêcher le démarrage. |
|
|
|
Le système ne démarre pas. |
Vérifie si la configuration GRUB est correcte. Des erreurs, telles que la spécification d'une partition de démarrage par nom de périphérique au lieu de l'UUID, empêchent le démarrage. |
|
|
|
La connexion réseau du système échoue. |
Vérifie que DHCP est activé pour les interfaces réseau. L'adressage statique peut provoquer des pannes réseau. Ajoutez |
|
|
|
L'instance ECS ne démarre pas. |
Vérifie si SELinux est désactivé. |
|
|
|
La partition racine de l'instance ne peut pas être redimensionnée. |
Vérifie que l'image peut étendre automatiquement la partition racine et le système de fichiers au premier démarrage (via cloud-init ou growpart). Par exemple, une image de 10 Go peut être étendue pour remplir un disque système de 100 Go. Consultez la rubrique Étendre les partitions et les systèmes de fichiers (Linux). |
|
|
|
Les configurations d'initialisation du système sont manquantes. |
Vérifie que cloud-init est installé. cloud-init configure NTP, les dépôts de packages, le nom d'hôte et les paires de clés SSH au démarrage, et exécute le script User Data. |
|
|
|
La connexion SSH à l'instance échoue. |
Vérifie si le fichier de configuration sshd (/etc/ssh/sshd_config) est correct. Si le fichier de configuration sshd est incorrect, le service sshd peut ne pas démarrer, empêchant les connexions SSH. Pour vérifier :
|
|
|
|
Le pare-feu système peut bloquer l'accès à l'instance. |
Vérifie si le service de pare-feu est activé. Désactivez le pare-feu système et utilisez les groupes de sécurité pour gérer le trafic entrant et sortant. |
|
|
|
Les opérations et la maintenance cloud sont peu pratiques. |
Vérifie si Cloud Assistant est installé. Cloud Assistant est un outil natif d'automatisation ECS pour les opérations et la maintenance. |
|
|
|
Les vulnérabilités de l'instance ne peuvent pas être identifiées sans la protection de Security Center. |
Vérifie si l'agent Security Center est installé. Requis pour que Security Center protège le serveur. |
|
|
|
Les fonctionnalités de l'instance peuvent ne pas fonctionner correctement. |
Vérifie si est installé. Ce logiciel communique avec la machine hôte, ce qui peut interférer avec les services ECS et laisser les fonctionnalités de l'instance incomplètes. |
|
|
Non pris en charge |
Le système ne démarre pas. |
Vérifie si l'utilisation de l'espace disque est normale. Exécutez pour vérifier l'utilisation de l'espace disque et vous assurer qu'il y a suffisamment d'espace. |
|
|
Non pris en charge |
Le système ne démarre pas. |
Vérifie si l'utilisation des inodes du disque est normale. Exécutez |
|
|
|
L'instance ne démarre pas ou fonctionne de manière anormale. |
Vérifie si les fichiers de configuration système critiques ont les attributs de fichier corrects. |
|
|
Non pris en charge |
L'instance ne démarre pas ou fonctionne de manière anormale. |
Vérifie si les utilisateurs critiques (tels que root) existent. L'absence d'un utilisateur critique peut provoquer un démarrage anormal ou empêcher les connexions à distance. |
|
|
Non pris en charge |
Le système fonctionne de manière anormale. |
Dans les distributions Linux de la série Red Hat, /lib et /lib64 sont généralement des liens symboliques vers /usr/lib et /usr/lib64. Ne modifiez pas ces liens. |
|
|
Non pris en charge |
Impossible d'utiliser les familles d'instances SHENLONG telles que et . |
Vérifie si l'image prend en charge les types d'instance SHENLONG. Les dernières instances ECS, telles que et , sont généralement des types d'instance SHENLONG. Si les versions du système d'exploitation et du noyau de l'image sont trop anciennes, elles peuvent ne pas démarrer sur ces types d'instance. Consultez la rubrique Présentation des familles d'instances. |
Référence des commandes de correction
Syntaxe de la commande de correction automatique :
./main.sh --target=image --run <case> [--debug] [--dry-run] [-y]
|
Paramètre |
Obligatoire |
Description |
|
|
Oui |
L'élément de correction à exécuter.
|
|
|
Non |
Recommandé pour la première tentative. Affiche le script de correction sans l'exécuter. |
|
|
Non |
Active la sortie de journaux détaillés pour le dépannage. |
|
|
Non |
Ignore les invites interactives et confirme automatiquement toutes les étapes de correction. |
Références
Après validation, obtenez le fichier image et importez-le en tant qu'image personnalisée.
FAQ
Pourquoi un problème persiste-t-il après avoir appliqué la correction pour nvme, selinux ou dhcp ?
Ces trois corrections nécessitent un redémarrage pour être appliquées. Après les avoir appliquées, redémarrez la machine virtuelle et réexécutez l'outil pour vérifier le résultat.
Comment corriger un seul élément de vérification ?
Pour corriger un seul élément, tel que SshConfig :
Dans le tableau Présentation des éléments de vérification et de correction, recherchez l'élément de correction
sshdcorrespondant àSshConfig.-
Examen :
Pour corriger un autre élément, remplacez
sshdpar le nom de l'élément de correction cible../main.sh --target=image --run sshd --dry-run -
Exécution :
./main.sh --target=image --run sshd