Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Créer une partition avec GRUB2 contenant les cd d'installation et des isos

1. Pré-requis

1.1. Démarrage en boucle (loop)

GRUB peut lire à partir d'une image (que ce soit un CD ou un disque dur) stockée sur l'un de ses stockages accessibles (voir la commande loopback).

Cependant, l'OS lui-même devrait pouvoir trouver sa racine.

Cela implique généralement l'exécution d'un programme dans l'espace utilisateur en cours avant la découverte de la racine réelle.

Pour cela, GRUB charge une petite image spécialement faite et la passe au noyau en tant que disque virtuel.

C'est réalisé par les commandes kfreebsd_module, knetbsd_module_elf, kopenbsd_ramdisk, initrd (voir initrd), initrd16 (voir initrd), multiboot_module, multiboot2_module ou xnu_ramdisk selon le chargeur.

Notez que pour knetbsd, l'image doit être placée dans miniroot.kmod et le miniroot.kmod entier doit être chargé.

Dans kopenbsd, c'est désactivé par défaut.

En outre, le comportement du disque virtuel initial dépend des options de la ligne de commande.

Plusieurs distributeurs fournissent l'image à cet effet ou l'intègrent à leur disque mémoire standard et l'activent par une option spéciale. Consultez votre manuel de distribution et de votre noyau pour plus de détails.

D'autres chargeurs tels que appleloader, chainloader (BIOS, EFI, coreboot), freedos, ntldr et plan9 ne permettent pas de charger le disque virtuel initial et ne supportent pas le ramdisk initial de cette ; autrement dit ils ne sont pas amorçable de cette façon.

Envisager d'autres méthodes de démarrage comme la copie de tous les fichiers de l'image sur une partition réelle.

Consultez la documentation de votre système d'exploitation pour plus de détails

1.2. Créer un dossier unique

On créera un dossier unique pour tous les fichiers 'iso' :

  • créer un dossier isos 1):
    • sur la partition /
    • ou sur une partition de données (dans cet exemple, /dev/sda4, montée sur media/isoroot)
  • changer le propriétaire du dossier pour écrire dedans sans avoir besoin des droits super utilisateur
  • créer un lien symbolique dans le dossier Téléchargements pour y accéder facilement

Pour cela, saisir les commandes suivantes dans le terminal :

$ cd /media/isoroot
sudo mkdir isos
sudo chown $USER:$USER isos
ln -f -s -r -t ~/Téléchargements isos

Désormais, les fichiers iso téléchargés pourront être déplacés dans ce dossier isos depuis le dossier ~/Téléchargements.

1.3. Créer un sous-menu

Pour éviter de devoir lancer la commande

sudo update-grub

Après chaque modification, on créera une bonne fois pour toutes une ligne de menu dans le fichier /etc/grub.d/40_custom une ligne de menu menant vers un fichier de configuration totalement indépendant.

Ce fichier de configuration sera mis au même endroit que les fichiers iso : il est ainsi facile à modifier et ne nécessite pas les droits super utilisateur.

On configure donc le fichier /etc/grub.d/40_custom ainsi :

/etc/grub.d/40_custom
menuentry "   " {
    true	# true permet d'afficher la ligne de titre (ici une ligne vide pour aérer le menu) sans rien faire d'autre
}
menuentry "===>> Distributions lancées depuis leur fichier iso" {
    set root=(hd0,4)
    configfile /isos/00_isoboot.cfg
   }

La commande

    set root=(hd0,4)

définit /dev/sda4 comme la partition où se trouve le dossier isos

Pour activer ce changement, il faut lancer la commande :

$ sudo update-grub

Le menu grub aura ainsi une ligne qui mène sur une page dédiée aux lancements de fichiers iso.

2. Première étape : partitionner

Passer en mode super-utilisateur et lancer parted:

$ sudo su

# parted
GNU Parted 3.2
Utilisation de /dev/sda
Bievenue sur GNU Parted ! Tapez 'help' pour voir la liste des commandes.
(parted) 

Repérer le disque sur lequel sera placée la partition des iso :

(parted) print all free                                                   
Modèle: ATA HGST HTS541010A9 (scsi)
Disque /dev/sda : 1000GB
Taille des secteurs (logiques/physiques): 512B/4096B
Table de partitions : msdos
Disk Flags: 

Numéro  Début   Fin     Taille  Type     Système de fichiers  Fanions
        32,3kB  1049kB  1016kB           Espace libre
 1      1049kB  53,7GB  53,7GB  primary  ext4                 démarrage
 2      53,7GB  57,9GB  4193MB  primary  linux-swap(v1)
 3      57,9GB  948GB   891GB   primary  ext4
        948GB   1000GB  51,7GB           Espace libre


Modèle: ATA ST1000LM024 HN-M (scsi)
Disque /dev/sdb : 1000GB
(...)
(parted) quit

Nous allons créer notre partition d'installation dans la cinquantaine de Go libres à la fin du disque **/dev/sda**. Créons donc une partition **/dev/sda4** :

(parted) select /dev/sda
(parted) mkpart primary NTFS 948GB 1000GB

