Una situazione in cui il sistema non ha kernel da cui avviare, forse perché tutto il kernel è stato rimosso dal sistema oa causa di un danneggiamento, è richiesta l'installazione del kernel dalla modalità di ripristino. È ancora possibile installare un nuovo kernel dalla modalità di ripristino e ripristinare il sistema ed essere nuovamente in esecuzione.
Avvio in modalità di salvataggio
Avvia il sistema utilizzando il DVD di installazione o l'ISO e accedi alla modalità di ripristino. Segui i passaggi seguenti per istruzioni dettagliate su come avviare la modalità di ripristino.
1. Allega l'immagine ISO
È possibile utilizzare un vero e proprio DVD di installazione invece dell'immagine ISO, ma trovo facile utilizzare l'immagine ISO e non è necessario recarsi al data center per inserire fisicamente il DVD nel sistema. Diverse piattaforme di virtualizzazione hanno funzionalità simili per collegare/montare l'immagine ISO a un guest VM. Assicurati di modificare l'ordine di avvio per eseguire l'avvio dall'immagine ISO.
2. Avvia il sistema
Avvia il sistema CentOS 7 dall'immagine ISO. Nella schermata di avvio, seleziona l'Opzione di risoluzione dei problemi alla fine dello schermo.
3. Nella schermata successiva, seleziona l'opzione Salva un sistema CentOS Linux .
4. Nella schermata successiva, premere Invio per continuare. Quando ti viene chiesto se desideri che Rescue trovi la tua installazione, scegli Continua.
Se riscontri problemi nel rilevare l'installazione, riprova utilizzando l'opzione Salta e rileva e monta manualmente lo spazio di archiviazione. Riceverai un messaggio mostrato nell'immagine qui sotto se la modalità di ripristino ha rilevato l'installazione corretta.
Ora saltiamo il passaggio chroot qui perché non vogliamo entrare nell'ambiente di root.
Installazione del kernel
1. Il prossimo passo è installare il kernel appropriato per il tuo sistema installato. È importante disporre dello stesso supporto di installazione di quello della versione di sistema installata. Installa il kernel usando il comando rpm nell'ambiente root /mnt/sysimage.
# cd /mnt/install/repo/Packages # rpm -ivh --root=/mnt/sysimage kernel-3.10.0-514.el7.x86_64
# chroot /mnt/sysimage # grub2-mkconfig -o /boot/grub2/grub.cfg
ls -lrt /boot/vmlinuz-* -rwxr-xr-x. 1 root root 5392080 Nov 22 2016 /boot/vmlinuz-3.10.0-514.el7.x86_64 -rwxr-xr-x. 1 root root 5392080 Oct 1 12:44 /boot/vmlinuz-0-rescue-4bd23218ddab41e587bdd39ae2cfc09a
# cat /boot/grub2/grub.cfg ..... menuentry 'CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-514.el7.x86_64-advanced-7efe94a2-10ec-40e4-8d89-a52faf13535e' { load_video set gfxpayload=keep insmod gzio insmod part_msdos insmod xfs set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' f88bd588-6f4d-4050-bd3f-443cf2049ee7 else search --no-floppy --fs-uuid --set=root f88bd588-6f4d-4050-bd3f-443cf2049ee7 fi linux16 /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet LANG=en_US.UTF-8 initrd16 /initramfs-3.10.0-514.el7.x86_64.img } .....
Crea il file /.autorelabel per rietichettare i filesystem, durante il prossimo riavvio, nel caso tu stia usando SELinux:
# touch /.autorelabel
Ora puoi uscire dall'ambiente chroot e riavviare il sistema.