GNU/Linux >> Tutoriels Linux >  >> Linux

Partage / partition de démarrage entre les distributions

Vous pouvez, mais ce n'est pas une bonne idée.

Dans GRUB, ce que vous feriez est de spécifier un noyau différent et initrd fichiers pour chaque distribution installée sur le système.

Cependant, la configuration de démarrage d'une distribution peut entrer en conflit avec la configuration des autres distributions, selon la façon dont chaque distribution définit sa configuration de démarrage et nomme ses fichiers en /boot . Cela pourrait conduire à une configuration erronée et potentiellement empêcher une ou plusieurs distributions de démarrer. Une attention particulière doit être portée lors de la mise à jour du noyau ou de la modification des paramètres de démarrage dans l'une des distributions. S'il n'y a pas de conflits, cependant, vous devriez pouvoir démarrer les deux systèmes d'exploitation sans problème.


Je me rends compte que c'est un peu tard pour la fête, mais j'ai juste pris cela pour garder trois installations simultanées et une /boot partition :

  • arch linux
  • ubuntu 14.04
  • ubuntu 16.04

J'utilise Arch depuis des années, mais je ne connaissais pas du tout Ubuntu et je ne savais pas comment l'empêcher d'installer un chargeur de démarrage, alors je l'ai laissé faire. Pour arch, j'utilise syslinux , pas grub donc je m'y connais beaucoup plus. Bien que ce soit un peu au début de mon expérience, voici ma procédure :

  • identifier les fichiers potentiellement conflictuels. Après avoir noté les conventions de dénomination d'ubuntu par rapport à arch, cela se résumait à 14.04 et 16.04's vmlinuz et ininrd.img , qui portent le même nom (peut-être à part le numéro de version s'ils sont mis à jour à des moments différents). Pour autant que je sache, ils sont compatibles, mais j'ai choisi de les traiter comme non.
  • configurer syslinux comme d'habitude, créer des entrées pour chaque distribution (voir ci-dessous)
  • lors de la mise à jour de l'une des distributions potentiellement conflictuelles, implémentez une stratégie de nommage pour éviter les problèmes
  • avoir un plan de secours

Si l'un ou l'autre Ubuntu met à jour le noyau, j'obtiens deux fichiers clés :

  • /boot/initrd.img-x.x.x-xx-generic
  • /boot/vmlinuz-x.x.x-xx-generic

Pour chacun des éléments ci-dessus, j'ajoute simplement _distro à la fin, ainsi que remplacer une variante nommée statiquement pour éviter de changer mon syslinux.cfg chaque mise à jour (voir ci-dessous). Le processus ressemblerait à ceci, en utilisant 14.04/Trusty comme exemple et en n'affichant que les fichiers qui vous intéressent.

$ cd /boot
$ sudo mv ./initrd.img-4.4.0-62-generic ./initrd.img-4.4.0-62-generic_trusty
$ sudo cp ./initrd.img-4.4.0-62-generic_trusty ./initrd-trusty.img
$ sudo mv ./vmlinuz-4.4.0-62-generic ./vmlinuz-4.4.0-62-generic_trusty
$ sudo cp ./vmlinuz-4.4.0-62-generic_trusty vmlinuz-trusty

Étant donné que la convention de dénomination d'arch n'est jamais en conflit, cela signifie que je me retrouve avec 2 sauvegardes/nommés avec précision initrd et vmlinuz fichiers avec deux que je peux utiliser pour éviter de changer mon syslinux.cfg tout le temps. Les fichiers clés sont comme suit (avec des commentaires ajoutés) :

$ ls /boot/

initramfs-linux.img                 ## arch main initramfs
initramfs-linux-fallback.img        ## arch fallback initramfs
initrd.img-4.4.0-62-generic_trusty  ## named recent 14.04 initrd
initrd.img-4.4.0-62-generic_xenial  ## same for xenial (16.04)
initrd-trusty.img                   ## statically named initrd
initrd-xenial.img
vmlinuz-4.4.0-62-generic_trusty     ## named vmlinuz
vmlinuz-4.4.0-62-generic_xenial
vmlinuz-linux                       ## arch's vmlinuz
vmlinuz-trusty                      ## statically named vmlinuz
vmlinuz-xenial

Pour démarrer, voici mon syslinux entrées :

LABEL arch
  MENU LABEL arch
  LINUX ../vmlinuz-linux
  APPEND luks-options-here rootflags=compress=lzo,discard,ssd,subvol=arch rw
  INITRD ../intel-ucode.img,../initramfs-linux.img

LABEL xenial
  MENU LABEL xenial
  LINUX ../vmlinuz-xenial
  APPEND luks-options-here ro rootflags=compress=lzo,discard,ssd,subvol=xenial quiet splash $vt_handoff
  INITRD ../initrd-xenial.img

LABEL trusty
  MENU LABEL trusty
  LINUX ../vmlinuz-trusty
  APPEND luks-options-here ro rootflags=compress=lzo,discard,ssd,subvol=trusty quiet $vt_handoff
  INITRD ../initrd-trusty.img

Jusqu'à présent, il me reste grub sur l'ubuntus et il se plaint à chaque mise à jour mais rien n'a mal tourné. Mon plan de sauvegarde consistait à copier mbr.bin à /boot/ (généralement, il réside dans /usr/lib/syslinux... sur arc) de sorte que si grub décide d'écraser mon bootloader je peux au moins dd le syslinux chargeur de démarrage en arrière. Je suis convaincu à plus de 95% que mon installation arch ne sera jamais interrompue (au moins pour démarrer), donc je pourrai presque toujours démarrer dessus et réparer Ubuntu si j'ai copié/nommé quelque chose de manière incorrecte. Je garderai probablement une ancienne version de chaque initrd/vmlinuz pour que je puisse changer celui qui est chargé au démarrage en cas de problème avec le initramfs processus.

J'espère que c'est relativement clair ce qui se passe. Je pourrais probablement utiliser des liens, une sorte de script post-mise à jour, etc. pour automatiser, mais je n'y suis pas encore arrivé.

La réponse acceptée révèle que les choses pourraient mal tourner, mais comme j'ai cherché sur Google des exemples d'autres personnes faisant cela, et que je n'ai trouvé que des réponses comme celle-ci (en gros, "possible, mais pas"), j'ai pensé que j'ajouterais un exemple tangible de comment on pourrait configurez quelque chose comme ça.

Personnellement, je suis assez excité à ce sujet. J'ai une partition de démarrage et, comme vous l'avez peut-être remarqué, trois distributions côte à côte sur une btrfs cloison. Pas besoin de pré-allouer des tailles, pas de soucis de ne pas aimer une configuration et de la faire sauter (se retrouver avec une partition inutilisée flottant autour) et pas besoin d'un tas de volumes logiques juste pour démarrer une partition linux quand je suis déjà avoir un chargeur de démarrage !

J'espère que cela aidera quelqu'un.


Linux
  1. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0 ?

  2. Bash =~ Regex et Https://regex101.com/?

  3. La différence entre /opt et /usr/local ?

  4. Est-il bon de créer une partition séparée pour /boot ?

  5. Pourquoi mettre des choses autres que /home sur une partition séparée ?

Debian – Déplacer /var, /home vers une partition séparée ?

Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

Redimensionner la partition de démarrage

Pourquoi une partition de démarrage ext2 de 100 Mo est-elle recommandée pour Linux ?

Une partition /boot est-elle toujours nécessaire ?

Quelle est la taille recommandée pour une partition Linux /boot ?