GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer GRUB sur un nouveau disque ?

Je ne suis pas un expert grub2 (désolé) mais essayez d'ajouter --skip-fs-probe à votre ligne grub-install, j'ai trouvé que cela empêchait la création de /boot/grub/device.map ce qui peut provoquer le démarrage à une invite grub. Je pense que sans ce paramètre, grub-install, au lieu de faire ce que vous lui dites, pense qu'il est plus intelligent que vous, et peut faire quelque chose de différent.

Une autre chose est d'être sûr que vous utilisez la bonne installation grub (c'est-à-dire pour grub2 et non pour grub d'origine). Ce n'est pas un problème si vous êtes à l'intérieur de Centos mais avec SystemRecoveryCD les deux versions sont disponibles et vous devez donc utiliser grub2-install . J'ai appris à la dure...

Et comme @wurtel l'a souligné (bravo), vous devez spécifier un lecteur et non une partition. Grub2 s'installe dans le secteur 0 de l'ensemble du lecteur de disque, et ce "stub" est ce qui s'exécute au démarrage, mais il doit savoir où se trouve sur le disque, il doit installer les fichiers pour la prochaine étape du démarrage - c'est ce que le --root-directory le paramètre est pour. (Je pense.)

Lire man grub-install et en cherchant sur Google, je vois que --root-directory n'est pas vraiment destiné à être utilisé pour les versions 1.99++ de grub2, bien que cela fonctionne d'après mon expérience. Vous êtes censé utiliser --boot-directory et faites référence au répertoire de démarrage réel, donc cela vous donnerait :

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

Voici comment j'ai déplacé une installation Debian composée d'une partition de démarrage /boot et une partition racine / sur un nouveau lecteur et l'a rendu amorçable à l'aide de GNU GRUB :

Cloner des partitions

  • À l'aide du live CD GParted, créez les partitions de démarrage et racine sur le nouveau lecteur.
  • À l'aide d'une console racine dans GParted, montez l'ancienne partition de démarrage (disons qu'il s'agit de /dev/sda1 ) et la nouvelle partition (/dev/sdb1 ) :mount /dev/sda1 /mnt/oldBoot && mount /dev/sdb1 /mnt/newBoot
  • Copiez les données de l'ancienne partition de démarrage vers la nouvelle :cp -afv /mnt/oldBoot /mnt/newBoot . Explication de cp -afv :
    • a signifie "archive" ce qui signifie :
      • ne déréférencez pas les liens
      • copie récursive (comme -R )
      • préserver tous les attributs (horodatage, propriétaire, autorisation)
    • f :force, si un fichier de destination existant ne peut pas être ouvert, supprimez-le et réessayez
    • v  :verbeux, expliquez ce qui est fait
  • Cela générera une sortie sur votre console indiquant quel fichier est actuellement copié et si cp progresse
  • Montez et copiez les fichiers de votre ancienne partition racine vers la nouvelle :
    • Pour la sécurité :umount /mnt/oldBoot && umount /mnt/newBoot
    • Montez l'ancienne et la nouvelle partition racine (en supposant qu'il s'agit de /dev/sda2 et /dev/sdb2 ) :mount /dev/sda2 /mnt/oldRoot && mount /dev/sdb2 /mnt/newRoot
    • Copiez les données de l'ancienne partition racine vers la nouvelle partition racine :cp -afv /mnt/oldRoot /mnt/newRoot
  • Modifiez la table du système de fichiers qui définit quelles partitions sont montées au démarrage (j'utiliserai Vim pour cela) :
    • vi /etc/fstab

    • Vous remarquerez que vos anciennes partitions sont référencées ici. Utilisez plutôt les UUID des nouvelles partitions

    • Vous pouvez insérer temporairement tous les UUID dans fstab pour faciliter le copier-coller avec :r !blkid

    • Utilisez les UUID de vos nouvelles partitions pour modifier les entrées dans fstab. Ils devraient ressembler à ceci :

       `# <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`
      
      • Supprimer la sortie de blkid de fstab que vous avez inséré précédemment avec :r !blkid

Installer GRUB

  • Montez les systèmes de fichiers virtuels du live CD GParted :

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

  • Rendez les utilitaires GRUB du live CD GParted disponibles pour la partition racine :mount --bind /usr/ /mnt/newRoot/usr

  • Montez la partition de démarrage sur la partition racine puisque GRUB stockera sa configuration dans /boot :mount /dev/sdb1 /mnt/newRoot/boot

  • Utilisez chroot /mnt/newRoot pour faire de la nouvelle partition racine temporairement la racine du système de fichiers

  • Créez un fichier de configuration GRUB à /boot/grub/grub.cfg en utilisant update-grub2

  • Installez GRUB sur le nouveau lecteur :grub-install /dev/sdb . Vous ne devez pas spécifier de numéro de partition ici

  • Retournez au système de fichiers du live CD GParted :exit

  • Démonter les partitions :umount /mnt/newRoot/*

  • Machine d'arrêt

  • Si vous avez plusieurs disques connectés, assurez-vous que le disque le plus récent vient en premier dans l'ordre de démarrage

  • Démarrer la machine

Ces instructions sont inspirées de celles de oaktreepeak.com.

Alternativement, vous pouvez essayer Clonezilla pour obtenir le même résultat.


Linux
  1. Comment installer un disque dur externe ?

  2. Comment installer OpenVZ sur Debian 9

  3. Comment créer de nouvelles partitions et formater mon disque dur en partition ?

  4. Comment monter une nouvelle partition sur Red Hat Linux

  5. Comment monter un système de fichiers dans un environnement en lecture seule ?

Comment installer Devuan(I)

Comment installer Devuan(II)

Comment installer Google Drive sur Ubuntu 20.04

Comment installer le système d'exploitation Haiku

Comment installer le serveur Ubuntu 20.04

Comment monter automatiquement une partition d'échange ?