GRUB cassé après conversion en btrfs

D'abord, oui, en fait, je soupçonnais que changer mon système de fichiers de ext4 à btrfs casserait GRUB et fstab.

Maintenant, voici ce qui s'est passé. J'ai converti le système de fichiers de manière transparente sur btrfs et ça a bien fonctionné. Maintenant, je ne parviens pas à démarrer, car j'ai une "erreur GRUB: système de fichiers inconnu". Comment puis-je réparer GRUB et fstab pour être mis à jour avec le nouveau système de fichiers?

C'est un processus long et étrange, mais cela fonctionne.

Première partie: Création d'une partition de démarrage du BIOS.

Le premier problème était que j'utilise une table de partition GPT. Juste parce que vous pouvez installer Linux et le démarrer ne signifie pas que GRUB fonctionne bien. Je supposerais que si je pouvais démarrer auparavant, alors tout va bien, mais ce n'est pas exactement le cas. Créez une partition non formatée avec le bios_boot flag set. La meilleure façon de le faire est juste dès le départ avant d'installer quoi que ce soit sur votre disque dur, mais cela fonctionnera toujours si vous devez le faire plus tard, même si vous aurez une partition étrange à la fin de votre disque . J'aime les choses bizarres pour être au début du disque. Dans tous les cas, voici ce que vous devez faire.

En raison de la façon dont GPT est 1000 000 fois plus efficace et plus intelligent (et pourtant encore moins soutenu) que MBR, il n'y a pas d'espace sur le disque pour l'installation de GRUB. Habituellement, GRUB s'installe au début des partitions entre les disques en raison du fait que le MBR nécessite un espace après. Bizarre? Tout à fait, mais c'est comme ça. Commençons.

Tout d'abord, assurez-vous d'avoir le bon lecteur . Ne continuez pas jusqu'à ce que vous sachiez que /dev/sdX est le lecteur que vous pensez être. Maintenant que vous avez fait votre diligence raisonnable, faites-le à nouveau. Trois fois, juste pour être sûr. D'accord, passons à autre chose.

Maintenant, installez parted ( # apt-get install parted ) et démarrez le ciblage de votre lecteur:

 $ sudo parted /dev/sdX 

Si vous ne l'avez pas encore déjà, réglez l'étiquette d'enregistrement de démarrage sur GPT:

 (parted) mklabel gpt 

Ensuite, créez une partition pour les choses de démarrage du BIOS. Je met le mien au début du disque, alors voici ce que le mien ressemble:

 (parted) mkpart primary 0MB 1MB 

Vous devez modifier les numéros ci-dessus pour indiquer que vous souhaitez que la partition démarre et arrête , respectivement.

Maintenant, définissons le drapeau sur cette partition. Vous voudrez peut-être exécuter la commande d' print séparée pour obtenir le numéro de partition. Dans mon cas, il est 1 car ce sera la première partition, alors voici comment on a établi le drapeau:

 (parted) set 1 bios_grub on 

D'accord, maintenant que vous avez créé cette partition, nous avons fini avec cette partie. Si vous le souhaitez, vous pouvez créer votre partition de système de fichiers réelle en procédant comme suit:

 (parted) mkpart primary 1MB 1TB 

Exécutez la commande ci-dessus si c'est ce que vous voulez vraiment faire et que vous n'avez pas encore installé. Si vous avez un système borked, ne créez pas une autre partition.

Deuxième partie: Fixing GRUB

Maintenant, vous devrez réparer GRUB et fstab. Nous aborderons tout d'abord Fstab. Chargez un CD en direct et montrez votre système de fichiers à /mnt sur le CD en direct.

 $ sudo mount /dev/sda /mnt 

Maintenant, obtenez l'UUID pour votre disque dur en utilisant la commande blkid :

 $ sudo blkid /dev/sda1 UUID="abcdef-1231241241-12124124-12ae21331" 

Prenez l'UUID et nous mettons à jour /etc/fstab avec lui. Ouvrez /etc/fstab et mettez à jour l'UUID avec le nouveau que vous venez d'obtenir de blkid . Assurez-vous de remplacer ext4 par btrfs , maintenant que vous avez changé votre type de système de fichiers. Recherchez la ligne qui a un / dans elle, c'est votre partition racine, c'est celui que vous souhaitez modifier. Génial.

Maintenant, mettons à jour grub.

 $ sudo grub-install --root-directory=/mnt /dev/sda 

Grub sera mis à jour et installé sur le disque dur. Cool. L'étape suivante consiste à mettre à jour vos fichiers de configuration GRUB. Associons certaines partitions système au /mnt :

 $ sudo mount --bind /dev /mnt/dev $ sudo mount --bind /sys /mnt/sys $ sudo mount --bind /proc /mnt/proc 

Maintenant, chrootons dans votre système de fichiers.

 $ sudo chroot /mnt 

Cela vous connectera effectivement dans votre système de fichiers comme si votre ordinateur l'exécutait. Prochain, grub de mise à jour.

 $ sudo update-grub2 

Espérons que cela va se détendre et mettre à jour tout. Cool. Maintenant, revenez à votre vie et sauvegardez vos modifications. Apprends de tes erreurs.