Contenu | Rechercher | Menus

Installation d'Ubuntu sur un disque USB

Ce tutoriel traite de l'installation d'Ubuntu sur un disque dur USB.
Ce tutoriel ne traite pas de la confection d'une live, ni live-USB ni live sur disque dur, dite "frugale".

Si vous désirez un *buntu capable de fonctionner sur 90% des autres PC, même anciens, en plus de votre pc habituel, alors
- choisissez une variante 32 bits légère (Lubuntu ou Xubuntu) ;
- n'installez surtout pas de pilote graphique spécifique.
Jusqu'au noyau 3.2 (Xubuntu 12.04.5 inclus ; autres *buntu 12.04.1 inclus) les cartes graphiques anciennes sont supportées. On regrettera que ce support ait été abandonné dans les noyaux ultérieurs.

Pré-requis

Avant de commencer, il vous faut :

  • un disque dur USB de capacité suffisante (minimum 20Go pour être à l'aise) ;
  • un média d'installation (live-CD ou live-USB ou Framakey Ubuntu-fr Remix) ;
  • avoir branché votre disque USB, et avoir repéré son "nom" (sda, ou sdb, ou sdc, etc) dans l'arborescence : dans l'exemple qui suit, "sda" est le disque USB sur lequel on veut installer Ubuntu.
Préférez un petit disque ! Si vous utilisez un disque de trois pouces et demi, il lui faudra impérativement une alimentation distincte de celle du pc. Sinon, vous grillerez tôt ou tard un composant du pc hôte (alimentation ou carte pci-usb ou carte-mère).
Explication : un disque dur de trois pouces et demi consomme plus de courant que celui fourni par deux ports usb.
Ce qui suit n'est pas obligatoire mais très vivement conseillé :
Pour éviter toute catastrophe, débranchez, le temps de l'installation, les disques internes et tous vos supports de stockage sauf le disque USB sur lequel vous voulez installer Ubuntu.

Installation

Démarrer l'installation

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).

Configuration des partitions

Lors de l'installation, choisissez le partitionnement manuel afin de créer vos partitions (au minimum une partition racine et une swap, voir ICI) sur votre disque USB. ( « /dev/sda » dans cet exemple)

On ne touche pas aux autres disques… ce qui est simple si on a pris la précaution de les débrancher. :-D

Une fois correctement configuré, cela donne dans notre exemple :

1426254623.jpg

Il ne vous reste qu'à cocher les cases pour formater les partitions (si vous ne l'aviez pas fait avant).

Installation du chargeur de démarrage sur le disque USB

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).

À moins de savoir exactement ce que vous faites, pas de nombre dans l'expression "/dev/sd…" !
Les deux écrans ci-dessous correspondent à Ubuntu 10.04. Pour la version Ubuntu 11.10, la sélection pour le chargeur d'amorçage se fait à l'étape "Allouer de l'espace disque" en même temps que la configuration des partitions :

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.

Spécificités support USB EFI

La version ubuntu 14.04.3 a servi à la préparation de cette partie de document.

En Live-USB Préparer le support avec gparted

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 LEGACY.

Création des Partitions

  • partition de démarrage

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.

  • partition / communément appelée SLASH avec la taille voulue et une étiquette 'SLASHusb'.
  • partition SWAP.
  • autres partitions si nécessaire.

Si vous utilisez déjà ubuntu

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

Installation

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.

Gestion du chargeur de démarrage

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

Réparation du micro

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.

Si vous utilisiez déjà ubuntu

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: :?:

  http://askubuntu.com/questions/168290/why-cant-mount-read-files-in-etc-fstab-d

Si vous utilisiez un autre OS.

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.

Utilisation de ce support par d'autres micros EFI

Suppression des adhérences

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.

Utilisation par un micro EFI ayant déjà un grub

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.

Utilisation par un micro EFI n'ayant pas de grub

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

Évolution avec la version 16.04.1

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.

Procédure avec la version 17.10 pour une installation nouvelle.

Installation de l'OS.

  1. Booter avec le support contenant la version 17.10 en 64 bits.
  2. Choisir "Try Ubuntu without installing".
  3. Brancher le support de réception (Clé USB, carte SD, ou disque dur).
  4. Lancer Gparted afin de fabriquer les futures partitions.
  5. Si le support est neuf, il est nécessaire de fabriquer une table de partition DOS .
  6. Si vous pensez échanger des données avec d'autres ordinateurs ou un autre OS du même micro, fabriquer une partition FAT32 de la totalité de l'espace disponible en retranchant 20 ou 24 go, sinon 36 Mo suffisent . Y mettre les drapeaux boot et esp.
  7. Fabriquer une partition EXT4 destinée à recevoir l'OS. Mon conseil: Une taille de 20 Go si possible.
  8. Fabriquer une partition de swap de 4 Go seulement si la taille de la RAM est inférieure à 4 Go.
  9. Lancer l'installation et soyez très patient pendant la phase "Préparation de l'installation du système d'exploitation Ubuntu". Je ne sais pas à quoi il joue pendant 15 minutes.
  10. Lancer le "Type d'installation" avec la technique "autre chose". Il n'est pas toujours évident de démonter les disques internes des portables mais les partitions seront en fin de liste.
  11. Choisir la partition ext4 pour y mettre le point de montage / (formatage facultatif).. Elle est à sélectionner par la fonction MODIFIER.
  12. Choisir la partition FAT32 pour un point de montage /boot/efi. Cela mettra à jour la zone décrivant le disque qui va contenir le programme de démarrage. Inutile de faire ce choix car rien n'a changé depuis pas mal d'années!
  13. Cliquer sur "installer maintenant". Ne soyez pas surpris par l'économiseur d'écran tout bleu qui affiche la date encore en anglais… Bonne installation… (plus de 5 heures avec une connexion USB2.
  14. L'installation est maintenant finie. Mais je propose de continuer à tester pour faire de façon intelligente l'installation des fichiers de boot. Tout va se passer en ligne de commande. Alors il va falloir s'accrocher.

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
    ---------------------------------------------------------------------------

Contributeurs : traaf, moko138 (sauf uefi).



Le contenu de ce wiki est sous licence : CC BY-SA v3.0