Lancer le partitionnement de /dev/sda :

# fdisk /dev/sda

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

Dans fdisk :

Commande (m pour l'aide) : p
Disque /dev/sda : 931,5 GiB, 1000204886016 octets, 1953525168 secteurs
Unités : sectors of 1 * 512 = 512 octets
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x0002de35

Périphérique Amorçage     Start        Fin   Secteurs   Size Id Type
/dev/sda1    *             2048  104859647  104857600    50G 83 Linux
/dev/sda2             104859648  113049599    8189952   3,9G 82 partition d'écha
/dev/sda3             113049600 1852495871 1739446272 829,4G 83 Linux

Commande (m pour l'aide) : n
Partition type
   p   primary (3 primary, 0 extended, 1 free)
   e   extended (container for logical partitions)
Select (default e): p

Selected partition 4
Premier secteur (1852495872-1953525167, 1852495872 par défaut) : 
Last sector, +sectors or +size{K,M,G,T,P} (1852495872-1953525167, 1953525167 par défaut) : 

Created a new partition 4 of type 'Linux' and of size 48,2 GiB.

Commande (m pour l'aide) : t
Numéro de partition (1-4, 4 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.
Re-reading the partition table failed.: Périphérique ou ressource occupé

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

# 

Redémarrer pour utiliser la nouvelle table de partitions. Après le redémarrage, revenir en root :

$ sudo su

et vérifier le partitionnement avec parted :

# parted /dev/sda
GNU Parted 3.2
Utilisation de /dev/sda
Bievenue sur GNU Parted ! Tapez 'help' pour voir la liste des commandes.
(parted) 

Dans parted :

(parted) print free                                                       
Modèle: ATA HGST HTS541010A9 (scsi)
Disque /dev/sda : 1000GB
Taille des secteurs (logiques/physiques): 512B/4096B
Table de partitions : msdos
Disk Flags: 

Numéro  Début   Fin     Taille  Type     Système de fichiers  Fanions
        32,3kB  1049kB  1016kB           Espace libre
 1      1049kB  53,7GB  53,7GB  primary  ext4                 démarrage
 2      53,7GB  57,9GB  4193MB  primary  linux-swap(v1)
 3      57,9GB  948GB   891GB   primary  ext4
 4      948GB   1000GB  51,7GB  primary  ntfs                 caché, lba

(parted) quit

Revenir en mode user :

# exit
$ 

Repérer l'UUID de /dev/sd4 :

$ sudo blkid
(...)
/dev/sda4: LABEL="ISOS" UUID="5BC9-AE1A" TYPE="vfat" PARTUUID="0002de35-04"

Éditer avec les droits d'administration le fichier /etc/fstab pour ajouter une ligne :

/etc/fstab
(...)
#	/dev/sda4 : ISOS (/isos)
UUID=5BC9-AE1A	/isos	vfat	defaults,user,uid=1000,gid=100	0	0

Démonter la partition, la formater, créer le répertoire /isos, changer son propriétaire pour y accéder sans droits de super-utilisateur et créer un lien symbolique dans le dossier Téléchargements pour y accéder facilement :

$ sudo umount /dev/sda4
umount: /dev/sda4: not mounted
$ mkfs.vfat -F 32 -n ISOS /dev/sda4
mkfs.fat 3.0.28 (2015-05-16)
$ cd /
$ sudo mkdir /isos
$ sudo mkdir /media/winsource
$ sudo chown $USER:$USER /isos
$ sudo ln -f -s -r -t ~/Téléchargements /isos

Repérer l'UUID de /dev/sd4 :

$ sudo blkid
(...)
/dev/sda4: LABEL="ISOS" UUID="5BC9-AE1A" TYPE="vfat" PARTUUID="0002de35-04"

Éditer avec les droits d'administration le fichier /etc/fstab pour ajouter une ligne :

/etc/fstab
(...)
#	/dev/sda4 : ISOS (/isos)
UUID=5BC9-AE1A	/isos	vfat	defaults,user,uid=1000,gid=100	0	0

Monter cette partition :

$ sudo mount /isos

3. Autres étapes

Supposons que les images soient dans le répertoire /isos-images et qu'il contienne :

  • ubuntu-16.04.3-desktop-amd64.iso
  • boot-repair-disk-64bit.iso
  • Windows10-32-64.iso
  • medicat.17.10.02.stable-004.iso

Aller dans ce répertoire des fichiers isos :

$ cd /isos-images

Monter l'iso windows en loop :

$ sudo mount -o loop -t udf /isos-images/Windows10-32-64.iso /media/winsource/
mount: /dev/loop0 is write-protected, mounting read-only
nicolas@chateau:~$

Copier les isos et le contenu de l'iso windows sur ISOS :

4. Conclusion

5. Problèmes connus

6. Voir aussi


Basé sur « Article » par Auteur.

1)
clic droit Ouvrir un terminal ici à l'endroit choisi dans le gestionnaire de fichiers

Navigation

éditer cette page

QR Code
QR Code Créer une partition avec GRUB2 contenant les cd d'installation et des isos (generated for current page)