Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:frombenny:grub-usb [Le 24/01/2020, 14:37] frombenny |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>boot tutoriel}} | ||
- | |||
- | ---- | ||
- | <note>Cette page est un tutoriel Grub2 dont la documentation principale est disponible sur les pages [[:grub-pc]] et [[:grub-uefi]].</note> | ||
- | |||
- | ====== GRUB sur une clé USB ====== | ||
- | |||
- | Le but de ce tutoriel est de créer un **Grub sur une clé USB bootable** avec un ou plusieurs iso()s lançable(s) directement comme indiqué [[:tutoriel/grub2_lancer_des_images_iso|ici]]. | ||
- | |||
- | Dans ce tutoriel, le parti pris est d'utiliser une table de partitions de type "msdos" accessible aussi bien depuis des systèmes anciens que récents. On les formatera en FAT32 pour qu'on puisse y avoir accès, aussi, depuis MS Windows. | ||
- | |||
- | ===== Pré-requis===== | ||
- | * Avoir une clé USB d'**au moins 2 Go** (Selon le ou les isos qu'on veut lancer. Attention, tout son contenu sera effacé !). | ||
- | * **Repérer son nom**.<code>sudo blkid</code> | ||
- | * Être **lancé sur une variante Ubuntu contenant [[:gparted]]** (ce n'est pas le même logiciel ni sur [[:Kubuntu]] ni sur [[:Lubuntu]]). | ||
- | * Avoir **à disposition un fichier iso** d'une des variantes Ubuntu. | ||
- | |||
- | La procédure pour faire la même chose depuis Windows n'est pas traitée ici. | ||
- | |||
- | ===== Installation de grub sur la clé ===== | ||
- | ==== Partitionnement avec gparted ==== | ||
- | **Dans [[:Gparted]]** | ||
- | | **Se positionner** sur le bon disque (ici sdc),\\ {{:aller_sur_le_bon_device.jpg?direct&200|cliquer sur la liste des périphériques dans gparted}} | Si une ou plusieurs **partitions** sont montées, la/les **démonter** par clic droit,\\ Créer une **nouvelle table de partitions** de type **"msdos"** (remet la clé à zéro),\\ {{::creer_une_table_de_partition.jpg?direct&250|dans le menu "Périphérique" de gparted}} | | ||
- | |||
- | |||
- | * **Créer 2 partitions** de type "FAT32" (les noms proposés ici seront utilisés dans les lignes de commande plus loin) : | ||
- | * une de 8 Mo avec pour étiquette : **EFI-USB** | ||
- | * une autre avec l'espace restant, étiquette : **GRUB-SOS** | ||
- | |||
- | ==== ou le même partitionnement en lignes de commande ==== | ||
- | * **vérifier** le nom de la clé (ici:sdc) :<code>sudo blkid</code> | ||
- | * Créer une **nouvelle table de partitions** de type **"msdos"** : <code>sudo mkfs.fat -I /dev/sdc</code> | ||
- | | ||
- | ==== Fichiers de configuration ==== | ||
- | On utilisera **2 fichiers de configuration** : | ||
- | * sur **GRUB-SOS** : on copie le fichier **grub.cfg issu de l'iso xubuntu** dans un dossier /boot/grub. On en profite pour copier la **police par défaut** (certains grub cherchent font.pf2 d'autres unicode.pf2).<code>cd /media/$USER/GRUB-SOS/ | ||
- | mkdir boot && mkdir boot/grub | ||
- | cd boot/grub | ||
- | cp /media/$USER/EFI-USB/boot/grub/grub.cfg . | ||
- | cp /media/$USER/EFI-USB/boot/grub/font.pf2 . | ||
- | cp font.pf2 unicode.pf2</code> | ||
- | * sur **EFI-USB** : comme on n'aura plus accès à la partition lorsqu'elle sera bootable, on remplacera le contenu de /media/$USER/EFI-USB/**grub.cfg** par celui-ci qui **renvoie vers la partition GRUB-SOS** :<file txt grub.cfg>search.fs_label GRUB-SOS root | ||
- | set prefix=($root)'/boot/grub' | ||
- | configfile $prefix/grub.cfg</file> | ||
- | |||
- | ==== rendre bootable la partition EFI-USB ==== | ||
- | On relancera **[[:gparted]]** et par **clic-droit sur** la partition **EFI-USB**, on lui attribuera les **drapeaux "esp" et "boot"**. La clé est prête. A vous de modifier le fichier grub.cfg de GRUB-SOS pour lancer ce que vous souhaitez avec. | ||
- | |||
- | ===== Pour un démarrage en mode "legacy" (ordinateurs anciens) ===== | ||
- | ==== Partitionner la clé avec gparted ==== | ||
- | * Bien se **positionner** sur le bon disque (ici sdc), | ||
- | * Si une ou plusieurs **partitions** sont montées, la/les **démonter** par clic droit, | ||
- | * Créer une **nouvelle table de partitions** "msdos" (remet la clé à zéro) | ||
- | * Créer **1 partition** de type **"FAT32"** sur la totalité de la clé avec pour étiquette : **GRUB-LEGACY**. | ||
- | |||
- | ==== Ce qu'il faut mettre sur cette partition ==== | ||
- | * il faut d'abord être lancé sur un **système non-EFI**.<code>[ -d /sys/firmware/efi ] && echo "- - Session EFI - -" || echo "Session non-EFI"</code> | ||
- | * **ouvrir** la clé dans un gestionnaire de fichiers (objectif: que la partition soit montée), | ||
- | * **copier le dossier boot** du système sur lequel on est car il fonctionne :<code>mkdir /media/$USER/GRUB-LEGACY/boot | ||
- | cp /boot/grub /media/$USER/GRUB-LEGACY/boot/</code> | ||
- | |||
- | ==== Installer le grub dans le MBR pour rendre la clé bootable ==== | ||
- | * **vérifier** le nom de la clé (ici:sdc) :<code>sudo blkid</code> | ||
- | * la commande qui met **grub dans le MBR** :<code>sudo grub-install --root-directory=/media/$USER/GRUB-LEGACY /dev/sdc</code> | ||
- | * maintenant, modifiez le fichier /boot/grub/grub.cfg à votre guise. | ||
- | |||
- | ===== Personnaliser le menu Grub ===== | ||
- | <note important>Les dossiers de configuration "locale" ou "themes" seront mis dans le dossier /boot/grub/ accessible directement (GRUB-SOS ou GRUB-LEGACY).</note> | ||
- | |||
- | ==== Préalable pour le menu en français ==== | ||
- | Dans le gestionnaire de fichiers, vous pouvez faire un copier/coller d'un dossier "locale" présent dans un /boot/grub d'un linux installé pour le mettre dans votre /boot/grub. Les paramètres 'locale_dir' et 'lang' permettront de l'activer dans le grub.cfg. | ||
- | |||
- | ==== Pour le thème utilisé dans l'exemple ==== | ||
- | Dans le grub.cfg exemple, le thème utilisé provient de [[https://www.gnome-look.org/p/1160963/|cette page]]. | ||
- | |||
- | ==== Exemple de fichier grub.cfg avec un thème ==== | ||
- | Comme les fichiers grub.cfg en service sont complexes à comprendre, voici un exemple pour un Grub sur clé USB : | ||
- | <file txt grub.cfg>insmod part_gpt | ||
- | insmod part_msdos | ||
- | insmod fat | ||
- | #insmod all_video | ||
- | insmod efi_gop | ||
- | insmod efi_uga | ||
- | insmod video_bochs | ||
- | insmod video_cirrus | ||
- | insmod gfxterm | ||
- | set gfxmode=1920x1080 | ||
- | set locale_dir=/boot/grub/locale | ||
- | set lang=fr_FR | ||
- | insmod gettext | ||
- | terminal_output gfxterm | ||
- | insmod gfxmenu | ||
- | loadfont /boot/grub/unicode.pf2 | ||
- | loadfont /boot/grub/themes/Crunchy-simple/ComicNeue_normal.pf2 | ||
- | loadfont /boot/grub/themes/Crunchy-simple/ComicNeue_title.pf2 | ||
- | set theme=/boot/grub/themes/Crunchy-simple/theme-fog.txt | ||
- | export theme | ||
- | insmod jpeg | ||
- | |||
- | menuentry ".. Xubuntu Disco 19.04 fr" { | ||
- | iso_path="/xubuntu-19.04-desktop-amd64.iso" | ||
- | loopback loop $iso_path | ||
- | linux (loop)/casper/vmlinuz locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$iso_path boot=casper file=/cdrom/preseed/xubuntu.seed noprompt quiet splash -- | ||
- | initrd (loop)/casper/initrd | ||
- | }</file> | ||
- | |||
- | ===== Booter sur cette nouvelle clé ===== | ||
- | Selon le **BIOS** de votre ordinateur, vous avez peut-être une touche (F7, F11,..) pour **choisir le média de démarrage** ? | ||
- | |||
- | Sinon, il faut aller **dans le BIOS** (accès souvent avec touche Echap ou F2 selon les ordinateurs) pour changer l'**ordre de démarrage** des disques. | ||
- | |||
- | Sur certains BIOS, dans le dernier onglet, on a la liste des supports et on peut aller dessus et valider avec la touche entrée. | ||
- | |||