GRUB sur usb
dim. 10 décembre 2017
Cette adresse était très utile :
https://www.pendrivelinux.com/boot-multiple-iso-from-usb-via-grub2-using-linux
-
Repartionner la clé USB, en y créant une partition Linux (type '83' dans la table des partitions).
-
Rendre la partition amorçable (fdisk : commande 'a')
-
Exemple avec fdisk, pour une clé de 4 GO vierge sur
/dev/sdb
:
# fdisk /dev/sdb
[...]
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-8058879, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-8058879, default 8058879):
Created a new partition 1 of type 'Linux' and of size 3.9 GiB.
Command (m for help): a
Selected partition 1
The bootable flag on partition 1 is enabled now.
Command (m for help): p
Disk /dev/sdb: 3.9 GiB, 4126146560 bytes, 8058880 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xafcd074d
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 8058879 8056832 3.9G 83 Linux
Command (m for help):
- Formatter le volume en ext2. Exemple pour notre clé :
mkfs.ext2 -L USBGRUB /dev/sdb1
Note
L'URL donnée en haut fait formatter le volume en VFAT (type 'c' dans la
table des partitions), cela fonctionne aussi. Je préfère ext2.
- Monter le volume. Exemple :
mkdir /mnt/usbgrub
mount /dev/sdb1 /mnt/usbgrub
- Exécuter la commande
grub-install --boot-directory=/mnt/usbgrub/boot /dev/sdb
- La clé contient grub et peut démarrer un PC.
Démarrage
Le point délicat est de trouver le numéro de disque et le numéro de partition. A
priori, le disque principal du PC porte le numéro 1. Dans mon cas, la partition
Linux étant la numéro 3 (Linux démarre sur /dev/sda3
), le volume de démarrage
pour Linux est (hd1,3)
.
Et le volume de démarrage pour Windows, qui démarre sur mon PC depuis la
partition /dev/sda1
, est (hd1,1)
.
- Démarrer Windows depuis la clé
À l'invite de grub, exécuter :
set root=(hd1,1)
chainloader +1
boot
-
Démarrer Linux depuis la clé
-
Important
Une fois que root
a été défini à la bonne valeur, il est possible d'utiliser
la touche de tabulation pour compléter automatiquement les noms de fichier.
- Exemple pour une disbution Ubuntu 17.10 à jour
À l'invite de grub, exécuter :
set root=(hd1,3)
linux /boot/vmlinuz-4.13.0-17-generic ro root=/dev/sda3
initrd /boot/initrd.img-4.13.0-17-generic
boot
Category: TI