GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo instalar GRUB en una nueva unidad?

No soy un experto en grub2 (lo siento), pero intenta agregar --skip-fs-probe a su línea de instalación de grub, he encontrado que esto impide la creación de /boot/grub/device.map lo que puede provocar el arranque en un aviso de grub. Creo que sin este parámetro, grub-install, en lugar de hacer lo que le dices, cree que es más inteligente que tú y puede hacer algo diferente.

Otra cosa es asegurarse de que está utilizando la instalación de grub correcta (es decir, para grub2 y no para grub original). Esto no es un problema si está dentro de Centos pero con SystemRecoveryCD ambas versiones están disponibles, por lo que debe usar grub2-install . Aprendí de la manera difícil...

Y como señaló @wurtel (felicitaciones), debe especificar una unidad, no una partición. Grub2 se instala en el sector 0 de toda la unidad de disco, y este 'código auxiliar' es lo que se ejecuta en el momento del arranque, pero necesita saber dónde se encuentra en el disco, debe instalar los archivos para la siguiente etapa de arranque:esto es lo que dice el --root-directory el parámetro es para. (Creo.)

Lectura man grub-install y googleando veo que --root-directory no está realmente destinado a ser utilizado para las versiones 1.99++ de grub2, aunque en mi experiencia funciona. Debes usar --boot-directory y consulte el directorio de inicio real, por lo que esto le daría:

grub-install /dev/sdb --skip-fs-probe --boot-directory=/media/new_drive/boot

Así es como moví una instalación de Debian que consiste en una partición de arranque /boot y una partición raíz / a una nueva unidad y la hizo arrancable usando GNU GRUB:

Clonar particiones

  • Usando el Live CD de GParted, cree la partición de inicio y raíz en la nueva unidad.
  • Utilizando una consola raíz en GParted, monte la partición de arranque anterior (digamos que es /dev/sda1 ) y la nueva partición (/dev/sdb1 ):mount /dev/sda1 /mnt/oldBoot && mount /dev/sdb1 /mnt/newBoot
  • Copie los datos de la partición de arranque anterior a la nueva:cp -afv /mnt/oldBoot /mnt/newBoot . Explicación de cp -afv :<último>
  • a significa "archivo" que significa:
    • no desreferenciar enlaces
    • copiar recursivamente (como -R )
    • preservar todos los atributos (marca de tiempo, propietario, permiso)
  • f :fuerza, si no se puede abrir un archivo de destino existente, elimínelo y vuelva a intentarlo
  • v :detallado, explica lo que se está haciendo
  • Esto generará una salida en su consola que le mostrará qué archivo se está copiando actualmente y si cp progresa
  • Monte y copie los archivos de su antigua partición raíz a la nueva:
    • Por seguridad:umount /mnt/oldBoot && umount /mnt/newBoot
    • Monte la partición raíz antigua y la nueva (suponiendo que sea /dev/sda2 y /dev/sdb2 ):mount /dev/sda2 /mnt/oldRoot && mount /dev/sdb2 /mnt/newRoot
    • Copie los datos de la antigua partición raíz a la nueva partición raíz:cp -afv /mnt/oldRoot /mnt/newRoot
  • Edite la tabla del sistema de archivos que define qué particiones se montan en el arranque (usaré Vim para eso):
    • vi /etc/fstab

    • Notará que aquí se hace referencia a sus antiguas particiones. Utilice los UUID de las nuevas particiones en su lugar

    • Puede insertar temporalmente todos los UUID en fstab para copiar y pegar más fácilmente con :r !blkid

    • Use los UUID de sus nuevas particiones para cambiar las entradas en fstab. Deberían verse así:

       `# <file system> <mount point> <type> <options> <dump> <pass>
       # Root partition
       UUID=76fd1ffd-fb96-4ab4-be1a-42f8e9223983 / ext4 errors=remount-ro 0 1
       # Boot partition
       UUID=e560e29e-8752-4b83-b1ee-4b86c0009f0b /boot ext2 defaults 0 2`
      
      • Eliminar la salida de blkid de fstab que insertó anteriormente con :r !blkid
  • Instalar GRUB

    • Monte los sistemas de archivos virtuales del CD en vivo de GParted:

      mount --bind /dev /mnt/newRoot/dev mount --bind /proc /mnt/newRoot/proc mount --bind /sys /mnt/newRoot/sys

    • Haga que las utilidades de GRUB del Live CD de GParted estén disponibles para la partición raíz:mount --bind /usr/ /mnt/newRoot/usr

    • Monte la partición de arranque en la partición raíz ya que GRUB almacenará su configuración en /boot :mount /dev/sdb1 /mnt/newRoot/boot

    • Usa chroot /mnt/newRoot para hacer que la nueva partición raíz sea temporalmente la raíz del sistema de archivos

    • Cree un archivo de configuración de GRUB en /boot/grub/grub.cfg usando update-grub2

    • Instale GRUB en la nueva unidad:grub-install /dev/sdb . No debe especificar un número de partición aquí

    • Regrese al sistema de archivos del CD en vivo de GParted:exit

    • Desmontar particiones:umount /mnt/newRoot/*

    • Apagar máquina

    • Si tiene varias unidades conectadas, asegúrese de que la unidad más nueva sea la primera en el orden de arranque

    • Iniciar máquina

    Estas instrucciones están inspiradas en las de oaktreepeak.com.

    Alternativamente, puede probar Clonezilla para lograr lo mismo.


    Linux
    1. ¿Cómo instalar un disco duro externo?

    2. Cómo instalar OpenVZ en Debian 9

    3. ¿Cómo creo nuevas particiones y formateo mi disco duro en partes?

    4. Cómo montar una nueva partición en Red Hat Linux

    5. ¿Cómo montar un sistema de archivos en un entorno de solo lectura?

    Cómo instalar Devuan(I)

    Cómo instalar Devuan(II)

    Cómo instalar Google Drive en Ubuntu 20.04

    Cómo instalar el sistema operativo Haiku

    Cómo instalar el servidor Ubuntu 20.04

    ¿Cómo montar automáticamente la partición de intercambio?