[Résolu] Dual-boot sur 2 disques dont 1 externe

Forum de support pour les utilisateurs francophones

Moderator: Laurent85

Forum rules
Topics in this forum are automatically closed 6 months after creation.
Vahia
Level 2
Level 2
Posts: 99
Joined: Sun Apr 08, 2018 6:58 am
Location: Mouriès, France
Contact:

[Résolu] Dual-boot sur 2 disques dont 1 externe

Post by Vahia »

Bonjour à tous !
Je viens vers vous aujourd'hui car je rencontre des difficultés pour mettre en place un dual-boot un peu particulier.

En effet, mon ordi (portable) est en dual-boot (Win10/Mint) depuis longtemps mais son SSD est un peu petit et les 2 OS commencent à manquer de place.
Ce que je souhaite donc faire c'est laisser le SSD interne à Windows et installer Mint sur un SSD (M.2 NVMe) monté dans un boitier externe et connecté en USB-C. J'y vois 2 intérêts : tout d'abord les 2 OS auront plus de place et ensuite, dans l'idéal, j'aurais voulu pouvoir me servir du SSD externe pour héberger Mint et le connecter à différents ordis pour retrouver mon environnement de travail sur tous mes ordis.

J'ai initialement pensé à créer un live persistant mais il semblerait que cette solution éradique toute la souplesse de l'OS et qu'il soit impossible de procéder aux mises à jour.
J'ai ensuite tenté une installation sur le SSD externe depuis un live sur une clé USB. J'ai essayé de placer grub sur le disque interne puis sur le disque externe. Dans les 2 cas c'est un échec puisque lorsque je sélectionne Mint dans grub, j'ai un message d'erreur qui me dit que le disque n'est pas trouvé et qu'il faut que je charge le kernel en premier. Et lorsque je débranche le SSD externe (dans le cas de l'installation de grub sur ce dernier), l'ordi ne boot pas et je me retrouve face à un grub vide...

J'aimerais que lorsque le SSD externe n'est pas branché je boot sur Win10 et lorsqu'il est branché il boot sur Mint.

Je suis sûr que l'un d'entre vous a déjà tenté cette config... :D
Je vous remercie par avance pour votre aide ! :wink:
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 2 times in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
Laurent85
Level 17
Level 17
Posts: 7081
Joined: Tue May 26, 2015 10:11 am

Re: Dual-boot sur 2 disques dont 1 externe

Post by Laurent85 »

Bonjour,
L'installateur ne sait pas gérer correctement ce type d'installation sur medium amovible. Pour ce type d'installation cela nécessite de lancer l'installateur avec l'option -b (sans bootloader) :

Code: Select all

ubiquity -b
En veillant à créer une partition efi sur le disque amovible, et poursuivre l'installation jusqu'au bout.
Et ensuite c'est de la ligne de commande pour installer grub soit même, l'option de grub-install qui convient est --removable. La procédure est assez technique avec un chroot et de la ligne de commande. Ça devrait fonctionner cependant je ne l'ai jamais tenté, je ne sais pas si LM est adapté pour ce type d'utilisation.
Image
User avatar
jjcojax
Level 5
Level 5
Posts: 610
Joined: Fri Apr 03, 2015 6:01 am
Location: Belgium

Re: Dual-boot sur 2 disques dont 1 externe

Post by jjcojax »

Bonjour,

Comme je suis lent, j'arrive après la piste de Laurent qui est peut-être meilleure :wink:

Je laisse quand même une autre ...
---
Je n'ai jamais essayer ce que tu demandes, c'est plutôt casse pipes, mais j'espère te faire avancer.
---
Je fais mes clés live USB avec persistance avec guidus mkusb (fonctionne aussi sur un vrais disque USB)

J'avais trouvé l'info -> https://wubijacq.com/rwd/mkusb-guidus.p ... idus/1.png (et l'utilise régulièrement depuis 3 ans)

