print · rss · source

< Annexe E - Déboguer le noyau avec gdb | TutoOS | Liste des fichiers attachés >


Annexe F - Booter avec Grub2

Contrairement à Grub, Grub2 nécessite une partition (on ne peut utiliser le volume disque "brut").

Pour créer une image de disque avec bximage :

$ bximage
> hd 
> flat
> 10
> c.img

Pour spécifier les caractéristiques physiques du disque (C/H/S) et créer une partition :

$ fdisk c.img
> x
> c 20
> h 16
> s 63
> r
> n, p, 1
> a 1
> w

Il faut ensuite associer le disque et la partition avec les loopback afin de pouvoir les manipuler. L'offset (paramètre -o) en octets est obtenu en multipliant le numéro du secteur où débute la partition par 512. L'exemple ci-dessous illustre le cas où il y a 2 partitions avec une première, de 5 Mo, qui début au secteur 63 :

# losetup /dev/loop0 c.img
# losetup -o 32256 --sizelimit 5644800 /dev/loop1 c.img
# losetup -o 5677056 /dev/loop2 c.img

On crée un système de fichiers ext2 sur la première partition puis on la monte :

# mke2fs -O ^resize_inode /dev/loop1
# mount -t ext2 /dev/loop1 /mnt/virtual

L'option -O ^resize_inode permet de simplifier la structure du système de fichiers en refusant certaines évolutions.

Ensuite, on installe Grub2. Il faut commencer par décrire les volumes disques :

# mkdir -p /mnt/virtual/boot/grub
# cat > /mnt/virtual/boot/grub/device.map << EOF
(hd0) /dev/loop0
(hd0,1) /dev/loop1
(hd0,2) /dev/loop2
EOF

Le fichier suivant décrit comment charger le noyau. Il est possible d'utiliser le standard multiboot ou le nouveau standard multiboot2 :

  
# cat > /mnt/virtual/boot/grub/grub.cfg << EOF
set default=0
set timeout=5
set root=(hd0,1)
menuentry "AdaKernel" {
  multiboot /boot/kernel
  boot
}
EOF
# cp kern/kernel /mnt/virtual/boot
# sudo grub-install --no-floppy --root-directory=/mnt/virtual \
--modules="part_msdos ext2 biosdisk configfile normal multiboot multiboot2" \
/dev/loop0

Et voilà  ! Grub2 est installé. Suite aux mises à jour du noyau, n'oubliez pas d'utiliser la commande sync.


< Annexe E - Déboguer le noyau avec gdb | TutoOS | Liste des fichiers attachés >

print · rss · source
Page last modified on August 07, 2015, at 03:27 PM