Ce tutoriel traite de l'installation d'Ubuntu sur un disque dur USB ou un SSD ou un nvme et même une clé.
Ce tutoriel ne traite pas de la confection d'une live, ni live-USB ni live sur disque dur, dite "frugale".
Avant de commencer, il vous faut :
Il est important de savoir si vous allez faire une installation LEGACY ou EFI. Pour cela, aussitôt après avoir booté, ouvrir un terminal en frappant les caractères Ctrl Alt t puis exécuter cette commande.
[ -d /sys/firmware/efi ] && echo Session EFI || echo Session LEGACY
Par exemple, si vous utilisez un live-CD, démarrez votre ordinateur sur celui-ci et commencez l'installation jusqu'à l'étape de partitionnement (intitulée "Préparation de l'espace disque" dans Ubuntu 10.04).
Lors de l'installation, choisissez le partitionnement manuel afin de créer vos partitions (au minimum une partition racine. voir ICI) sur votre disque USB. ( « /dev/sda » dans cet exemple).
Si le boot a eu lieu en EFI, une partition de boot EFI est nécessaire. A mettre dans les deux premiers To du support et de préférence au début du disque en la créant en premier. Sa taille est de 35 Mo, le type de partition est FAT32. il faut l'allouer comme étant Partition système EFI. Le point de montage est alors automatiquement choisi sur /boot/efi.
On ne touche pas aux autres disques… ce qui est simple si on a pris la précaution de les débrancher.
Une fois correctement configuré, cela donne dans notre exemple :
Il ne vous reste qu'à cocher les cases pour formater les partitions (si vous ne l'aviez pas fait avant).
Pour que le disque USB soit autonome, il faut installer le chargeur d'amorçage (grub-pc) sur le disque USB («/dev/sda » dans cet exemple).
Pour cela, lorsque vous voyez l'écran récapitulatif ci-dessous, cliquez sur le bouton «avancé» en bas à droite.
Puis sélectionnez dans le menu déroulant votre disque USB («/dev/sda » dans cet exemple)
Voila, le paramétrage est fini. L'installation va s'achever toute seule. Ensuite, éteignez tout, ôtez le média installateur et redémarrez une première fois, pour admirer le résultat, et faire votre première mise à jour : Mais, pour la compatibilité avec des pc variés, rappelez-vous de refuser tout pilote graphique spécifique !
sudo apt-get update
sudo apt-get dist-upgrade
Si la mise à jour inclut un nouveau noyau, redémarrez encore une fois. Éteignez tout de nouveau et rebranchez le ou les disques internes. Pour finir, vous pouvez compléter l'installation d'Ubuntu en suivant ce tutoriel.
La version ubuntu 14.04.3 a servi à la préparation de cette partie de document.
La création d'une table de partition au format "gpt" et non "msdos" peut être choisie afin de ne plus gérer les partitions logiques.
La création d'une table de partition au format "msdos" et non "gpt" peut être choisie afin de rester bootable avec les ordinateurs les moins récents.
Ses caractéristiques: Taille 511 Mo avec un drapeau boot ⇒ Ce n'est pas un drapeau legacy-boot ni bios-grub. Une taille de 4 Mo serait suffisante, mais pas pour cet installateur qui trouve que 255 Mo est trop petit!!!! Lui mettre une étiquette 'ESPusb'. Cela sera pratique pour la suite. Lui créer un répertoire dont le nom sera EFI uniquement si vous envisagez de ne pas utiliser boot-repair.
Cela est très important: son démarrage va être irrémédiablement écrasé en installant un nouveau ubuntu. Si vous souhaitez y revenir de façon rapide, il est préférable de sauver la configuration. Pour cela vous montez la partition de boot fat32. Vous vous positionnez dans le répertoire /media/ubuntu/EFI/ubuntu et vous copiez le fichier grub.cfg dans le fichier grub.REFERENCE
En standard, l'installateur vous propose d'installer UBUNTU à côté des autres logiciels. C'est une solution qu'il est possible d'utiliser. Dans ce cas, il installera la partition / sur la totalité de l'espace disque restant.
Il faut donc continuer à prendre le choix 'autre chose'. En premier, il faut sélectionner la partition de démarrage. Le point de montage /boot/efi lui sera automatiquement alloué. Le reste des sélections est sans changement. À noter que toutes les partitions 'swap' sont automatiquement sélectionnées.
Le démarrage EFI ne se fait pas par le MBR mais en utilisant des fichiers contenus dans la partition de démarrage. L'installateur ne prévoit toujours pas de mettre le nécessaire dans le disque externe. Donc lorsque l'installation sur le disque externe est finie, il faudra faire l'action de continuer à tester afin de prendre en charge cette duplication.
Il est nécessaire de monter les partitions fat32 des disques externe et interne et de faire la commande de duplication cp -R /media/ubuntu/'identifiant partition FAT32 du disque interne'/EFI/ubuntu /media/ubuntu/ESPusb/EFI
Il sera bon de terminer cette réparation en revenant dans le bios pour l'informer des changements qui ont été faits car le support de boot qu'il connaissait sur /dev/sdb va devenir radicalement différent au prochain boot. Le grub va planter si cette action n'est pas faite.
L'installation de ubuntu dans la partition de boot interne a fait quelques dégâts qu'il faut rapidement corriger tant que nous sommes en live-usb
et que les partitions de boot sont montées. En effet, lors de l'installation, le boot a eu lieu avec une clé USB montée sur /dev/sdb, le disque externe est alors monté sur /dev/sdc. Toute la structure de boot de ubuntu a été enregistrée comme devant booter avec /dev/sdc2. Or bientôt, on va démonter la live USB et le disque de boot deviendra /dev/sdb2. Si le micro doit continuer à booter avec un ubuntu interne, il est nécessaire de modifier le fichier qui pilote le démarrage du grub pour lui faire remettre l'ancienne valeur. C'est le moment d'écraser le fichier grub.cfg par grub.REFERENCE. Si vous avez oublié de sauvegarder, il est assez facile de reconstituer le fichier. La commande sudo blkid redonnera les références de la partition qui contient le ubuntu précédant ainsi que son n° d'ordre. Actuellement bloqué au boot avec un message disant qu'il y a un problème pour monter le répertoire /etc/fstab:
https://askubuntu.com/questions/168290/why-cant-mount-read-files-in-etc-fstab-d
Si votre but est d'utiliser ubuntu de cette manière, il est atteint. Si votre but est autre, il faut enlever la séquence prioritaire qu'il a mise dans le bios EFI. Cet ordre de démarrage se traite normalement dans le bios EFI mais pour les bios EFI un peu anciens qui n'ont pas cette possibilité, il est bon de réarranger l'ordre de boot pour ne plus avoir ubuntu prioritaire. On peut aussi supprimer son entrée dans le BIOS ainsi que son répertoire dans la partition de boot. 'efibootmgr' sera à installer dans la live-usb.
C'est le moment de supprimer ce qui se rattache encore au disque interne.
Il faut corriger le contenu du fichier /etc/fstab de la nouvelle partition de démarrage:
Suppression de la ligne de swap qui référencie le disque interne pour ne conserver que celle qui référencie le disque externe.
Rectification de l'UUID du répertoire /boot/efi pour le faire pointer sur celui qu'on a construit de toute pièce.
La méthode simple est de lancer le micro classiquement et de faire une commande 'sudo update-grub' afin qu'il incorpore cette partition à sa liste de boot. Ultérieurement, si le choix de cette partition est fait, il faudra que le disque externe soit branché. Sinon il n'a pas besoin de l'être.
Nous allons dire que ce disque USB va être utilisé comme une clé USB d'installation de ubuntu. Pour cela il faut encore bricoler un peu… En premier on va créer la structure de boot classique d'une clé USB à savoir la création du répertoire /media/ubuntu/ESPusb/EFI/boot puis il faudra copier le fichier de démarrage grubx64.efi actuellement présent dans le répertoire /media/ubuntu/ESPusb/EFI/ubuntu puis on renommera ce fichier en bootx64.efi. Dans le doute on recommencera la copie pour avoir les deux principaux fichiers de boot présents.
Il faut maintenant s'intéresser de nouveau au fichier de paramétrage grub.cfg qu'il faut modifier pour prendre en compte que la partition de boot sera le disque 0 et non le disque 2. Cette modification faite, il faut aussi le transférer. Vous pouvez alors arrêter la live session de ubuntu et perdre la clé d'installation. Vous avez maintenant un disque externe opérationnel pour tous les micros EFI y compris le vôtre.
Vous pouvez enfin quitter la session live et vérifier que….Ce chapitre est utile.
usb14-04-3@usb14043:/boot/efi/EFI$ ls -rtl * boot: -rwxr-xr-x 1 root root 956792 août 16 22:12 bootx64.efi -rwxr-xr-x 1 root root 956792 août 16 22:14 grubx64.efi -rwxr-xr-x 1 root root 126 août 16 22:21 grub.cfg ubuntu: -rwxr-xr-x 1 root root 1355736 août 16 13:25 shimx64.efi -rwxr-xr-x 1 root root 1178240 août 16 13:25 MokManager.efi -rwxr-xr-x 1 root root 956792 août 16 13:25 grubx64.efi -rwxr-xr-x 1 root root 126 août 16 22:25 grub.cfg
usb14-04-3@usb14043:/boot/efi/EFI/boot$ pg grub.cfg search.fs_uuid 250efcb3-12d3-4763-97ef-cad84264ca5a root hd0,gpt2 set prefix=($root)'/boot/grub' configfile $prefix/grub.cfg
ATTENTION. La connectique USB3 et le GRUB de ubuntu font que le boot se met en 'arrêt' dans environ 15% de boots. Il faut alors rebooter une seconde fois.
Dans certains cas, si le boot plante dans le grub, les commandes suivantes peuvent aider à démarrer. (N étant le Numéro de partition contenant ubuntu).
set root=(hd0,gptN) set prefix=(hd0,gptN)/boot/grub insmod normal normal
Tout ce qui a été dit avec la version 14.04 reste vrai. Après l'installation sur le support externe, le fichier grub.cfg du disque interne continue de vouloir lancer l'installation externe. La NVRAM du bios continue de vouloir lancer le ubuntu du disque externe au lieu de celui du disque interne. A ces problèmes, il faut en ajouter deux autres.
A) la version 16.04 monte automatiquement les partitions. L'installateur ne sait pas les démonter. Si le démontage n'est pas fait, l'installateur boucle. Il se contente de nous demander notre avis, http://hpics.li/8b379c0 en proposant de ne pas les démonter. Il faut obligatoirement choisir l'option OUI pour les démonter.
B) L'installateur ne sait plus créer les partitions http://hpics.li/942dc18 . Il faut donc obligatoirement faire la création par GPARTED. Si on passe outre l'erreur signalée, cela reboucle sur le problème.
Installation de l'OS.
Installation des fichiers de boot.
Ce qu'il faut faire pour être capable de booter lorsque le support n'est pas présent ou pour utiliser ce support avec un autre ordinateur 64 bits.
Malgré notre désir d'obliger ubuntu à installer les fichiers de boot dans la partition FAT32 de la clé USB, il a décidé de les écrire dans la partition FAT32 du disque interne en remplaçant la structure de boot de ubuntu si elle était présente. On va donc rapatrier tout cela en ligne de commande avant de dire que l'installation est finie. En pratique, le répertoire de boot du disque interne est très souvent /dev/sda2 et celui du support externe est /dev/sdc1 et la partition racine est /dev/sdc2. Si vous n'êtes pas dans ce contexte, vous devrez adapter. Toutes les commandes vont se faire en mot superviseur.
Se mettre administrateur. Le mot de passe vous sera demandé.
sudo -i
Créer les points de montage des partitions
mkdir /mnt/A2 mkdir /mnt/C1 mkdir /mnt/C2
Monter les trois partitions.
mount -v /dev/sda2 /mnt/A2 mount -v /dev/sdc1 /mnt/C1 mount -v /dev/sdc2 /mnt/C2
Créer quelques répertoires fort utiles.
mkdir /mnt/C1/EFI mkdir /mnt/C1/Images mkdir /mnt/C1/Musique mkdir /mnt/C1/Videos mkdir /mnt/C1/Documents mkdir /mnt/C1/Telechargements mkdir /mnt/C1/i386-pc mkdir /mnt/C1/EFI/Boot mkdir /mnt/C1/EFI/ubuntu
Recopier la librairie non-efi de boot de ubuntu
cp -v /usr/lib/grub/i386-pc/* /mnt/C1/i386-pc
Recopier la structure de boot de ubuntu
cp -v /mnt/A2/EFI/ubuntu/* /mnt/C1/EFI/ubuntu
Lors de l'installation, le support externe était en position N°3. Pour le prochain boot, il va être en première position. Il faut changer le paramétrage du fichier de configuration de boot efi. Pour cela:
gedit /mnt/C1/EFI/ubuntu/grub.cfg
Puis remplacer le mot hd2 par le mot hd0. La première des trois lignes du fichier est du style:
sauvegarder la modification.
Créer le contenu du boot utilisable sur un support externe.
cp -v /mnt/C1/EFI/ubuntu/* /mnt/C1/EFI/Boot cp -v /mnt/C1/EFI/Boot/grubx64.efi /mnt/C1/EFI/Boot/bootx64.efi
Trouver le UUID unique de la partition FAT32 du support externe pour le mettre à la place du UUID de la partition FAT32 du support interne stocké dans le fichier FSTAB
blkid | grep vfat
Le résultat contiendra les deux lignes le UUID est une donnée de ce style 1234-5678
gedit /mnt/C2/etc/fstab
Faire la substitution. En profiter pour changer le umask=0077 en umask=007,uid=1000,gid=46. Puis sauver le contenu.
Exemple avec un cas pratique:
blkid | grep vfat /dev/sda2: UUID="4879-5212" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="cede99d7-4497-4328-ab76-0b5344779345" /dev/sdd1: UUID="B56B-39DD" TYPE="vfat" PARTUUID="43b193dc-01"B56B-39DD
gedit /mnt/2/etc/fstab
donne comme résultat
# /boot/efi was on /dev/sda2 during installation UUID=4879-5212 /boot/efi vfat umask=0077 0 1 # swap was on /dev/sdd3 during installation UUID=b840afea-59be-47c9-a238-768001b0567a none swap sw 0 0
On fait le changement pour avoir
# /boot/efi was on /dev/sda2 during installation UUID=B56B-39DD /boot/efi vfat umask=007,uid=1000,gid=46 0 1 # swap was on /dev/sdd3 during installation UUID=b840afea-59be-47c9-a238-768001b0567a none swap sw 0 0
C'est le moment de vérifier que le boot fonctionne en disant que l'installation est finie.
NOTA. Il existe une autre possibilité qui doit éviter de recopier les fichiers de boot mais pas le problème de la mise à jour du fichier /etc/fstab. Il suffit de lancer une installation du grub sur le disque externe. J 'ai la codif avec le ubuntu installé, donc trop tard pour l'incorporer dans la technique liveUSB. Cela sera pour une autre fois.
sudo grub-install --no-nvram --efi-directory=/boot/efi --removable --no-uefi-secure-boot --target=x86_64-efi --directory=/usr/lib/grub/x86_64-efi --recheck
ce qui devrait donner comme rectification: Il est inutile de créer les répertoires ubuntu et boot et d'y copier les fichiers, il devrait suffire de faire la commande:
sudo grub-install --no-nvram --efi-directory=/mnt/C1 --removable --no-uefi-secure-boot --target=x86_64-efi --directory=/mnt/C2/usr/lib/grub/x86_64-efi --recheck
Peaufiner l'installation réalisée..
On va commencer par mettre à jour le logiciel (Ne serait-ce que pour faire fonctionner gedit!) Cette partie est faite à la date du 21 juillet 2017 avec un OS loin d'être finalisé.
sudo apt update sudo apt upgrade
Donc tout n'est pas encore parfait par exemple gedit ne sait pas accéder en écriture aux fichiers sous /etc, La présentation du bureau est encore très très sommaire.
On va faire des liens dans le bureau afin d'accéder facilement à nos répertoires de stockage
cd ~/Desktop ln -s /boot/efi/Musique Musique ln -s /boot/efi/Documents Documents ln -s /boot/efi/Images Images ln -s /boot/efi/Videos Vidéos ln -s /boot/efi/Telechargements Téléchargements
En mode graphique on peut actuellement y créer des sous-dossiers mais pas des fichiers. Ce qui doit se faire en ligne de commande!!! (BUG?). J'ai retenu cette solution pour permettre aux windows d'accéder en lecture écriture aux données personnelles via la première partition du support externe. Je suis désolé pour les fichiers dépassant 4 Go. Si cela vous pose problème, il suffira de créer en premier, une partition NTFS puis une petite partition FAT32.
Dans l'état actuel, ce support est utilisable pour booter en mode EFI sur tout ordinateur, mais pas en mode LEGACY. Cependant, j'y travaille à temps perdu.
Installer la structure de boot legacy
Ce contexte est certainement assez rare. Je reprends la discussion du 31 juillet 2016 faite avec FRAFA. On a préventivement rapatrié la librairie i386-pc. Je ne Voici la commande à faire.
sudo grub-install -v --no-nvram --efi-directory=/boot/efi --removable --no-uefi-secure-boot --target=i386-pc --directory=/boot/efi/i386-pc --recheck /dev/sdb
Je ne l'ai pas intégrée au travail préventif…… Mais j'aurais certainement pu. On peut vérifer avec bisnext dont voici un extrait
=> Grub2 (v2.00) is installed in the MBR of /dev/sdb and looks at sector 1 of the same hard drive for core.img. core.img is at this location and looks for (,msdos2)/boot/grub. It also embeds following components: modules --------------------------------------------------------------------------- fshelp ext2 part_msdos biosdisk ---------------------------------------------------------------------------
Rien de particulier. C'est la même logique. A titre d'exemple voir ici.
Une installation faite en mode chiffré sur support GPT et support MSDOS. Dans les deux cas, il y a une partition supplémentaire accueillant la structure de boot. Il n'y a plus dd partition swap ni home. L'installation est aussi bootable via REFIND seulement si le support est GPT.
Il y a un problème particulier pour une migration LEGACY avec UBUNTU qui ne livre plus la structure de boot qui est récupérable ici. Le lien direct est celui-ci.
Voir procédure version 18.04
L'installation de ubuntu sur support USB EFI en version 20.10 est assez nouvelle. La méthode de réalisation pour legacy ET efi est quasiment identique. La différence est la suivante:
En LEGACY, le MBR du disque dur interne est mis à jour.
En EFI, la partition EFI de boot du disque interne sera mise à jour seulement si l'utilisateur ne prévoit pas de partition de boot EFI dans le support externe.
Cette installation est réalisable avec un ordinateur ayant booté en LEGACY ou en EFI.
Notons que mettre une partition de boot EFI dans le support externe permet de booter immédiatement avec tous les ordinateurs sachant proposer les fichiers de boot EFI quel que soit leur nombre de disques internes.
Booter avec le support d'installation de la version 20.10 téléchargeable ici. Il n'existe pas de versions 32 bits.
Dans le type d'installation, choisir "autre chose".
Lorsque les disques et les partitions sont listées, aller à la recherche du support destiné à recevoir l'installation. Eviter de le confondre avec le(s) disque(s) interne(s) ou le support d'installation. Normalement, il est en fin de liste.
Se positionner sur le support externe et choisir l'option de "création d'une table de partition".
Ce choix va éliminer toutes les partitions présentes et créer une table de partition GPT qui ne supporte pas la modification du MBR permettant de booter en méthode LEGACY
Dans l'espace devenu libre , allouer un espace de 36 Mo pour être mis au format FAT32 et l'affecter au point de montage "partition système EFI".
L'espace restant sera mis au format EXT4 et affecté au point de montage "/".
Il reste à continuer l'installation de façon normale.
Dans le type d'installation, choisir "Effacer le disque et installer Ubuntu".
Lorsque les disques et les partitions sont listées, aller à la recherche du support destiné à recevoir l'installation. Eviter de le confondre avec le(s) disque(s) interne(s) ou le support d'installation. Normalement, il est en fin de liste.
Ce choix va éliminer toutes les partitions présentes et créer une table de partition GPT qui ne supporte pas la modification du MBR permettant de booter en méthode LEGACY qui sera remplacé par une partition bios-boot si l'installation est faite avec un ordinateur ayant booté en legacy.
Il faut confirmer l'écrasement du support.
Il reste à continuer l'installation de façon normale.
En date du 14 septembre 2021
Appliquer cette solution du paragraphe 4.4: choisir "Effacer le disque et installer Ubuntu". https://doc.ubuntu-fr.org/tutoriel/installation_sur_disque_usb#seconde_possibilite
Le disque bootera en légacy avec un ordinateur legacy et aussi en EFI avec un ordinateur EFI
En date du 18/09/2021
Après avoir booté, lancer l'application gparted et
Comme rien n'a été installé dans le disque externe, il faut faire tout en ligne de commande.
Passer en mode CHROOT. Dans l'exemple, la partition FAT32 est connue comme étant sdc2 et la partition ubuntu est sdc3. La lettre c devient d si présence de deux disques internes.
mount /dev/sdc3 /mnt mount --bind /dev /mnt/dev mount --bind /dev/pts /mnt/dev/pts mount --bind /sys /mnt/sys mount -t proc /proc /mnt/proc chroot /mnt /bin/bash
Installer les grub EFI et LEGACY
mount /dev/sdc2 /boot/efi grub-install --removable /dev/sdc grub-install --removable --target=I386-pc /dev/sdc
Récupérer le UUID de la partition EFI de boot
blkid | grep sdc2
Mettre à jour la ligne contenant le montage sur /boot/efi du fichier /etc/fstab
nano /etc/fstab
Quitter le mode chroot
exit
Si on ne veut pas booter avec ce disque externe branché:
Réparer le fichier /EFI/ubuntu/grub.cfg contenu dans la partition EFI du disque interne si déjà un UBUNTU présent dans ce disque ou remettre dans le bon ordre les lignes de boot de la NVRAM pour continuer à booter comme avant.
Les modes d'installation de la version 21.10 restent possibles.
Il aussi est possible de choisir une partition ZFS chiffrée ou non chiffrée sur tout le disque. De nouveau, ne pas se tromper de disque au moment du choix. L'avantage du ZFS est la compression LZ4 des données et du logiciel. Ce qui peut faire gagner pas mal d'espace (30%) et la création de points de reprises à chaque modification du logiciel.
Si le boot se fait en EFI, il est aussi possible de choisir:
- La méthode autre chose
- Ou la méthode à coté de
- Ou la méthode effacer le disque
Contributeurs : traaf, moko138 (sauf uefi).