En résumé, depuis un Linux, (même si il est aussi en live) il suffit d'ouvrir un terminal et de coller ligne par lignes...

Code: Select all

sudo add-apt-repository ppa:mkusb/ppa
sudo apt-get update
sudo apt-get install mkusb guidus dus mkusb-common 
et, tu auras le bouton pour faire tes clés dans ton menu de programmes.

Image

à la 1ere utilisation, tu te bases sur ce qu'indique le site wubijacq.com, et tu le fais pour l'iso d'un Linux base Ubuntu de ton choix.

Tu verras que c'est plus sophistiqué que ce que faisait jadis Unetbootin (qui était bien en 32 bits, mais bof-bof en 64)

Image

La clé démarre sur les PC BIOS et les PC UEFI (grub2 core.img pour les vieux et la partition FAT32 pour les UEFI)
La persistance est sur une partition ext4 (pas de limite en grandeur)
Une partition iso9660 qui se comporte comme un DVD d'install (si la persistance est détruite)
Une partition NTFS mise comme 1ere partition pour être utilisable comme espace de stockage pour Linux et/ou pour Windows (win7 n'accède qu'à la 1ere partition d'une clé USB)
---
Pour revenir à ta demande ...

Si le PC est UEFI,

Le disque externe est-il bien partitionné en GPT ? , et as tu prévus une partition fat32 sur ce disque ? (c'est là que le boot d'un PC UEFI doit être)

Si oui, après avoir essayer d'installer Mint sur le disque externe, colle simplement le contenu de la partition FAT32 du disque interne dans la partition FAT32 du disque externe, puis remet les drapeaux boot et esc comme sur le disque interne.

Cette partition FAT32 comporte le boot pour Windows, et le boot pour Linux

Avec un peux de chance, ton bios devrais voir qu'il y a aussi des fichiers de démarrage sur le disque externe et te proposer un choix comparable à cette vue
---
Vus que la piste de Laurent est différente, j’arrête provisoirement ici car Laurent connaît mieux Linux que moi.

jjcojax
Vahia
Level 2
Level 2
Posts: 99
Joined: Sun Apr 08, 2018 6:58 am
Location: Mouriès, France
Contact:

Re: Dual-boot sur 2 disques dont 1 externe

Post by Vahia »

Merci @Laurent85 et @jjcojax pour vos réponses !

J'ai commencé par la solution de Laurent85. J'ai booté sur un live USB. Dans un terminal j'ai éxécuté la commande

Code: Select all

ubiquity -b
L'installation s'est correctement déroulée. J'ai bien pensé à créer une partition EFI (sdb1) en début de disque (chose que je ne faisais pas auparavant).
Ensuite j'ai éxécuté la commande

Code: Select all

grub-install --removable /dev/sdb1
mais ça m'a retourné ce message d'erreur :

Code: Select all

Installing for i386-pc platform.
grub-install: error: cannot open directory `/boot/grub/i386-pc': No such file or directory.
Si je comprends bien il cherche à faire une installation pour un système 32bits alors que mon PC est en 64bits. C'est bien ça ?
Comment je peux résoudre ça ?

Pour réponde à jjcojax :
J'ai déjà réussi à faire un live persistant mais le souci c'est que, même si je mets à jour la liste des dépôts de mises à jour en choisissant les plus rapides, lorsque je veux mettre à jour Mint il cherche sur le live cd au lieu des dépôts.
Le disque externe est-il bien partitionné en GPT ?
Oui, ça c'est bon.
as tu prévus une partition fat32 sur ce disque ? (c'est là que le boot d'un PC UEFI doit être)
Non ça je ne l'avais pas fait...
puis remet les drapeaux boot et esc comme sur le disque interne
Là tu m'as perdu... :D
Laurent85
Level 17
Level 17
Posts: 7081
Joined: Tue May 26, 2015 10:11 am

Re: Dual-boot sur 2 disques dont 1 externe

Post by Laurent85 »

Vahia wrote: Sun Apr 11, 2021 2:00 am mais ça m'a retourné ce message d'erreur :

Code: Select all

Installing for i386-pc platform.
grub-install: error: cannot open directory `/boot/grub/i386-pc': No such file or directory.
Si je comprends bien il cherche à faire une installation pour un système 32bits alors que mon PC est en 64bits. C'est bien ça ?
Non le nom i386-pc est normal même en 64 bit.
Comment je peux résoudre ça ?
C'est plus compliqué. Je donne la procédure si tu veux essayer. Il faut être vigilant et suivre scrupuleusement la procédure, et pour cela l'idéal est d'avoir une bonne idée de ce que fait chaque commande, sinon comme je disais c'est compliqué à suivre.

Je suppose que le medium amovible est /dev/sdc et qu'il y a deux partitions sdc1 l'efi et sdc2 la racine.

Après l'installation avec ubiquity -b redémarre sur le live. Dans ton cas l'installation a déjà été faite donc démarre sur le live.

11/4/2021 Mise à jour de la procédure

Ensuite en ligne de commande :
  • Contournement du bug de l'installateur pour la partition efi du disque usb

    Code: Select all

    sudo mkfs.fat -F32 /dev/sdc1
    sudo sfdisk --part-type /dev/sdc   1   1
    sudo partprobe /dev/sdc
    
  • montage des partitions du disque usb

    Code: Select all

    sudo mount /dev/sdc2 /mnt
    sudo mount /dev/sdc1 /mnt/boot/efi
    sudo mount -o bind /dev /mnt/dev
    sudo mount -o bind /run/systemd/resolve/stub-resolv.conf  /mnt/run/systemd/resolve/stub-resolv.conf 
  • Contournement du bug partition efi la suite

    Code: Select all

    sudo sed -i '/boot\efi/d' /mnt/etc/fstab
    echo "UUID=$(lsblk -n -o uuid /dev/sdc1)   /boot/efi   vfat   umask=0077   0   1" | sudo tee -a /mnt/etc/fstab
  • chroot

    Code: Select all

    sudo chroot /mnt
  • montages système

    Code: Select all

    mount -t proc proc /proc
    mount -t sysfs sysfs /sys
    mount -t devpts devpts /dev/pts
  • mise à jour des dépôts

    Code: Select all

    apt update
  • installation du paquet grub

    Code: Select all

    apt install grub-efi
  • installation de grub en mode medium amovible

    Code: Select all

    grub-install --target=x86_64-efi --efi-directory=/boot/efi --removable --recheck
  • création de grub.cfg

    Code: Select all

    update-grub
  • A ce stade l'installation de grub est terminée, il reste à sortir proprement du chroot

    Code: Select all

    umount /dev/pts /sys /proc
    exit
    sudo umount /mnt/boot/efi
    sudo umount /mnt/run/systemd/resolve/stub-resolv.conf
    sudo umount /mnt/dev
    sudo umount /mnt
Ensuite arrêter le pc et retirer la clé d'installation.

Pour démarrer en priorité sur le disque usb cela dépend de la configuration du bios uefi du pc, tous les pc ne proposent pas les mêmes possibilités de configuration et cela ne dépend pas de LM.
Image
Vahia
Level 2
Level 2
Posts: 99
Joined: Sun Apr 08, 2018 6:58 am
Location: Mouriès, France
Contact:

Re: Dual-boot sur 2 disques dont 1 externe

Post by Vahia »

J'ai suivi ta procédure ligne par ligne.
Je n'ai eu aucun message d'erreur de bout en bout.
Mais le souci c'est que ça ne marche pas. L'ordi boot sur Windows du disque interne. Pourtant la séquence de boot était réglée sur USB en premier puisque j'ai booté sans difficulté sur le live USB pour faire les manips.
J'ai même interrompu la séquence de boot pour voir les possibilités qui s'offraient. Résultat : seul le disque interne est bootable.

Ne serait-ce pas dû au fait que dans la procédure il n'est pas fait référence à la partition sdc1 et que donc elle n'est jamais implémentée ?
Laurent85
Level 17
Level 17
Posts: 7081
Joined: Tue May 26, 2015 10:11 am

Re: Dual-boot sur 2 disques dont 1 externe

Post by Laurent85 »

Vahia wrote: Sun Apr 11, 2021 1:48 pm Ne serait-ce pas dû au fait que dans la procédure il n'est pas fait référence à la partition sdc1 et que donc elle n'est jamais implémentée ?
Edition:
J'ai fait un test, l'installateur a un bug, il ne respecte pas le choix de la partition efi sur le disque usb. Donc en montant /boot/efi ce n'est pas la bonne partition qui est utilisée. Je regarde comment contourner le bug.
Image
Vahia
Level 2
Level 2
Posts: 99
Joined: Sun Apr 08, 2018 6:58 am
Location: Mouriès, France
Contact:

Re: Dual-boot sur 2 disques dont 1 externe

Post by Vahia »

Edition:
J'ai fait un test, l'installateur a un bug, il ne respecte pas le choix de la partition efi sur le disque usb. Donc en montant /boot/efi ce n'est pas la bonne partition qui est utilisée. Je regarde comment contourner le bug.
Ok, ça marche. Je te remercie.
Laurent85
Level 17
Level 17
Posts: 7081
Joined: Tue May 26, 2015 10:11 am

Re: Dual-boot sur 2 disques dont 1 externe

Post by Laurent85 »

J'ai modifié la procédure décrite dans mon message précédent pour contourner le bug de l'installateur. Ça ajoute quelques lignes de commande. Pas besoin de réinstaller LM sur le disque usb, reprends uniquement depuis le début la procédure d'installation de grub en ligne de commande.
Image
Vahia
Level 2
Level 2
Posts: 99
Joined: Sun Apr 08, 2018 6:58 am
Location: Mouriès, France
Contact:

Re: Dual-boot sur 2 disques dont 1 externe

Post by Vahia »

Je suis en train d'executer ta procédure.

A la commande

Code: Select all

echo "UUID=$(lsblk -n -o uuid /dev/sdc1)   /boot/efi   vfat   umask=0077   0   1 | sudo tee -a /mnt/etc/fstab
ça bloque. J'ai un chevron et un curseur qui semble attendre du texte.
Last edited by Vahia on Mon Apr 12, 2021 12:19 pm, edited 1 time in total.
Vahia
Level 2
Level 2
Posts: 99
Joined: Sun Apr 08, 2018 6:58 am
Location: Mouriès, France
Contact:

Re: Dual-boot sur 2 disques dont 1 externe

Post by Vahia »

Et pour info, après la commande

Code: Select all

sudo sfdisk --part-type /dev/sdc   1   1
j'ai eu :
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Laurent85
Level 17
Level 17
Posts: 7081
Joined: Tue May 26, 2015 10:11 am

Re: Dual-boot sur 2 disques dont 1 externe

Post by Laurent85 »

Vahia wrote: Mon Apr 12, 2021 12:15 pm Je suis en train d'executer ta procédure.

A la commande

Code: Select all

echo "UUID=$(lsblk -n -o uuid /dev/sdc1)   /boot/efi   vfat   umask=0077   0   1 | sudo tee -a /mnt/etc/fstab
ça bloque. J'ai un chevron et un curseur qui semble attendre du texte.
Il manquait le guillemet fermant, j'ai corrigé.
Image
Laurent85
Level 17
Level 17
Posts: 7081
Joined: Tue May 26, 2015 10:11 am

Re: Dual-boot sur 2 disques dont 1 externe

Post by Laurent85 »

Vahia wrote: Mon Apr 12, 2021 12:18 pm Et pour info, après la commande

Code: Select all

sudo sfdisk --part-type /dev/sdc   1   1
j'ai eu :
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
C'est normal.
Image
Laurent85
Level 17
Level 17
Posts: 7081
Joined: Tue May 26, 2015 10:11 am

Re: Dual-boot sur 2 disques dont 1 externe

Post by Laurent85 »

J'ai pris le temps de tester cette procédure d'installation de LM sur un ancien disque dur usb externe. LM démarre bien, j'ai aussi testé les mises à jour et l'installation d'un noyau Linux plus récent puis redémarré, ça fonctionne. Testé sur 2 machines différentes ça boot correctement.
Image
User avatar
jjcojax
Level 5
Level 5
Posts: 610
Joined: Fri Apr 03, 2015 6:01 am
Location: Belgium

Re: Dual-boot sur 2 disques dont 1 externe

Post by jjcojax »

Bonjour,

Je montre ma méthode (qui n'est pas meilleure que celle de Laurent), et j'ai rencontré les même problème que Laurent à indiqué au début du sujet, c.a.d.
L'installateur ne sait pas gérer correctement ce type d'installation sur medium amovible
L'installateur met les fichiers EFI uniquement sur le 1er disque (c'est un bug qui traîne depuis trop longtemps) , il suffit de faire un copier coller des fichiers de boot en mode admin pour qu'il soit recollés sur le disque externe.
---
Après l'installation, J'ai pus démarrer 2 PC différents du type UEFI (un PC tour avec un I5 6600 et un PC portable avec un AMD A10)

La différence avec une installation normale est que je recopie la partition EFI sur le disque externe (en mode admin)

Pour mon test, j'ai utilisé un tout vieux 40 GB Maxtor IDE (qui fait un bruit de réacteur d'avion) que j'ai mis dans un boîtier USB pour disques IDE.
---
Voici en détail...
Je formate le disque en GPT et j'y met une partition de 100 MB en FAT32 via gparted
J'ajoute une partition en ext4 pour le futur Linux Mint.

