Saltar al contenido

¿Cómo restaurar un sistema después de eliminar accidentalmente todos los núcleos?

Nuestro grupo de trabajo ha estado mucho tiempo investigando para darle resolución a tu interrogante, te ofrecemos la soluciones por eso deseamos que te resulte de mucha ayuda.

Solución:

Arranque en un CD en vivo (o USB en vivo), monte algunos sistemas, chrootee e instale el kernel. Después de una instalación exitosa del kernel, desmonte los sistemas de archivos.

  1. Terminal abierta
  2. Monte la partición de Ubuntu: sudo mount /dev/sdXY /mnt
  3. Monte algunas particiones especiales:

    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    
  4. (opcional) Cuando esté conectado a una red, utilice los servidores DNS de su entorno Live (de lo contrario, es posible que no se puedan resolver los nombres de host):

    cp /etc/resolv.conf /mnt/etc/resolv.conf
    
  5. Chroot en el /mnt: sudo chroot /mnt
  6. Instale el kernel de Linux: apt-get install linux-image-generic (no se requiere sudo ya que eres root después de un chroot)
  7. Después de una instalación exitosa del kernel, saque el chroot y desmonte algunos sistemas de archivos:

    exit
    sudo umount /mnt/sys
    sudo umount /mnt/proc
    sudo umount /mnt/dev
    sudo umount /mnt
    
  8. Reinicie y retire el CD o USB: sudo reboot

Esta procedimiento ampliado explica la mayoría de las complicaciones que podrían ocurrir, incluidos los problemas de conexión a Internet en el chroot, sin saber qué paquete de kernel instalar (antes de Ubuntu 12.10, no siempre ser linux-image-generic), sin saber desde el principio qué partición o incluso qué unidad física contiene el / sistema de archivos y tener un /boot dividir.

No he escrito esto con referencia a ninguno de los otros procedimientos aquí, aunque notará algunas similitudes. Lo basé, vagamente, en el procedimiento aquí (aunque esas instrucciones son para algo bastante diferente, las he adaptado ampliamente y solo se copian algunos comandos, no la prosa).

