Clé usb multiboot avec grub2 avec dessus Win7 installer, Xubuntu et Kali

Pré-requis : partitionner la clé

Passez en mode root :

$ sudo su
[sudo] Mot de passe de xxxxxxx :
#

Listez les partitions pour trouver la clé :

# fdisk -l
(...)
Disque /dev/sdf : 14,9 GiB, 16007561216 octets, 31264768 secteurs
Unités : sectors of 1 * 512 = 512 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0009d10a
Périphérique Amorçage Start Fin Secteurs Size Id Type
/dev/sdf1 * 32 31264767 31264736 14,9G c W95 FAT32 (LBA)
#

La clé est donc montée en /dev/sdf.

Lancez le partitionnement de cette clé :

# fdisk /dev/sdf
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Commande (m pour l'aide) :

Successivement :

p : listez les partitionsd : supprimez-les toutes (répétez la commande d)n : créez une première partition de 22 GiB avec les valeurs par défautn : créez une deuxième partition avec les valeurs par défaut (-> le reste de la clé)t : définissez le type de la première partition (type c)t : définissez le type de la deuxième partition (type 1c)w : terminez en écrivant le partitionnement

Commande (m pour l'aide) : p
Disque /dev/sdf : 14,9 GiB, 16007561216 octets, 31264768 secteurs
Unités : sectors of 1 * 512 = 512 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0009d10a
Périphérique Amorçage Start Fin Secteurs Size Id Type
/dev/sdf1 * 32 31264767 31264736 14,9G c W95 FAT32 (LBA)
Commande (m pour l'aide) : d
Selected partition 1
La partition 1 a été supprimée
Commande (m pour l'aide) : n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
utilisation de la réponse par défaut p.
Numéro de partition (1-4, 1 par défaut) :
Premier secteur (2048-31264767, 2048 par défaut) :
Last sector, +sectors or +size{K,M,G,T,P} (2048-31264767, 31264767 par défaut) : +22G
Created a new partition 1 of type 'Linux' and of size 22 GiB.
Commande (m pour l'aide) : n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p):
utilisation de la réponse par défaut p.
Numéro de partition (2-4, 2 par défaut) :
Premier secteur (20973568-31264767, 20973568 par défaut) :
Last sector, +sectors or +size{K,M,G,T,P} (20973568-31264767, 31264767 par défaut) :
Created a new partition 2 of type 'Linux' and of size 4,9 GiB.
Commande (m pour l'aide) : t
Numéro de partition (1,2, 2 par défaut) : 1
Partition type (type L to list all types): c
Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'.
Commande (m pour l'aide) : t
Numéro de partition (1,2, 2 par défaut) :
Partition type (type L to list all types): 1c
Changed type of partition 'Linux' to 'Hidden W95 FAT32 (LBA)'.
Commande (m pour l'aide) : w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Démontez deux partitions, formatez les et rendez la clé bootable :

# umount /dev/sdf{1,2}
umount: /dev/sdf1: not mounted
umount: /dev/sdf2: not mounted
# mkfs.vfat -F 32 -n DISCUS /dev/sdf1
mkfs.fat 3.0.28 (2015-05-16)
# mkfs.vfat -F 32 -n SYSTEM /dev/sdf2
mkfs.fat 3.0.28 (2015-05-16)
# parted /dev/sdf set 2 boot on
Information: Ne pas oublier de mettre à jour /etc/fstab si nécessaire.

Première étape

Créez les répertoires /media/system et /media/windowsmontez la 2e partition sur /media/systemInstallez grub sur la clé avec pour racine /media/system (la 2e partition)

# mkdir /media/{system,windows}
# mount /dev/sdf2 /media/system
# grub-install --force --no-floppy --root-directory=/media/system /dev/sdf
Installation pour la plate-forme i386-pc.
Installation terminée, sans erreur.

Autres étapes

Copie du contenu de l'iso Windows sur **/media/system**

Montez l'iso windows en loop :Copiez sur /media/system les fichiers iso et le contenu de l'iso :

# mount -o loop -t udf /isos/Windows10-32-64.iso /media/windows/
mount: /dev/loop0 is write-protected, mounting read-only
# cp -r {/media/windows/*,ubuntu32.iso,ubuntu64.iso} /media/system

Le fichier /media/system/boot/grub/grub.cfg

Éditer le fichier /media/system/boot/grub/grub.cfg pour le modifier comme ceci :

set isopath=/
menuentry "Ubuntu 32 en live" {
set isoname="ubuntu32.iso"
set isofile="$isopath/$isoname"
echo "Using $isoname..."
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet splash
initrd (loop)/casper/initrd.lz
}
menuentry "Ubuntu 64 en live" {
set isoname="ubuntu64.iso"
set isofile="$isopath/$isoname"
echo "Using $isoname..."
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet splash
initrd (loop)/live/initrd.img
}
menuentry "Installation de windows" {
ntldr /bootmgr
}

Démontez les partitionssupprimez les répertoireset revenez en mode user :

# umount /media/{system,windows}
# rmdir /media/{system,windows}
# exit
$

Tests : voir vlcsnap 46 et suivants

Conclusion

Problèmes connus

Voir aussi

(fr) https://pr-nizar.blogspot.fr/2015/04/usb-multiboot-grub-windows-kali-ubuntu.html#up

Basé sur << Article >> par Auteur.