Image

Quand la partition FAT32 est en place, je mets les drapeaux (flag en Anglais) boot et esp (puisqu'il sont destiné à contenir les fichiers de démarrage type EFI)

Je fais l'install sur ce disque en précisant que le " / " doit être dans la partition ext4 de ce disque externe.

Image

Une autre vue de mon choix

Quand l'install est finie, il est vrais que la partie boot n'as pas été écrite sur le disque externe. (oui, l'installateur ne le fait pas correctement, mais toutes les version Linux basées sur Ubuntu utilise ce même installateur foireux.)

En mode admin (via sudo) je monte les partitions cachées des 2 disques dans deux dossiers différents sur le bureau. (commande "mount" sous Linux)

Image

Malgré avoir demandé de mettre les fichiers de démarrage sur le disque externe -> Il n'y a rien dans la partition EFI du disque externe.
Comme expliquer plus haut, il suffit de copier le dossier EFI de la partition en FAT32 du disque interne sur la partition FAT32 du disque externe

Image

Puis, comme pour les clés LIve USB.

Si elle est branchée en USB sur ma tour -> Le Bios trouve le Boot Ubuntu (Même si c'est Mint)

Image

Si elle est branché en USB sur mon portable ->Le Bios trouve le Boot Ubuntu (Même si c'est Mint)

Image

En résumé, la seule chose que j'ai ajouté à l'install normale, est de copier le dossier EFI du disque interne pour qu'i soit aussi dans le disque externe.

A savoir que quand le disque USB est le seul disque d'une machine, le temps de démarrage est nettement plus long que d’habitude (2 min)
Les mises à jours de la version s'est faite sans problèmes particuliers (une partie sur une machine, une partie sur l'autre)

jjcojax
Vahia
Level 2
Level 2
Posts: 99
Joined: Sun Apr 08, 2018 6:58 am
Location: Mouriès, France
Contact:

Re: Dual-boot sur 2 disques dont 1 externe

Post by Vahia »

Merci messieurs, vous êtes au top !
It works !!!

Je vais synthétiser tout ça dans un petit pdf histoire de pouvoir reproduire les manips dans le futur.
Quoiqu'il en soit, j'ai testé mon SSD externe sur plusieurs ordis et ça boot nickel. Bon on est clairement bridé par le débit de l'USB (en USB-C ça va super mais en USB 2...) mais ça, c'était à prévoir.

En tout cas encore mille mercis à tous les 2 !

Petite question subsidiaire :
A l'heure actuelle quand je boot sur mon SSD interne je tombe sur grub qui me propose Windows et Mint (normal vu que j'avais fait un dual boot). Vu que désormais j'ai Mint sur le disque externe je vais pouvoir le supprimer du disque interne et ainsi augmenter la taille de la partition Windows. Supprimer les partitions ext4, ça c'est facile. Mais comment dois-je procéder pour que quand je boot sur le disque interne ça boot direct sur Windows sans que ça me demande quoi que ce soit ?
Genre si avant de virer Mint j'utilise grub-customizer pour virer toutes les options de démarrage autres que Windows, ça fonctionne ?
Laurent85
Level 17
Level 17
Posts: 7081
Joined: Tue May 26, 2015 10:11 am

Re: Dual-boot sur 2 disques dont 1 externe

Post by Laurent85 »

Bonne nouvelle.
Vahia wrote: Tue Apr 13, 2021 4:16 pm Mais comment dois-je procéder pour que quand je boot sur le disque interne ça boot direct sur Windows sans que ça me demande quoi que ce soit ?
Evite grub-customizer c'est une interface qui a ses bugs. Démarre sur LM pour modifier l'efi à charger lorsque le pc boot sur le ssd insterne. Donne le retour de :

Code: Select all

sudo efibootmgr -v
Image
Vahia
Level 2
Level 2
Posts: 99
Joined: Sun Apr 08, 2018 6:58 am
Location: Mouriès, France
Contact:

Re: Dual-boot sur 2 disques dont 1 externe

Post by Vahia »

Voici le retour de la commande que tu m'as demandé :

Code: Select all

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0001,0002,9999
Boot0000* ubuntu	HD(1,GPT,5ec5aede-67f2-48ff-abb0-2612998fe8dc,0x800,0x82000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager	HD(1,GPT,5ec5aede-67f2-48ff-abb0-2612998fe8dc,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...&................
Boot0002* Solid State Disk	PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-25-38-8A-91-BC-FB-F9)/HD(1,GPT,5ec5aede-67f2-48ff-abb0-2612998fe8dc,0x800,0x82000)..BO
Boot9999* USB Drive (UEFI)	PciRoot(0x0)/Pci(0x1d,0x0)/USB(16,0)..BO
Laurent85
Level 17
Level 17
Posts: 7081
Joined: Tue May 26, 2015 10:11 am

Re: Dual-boot sur 2 disques dont 1 externe

Post by Laurent85 »

Le pc maintient dans une mémoire nvram de la carte mère une liste de chargeurs. Il faut modifier l'ordre de la ligne BootOrder pour mettre en tête le chargeur Windows :

Code: Select all

sudo efibootmgr --bootorder 1,0,2,9999
Vérifie ensuite avec :

Code: Select all

sudo efibootmgr
Image
Vahia
Level 2
Level 2
Posts: 99
Joined: Sun Apr 08, 2018 6:58 am
Location: Mouriès, France
Contact:

Re: Dual-boot sur 2 disques dont 1 externe

Post by Vahia »

On dirait que ça n'a rien fait (enfin je ne suis pas sûr).
Voici le retour :

Code: Select all

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0001,0000,0002,9999
Boot0000* ubuntu
Boot0001* Windows Boot Manager
Boot0002* Solid State Disk
Boot9999* USB Drive (UEFI)
Locked

Return to “Français - French”