Eliminó todos los paquetes del kernel y Ubuntu no puede arrancar sin un kernel instalado. Entonces, la solución es arrancar desde un CD / DVD / USB en vivo, chroot en el sistema instalado e instale un kernel en él.

  1. Arranque desde un CD / DVD en vivo de Ubuntu o una unidad flash USB en vivo.

  2. Seleccione Prueba Ubuntu (no Instalar Ubuntu).

  3. Cuando aparezca el escritorio, asegúrese de estar conectado a Internet. Si no es así, conéctese a Internet. Una forma de ver si está conectado a Internet es abrir un navegador web. Incluso puede seguir el resto de las instrucciones al traer esta respuesta Ask Ubuntu en su navegador web, en el sistema de CD / DVD / USB en vivo. Recomiendo encarecidamente hacer eso.

  4. Abra una ventana de Terminal con control+Alt+T.

  5. En la ventana de Terminal, ejecute este comando para listar sus particiones:

     sudo parted -l
    

    Verás algo como esto (pero no será exactamente como esto):

    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sda: 21.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    
    Number  Start   End     Size    Type      File system     Flags
     1      1049kB  20.4GB  20.4GB  primary   ext4            boot
     2      20.4GB  21.5GB  1072MB  extended
     5      20.4GB  21.5GB  1072MB  logical   linux-swap(v1)
    
    
    Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0
    has been opened read-only.
    Error: Can't have a partition outside the disk!
    
  6. Examine la salida que obtuvo para determinar el nombre del dispositivo de la partición que contiene el / sistema de archivos del sistema Ubuntu que está instalado en el disco duro (que está reparando).

    • Si solo tienes uno ext4 partición, esa es la única.

    • Si tienes mas de uno ext4 partición, probablemente sea la primera. Sin embargo, si el primero es muy pequeño, menos de un gigabyte, entonces podría ser un /boot partición (recuerda esa también).

      Tenga en cuenta que si boot está listado bajo Flags tiene muy poco que ver con si una partición es o no una partición separada /boot dividir. Mi sistema, cuya información se enumera arriba, no no tener una separada /boot dividir.

    • El nombre del dispositivo para la partición comienza con el nombre del dispositivo para la unidad física, que se indica inmediatamente después Disk en la segunda línea. Luego, simplemente agregue el número de partición al final de eso. Entonces, el nombre del dispositivo para la partición que contiene mi/ el sistema de archivos es /dev/sda1. Aquí están las dos líneas donde encontré esa información:

      Disk /dev/sda: 21.5GB
      1      1049kB  20.4GB  20.4GB  primary   ext4            boot
    • Si tiene más de una unidad física, obtendrá más de una lista como la que se muestra arriba. Pero a menos que tenga instalado otro sistema similar a Unix, probablemente solo tendrá una unidad que contenga ext4 particiones, al menos sin haberlas creado intencionalmente en otra unidad. Si tiene varias unidades con ext4 particiones, entonces el ext4 partición que contiene tu / El sistema de archivos probablemente esté en una unidad que además contiene una linux-swap dividir.

    • Es posible que tu sistema Ubuntu / el sistema de archivos está en una partición de tipo diferente a ext4. Cuando esto sucede, casi siempre es ext3y casi siempre en un sistema bastante antiguo. Es muy poco común que este sea el caso, a menos que usted mismo haya configurado intencionalmente las cosas de esta manera.

    Recuerde el nombre del dispositivo de la partición que contenía su / sistema de archivos (o anótelo). Si es diferente de /dev/sda1, entonces reemplazarás /dev/sda1 con él en los pasos a continuación.

    (Si parece que tiene una /boot partición, recuerde el nombre del dispositivo para eso también).

  7. Monte el / sistema de archivos a /mnty monta su /dev sistema de archivos:

    sudo mount /dev/sda1 /mnt
    sudo mount --bind /dev /mnt/dev
  8. Compruebe si el sistema Ubuntu roto que está reparando tiene un /boot partición que debe montarse por separado. (Si usted es seguro no es así, puede omitir esto).

    Para comprobarlo, ejecute:

    ls /mnt/boot
    

    Si hay salida (como grub memtest86+.bin memtest86+_multiboot.bin, pero no necesariamente exactamente eso), entonces el sistema roto /boot está en la misma partición que su / y no tienes que montar nada para acceder a él.

    Pero si no hay salida, entonces tendrá que montar el /boot sistema de archivos:

    sudo mount BOOT-PARTITION /mnt/boot

    Reemplazar BOOT-PARTITION con el nombre del dispositivo del /boot partición (consulte el paso 6 anterior).

  9. chroot en el sistema roto, monte los sistemas de archivos virtuales importantes restantes y establezca algunas variables de entorno importantes:

    sudo chroot /mnt
    mount -t proc none /proc
    mount -t sysfs none /sys
    mount -t devpts none /dev/pts
    export HOME=/root
    export LC_ALL=C
    
  10. Determine si el acceso a Internet funciona desde el chroot por pinging algún host confiable que se sabe que responde normalmente a los pings:

    ping -c 5 www.google.com
    

    Debería ver algo como esto:

    PING www.l.google.com (74.125.131.147) 56(84) bytes of data.
    64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=1 ttl=44 time=61.3 ms
    64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=2 ttl=44 time=62.3 ms
    64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=3 ttl=44 time=61.8 ms
    64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=4 ttl=44 time=63.8 ms
    64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=5 ttl=44 time=66.6 ms
    
    --- www.l.google.com ping statistics ---
    5 packets transmitted, 5 received, 0% packet loss, time 4006ms
    rtt min/avg/max/mdev = 61.367/63.212/66.608/1.897 ms
    
    • Si se ve mayoritariamente así, y el número antes % packet loss es inferior a 100, entonces la conexión a Internet en el chroot está trabajando:

      5 packets transmitted, 5 received, 0% packet loss, time 4006ms

      Está funcionando, así que puedes omita el paso 11.

    • Si se ve mayoritariamente así, y el número antes % packet loss es 100, la conexión necesita solución de problemas. Asegúrese de que la conexión en el sistema de CD en vivo (por ejemplo, a través de un navegador web o ejecutando el mismo comando en unchrooted Terminal pestaña / ventana) funciona. Asegúrese de escribir el comando correctamente. Usar www.google.com si no lo has estado.

    • Si la salida no se parece en nada a la anterior, sino que dice ping: unknown host www.google.com, la red todavía no funciona en el chroot.

  11. Configure la red en el chroot. Omita este paso a menos que tenga un unknown host error en el paso 10 anterior.

    Para configurar la red, haga una copia de seguridad del sistema hosts archivo, y copiar sobre el sistema de CD en vivo hosts y resolv.conf archivos. (No tiene que hacer una copia de seguridad de la versión del sistema roto de resolv.conf, ya que ese archivo se regenera automáticamente sobre la marcha).

    Abre un nueva pestaña Terminal (control+Cambio+T) o, si lo prefiere, un nueva ventana de Terminal (control+Cambio+norte, o solo control+Alt+T). Ejecute estos comandos en él:

    sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
    sudo cp /etc/hosts /mnt/etc/hosts
    sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
    exit
    

    (Los exit comando al final cierra la nueva pestaña / ventana.)

    Repita el paso 10 anterior para asegurarse de que el acceso a Internet funcione ahora desde el chroot. Debería.

  12. Averigüe qué paquete de kernel debe instalarse. Por lo general, esto será linux-image-generic. Pero no siempre.

    Si no está seguro de cuál instalar, dependerá en parte de la versión de Ubuntu que haya instalado y en parte de otra información. Si no está seguro de qué versión de Ubuntu ha instalado, averigüe ejecutando este comando (en el chroot, no en una ventana / pestaña de Terminal separada):

    lsb_release -r
    
    • En Ubuntu 12.10 (la próxima versión de Ubuntu, actualmente en desarrollo), siempre estarán linux-image-generic. (Mira esto, esto y esto.)

    • En Ubuntu 12.04 LTS, las posibilidades probables son linux-image-generic y linux-image-generic-pae. (A diferencia de las versiones anteriores, 12.04 ya no tiene kernels de servidor y de escritorio separados).

      • Si el sistema Ubuntu instalado (que está arreglando) es la versión de 64 bits, use linux-image-generic. (linux-image-generic-pae solo se aplica a sistemas de 32 bits).

        Es posible tener un sistema Ubuntu de 32 bits instalado en una computadora de 32 o 64 bits. Además, es posible que esté utilizando un Live CD de 32 bits o 64 bits para reparar un sistema instalado de 32 bits. Entonces, si no sabe si el sistema Ubuntu instalado es de 32 bits o 64 bits, verifique ejecutando este comando (en el chroot, no en una ventana / pestaña de Terminal separada):

        dpkg-architecture -qDEB_HOST_ARCH_BITS
        

        La salida será 32 o 64.

        (Tenga en cuenta que uname -m es no una forma correcta de encontrar esta información, porque incluso cuando se ejecuta en el chroot, que te dirá la arquitectura del kernel en ejecución, que es el kernel del sistema de Live CD y no el kernel del sistema instalado (roto).)

      • Si el sistema Ubuntu instalado (que está arreglando) es la versión de 32 bits, el mejor kernel para usar dependerá de la cantidad de RAM que tenga. Yo recomiendo:

        • linux-image-generic si tiene menos de 3 GB de RAM
        • linux-image-generic-pae si tiene 3 GB de RAM o más.

        (Así es como el instalador de Ubuntu elige cuál configurar, desde que el instalador obtuvo la capacidad de instalar kernels PAE. Vea la resolución de este error. Si desea saber qué es PAE, consulte este artículo de Wikipedia. Si desea aprenda sobre PAE en Ubuntu, consulte esta página wiki de Ubuntu).

        Si no sabe cuánta RAM tiene, ejecute este comando para averiguarlo:

        grep MemTotal /proc/meminfo
        

        Eso se muestra en kilobytes. Para convertir a gigabytes, divida por 1.048.576 (10242).

        • 3 gigas = 3,145,728 kB
    • En las versiones de Ubuntu antes de 12.04, las posibilidades probables son linux-image-generic, linux-image-generic-pae, y linux-image-server.

      • Si está ejecutando un sistema de servidor Ubuntu, use linux-image-server.
      • De lo contrario, siga los consejos anteriores para los sistemas 12.04.
  13. ¡Este es el momento que estabas esperando! Instale un kernel en el sistema roto.

    (Como antes, excepto donde se indique explícitamente lo contrario, estos comandos se ejecutan en el chroot, no en una ventana / pestaña de Terminal separada).

    apt-get update
    apt-get -y install linux-image-generic

    Reemplazar linux-image-generic con cualquier otro paquete de kernel que haya decidido instalar en el paso 12 anterior, si es diferente.

  14. Si tuviera que realizar el paso 11 para configurar la red en el chroot, restaurar lo viejo hosts expediente. Si omitió el paso 11, omita este paso también.

    Para restaurarlo, ejecute este comando:

    cp /etc/hosts.old /etc/hosts
    
  15. Desmontar sistemas de archivos, exitsaliendo del chroot:

    umount /proc || umount -lf /proc
    umount /sys /dev/pts
    exit
    sudo umount /mnt/dev /mnt
    
  16. Apague el sistema de CD / DVD / USB en vivo, quitando el CD / DVD en vivo o la unidad flash USB. Inicie en el sistema instalado en el disco duro que acaba de reparar. Ha instalado un paquete de kernel en él (y como parte de la instalación, el kernel que proporciona se agregará nuevamente al menú de inicio de GRUB2). Si todo funcionó correctamente, su sistema debería arrancar sin problemas. (Creo que es posible que esta vez tarde un poco más en arrancar de lo habitual).

DESCARGO DE RESPONSABILIDAD: No probé el procedimiento anterior en cada posible Sistema Ubuntu, por lo que es posible que haya un error en él que no he identificado.

En el futuro, recomiendo siempre intentar mantener dos núcleos instalados. Es bueno tener dos en caso de que uno de ellos deje de funcionar por cualquier motivo (puede seleccionar el otro en el menú de inicio de GRUB2). Además, si tiene la intención de mantener dos kernels y accidentalmente desinstala uno más de lo que pretendía y reinicia, todavía le queda uno para arrancar.

Finalizando este artículo puedes encontrar las acotaciones de otros desarrolladores, tú además tienes la libertad de insertar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *