Archives pour la catégorie ‘Gentoo’

Gentoo : configuration dual-stack IPv4 / IPv6

burns ~ # more /etc/conf.d/net
config_eth0="10.0.0.13 netmask 255.0.0.0 brd 10.255.255.255
fdfe:cd5e:234c:8277::4/64"

routes_eth0="default gw 10.0.0.1
default via fdfe:cd5e:234c:8277::1"

Gentoo : configuration réseau IPv6

En premier lieu, il faut installer le package iproute2 pour gérer l’adressage et le routage IPv6 grâce à la commande ip :

# emerge sys-apps/iproute2

Enfin la configuration de l’interface réseau (syntaxe pour baselayout-2) :

# more /etc/conf.d/net
config_eth0="192.168.0.1 netmask 255.255.255.0 brd 192.168.0.255
fdcb:9921:3552:afd6::4/64"

routes_eth0="default via 192.168.0.254
default via fdcb:9921:3552:afd6::1"

Gentoo : installation GRUB2 / GPT / RAID1.2 / root-on-LVM

Quelques notes suite à l’installation d’une Gentoo avec un partitionnement GPT, mirroir RAID1 et un rootfs ext4 sur LVM. mdadm utilisant par défaut les métadonnées au format 1.2, l’autodétection kernel ne peut fonctionner (seul le format 0.9 est reconnu). Il est donc nécessaire de créer un initramfs sur mesure pour assembler les périphériques RAID et monter le LVM.

Correction du stage3 :

Le stage3 ne crée pas les périphériques /dev nécessaires au lancement d’udev avec le baselayout-2. Il faut donc effectuer ces commandes avant le montage bind de /dev :

livecd # cd /mnt/gentoo/dev
livecd # mknod --mode=600 console c 5 1
livecd # mknod --mode=666 null c 1 3
livecd # mknod --mode=666 zero c 1 5

Il faut également ajouter le lancement d’udev par openrc :

cd /mnt/gentoo/etc/runlevels/sysinit
ln -s /etc/init.d/udev udev

Configuration kernel :

General setup  --->
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
Device Drivers  --->
Generic Driver Options  --->
[*] Maintain a devtmpfs filesystem to mount at /dev
Device Drivers  --->
[*] Multiple devices driver support (RAID and LVM)  --->
<*>   RAID support
< >     Autodetect RAID arrays during kernel boot
<*>     RAID-1 (mirroring) mode
<*>   Device mapper support
<*>     Snapshot target
File systems  --->
<*> The Extended 4 (ext4) filesystem
[*]   Use ext4 for ext2/ext3 file systems
[*]   Ext4 extended attributes
[*]     Ext4 POSIX Access Control Lists
[*]     Ext4 Security Labels
File systems  --->
Partition Types  --->
[*] Advanced partition selection
[*]   EFI GUID Partition support

Configuration portage :

# more /etc/portage/package.keywords
=sys-boot/grub-9999 **
# more /etc/portage/package.use
sys-apps/busybox static
sys-boot/grub static device-mapper
sys-fs/lvm2 static
sys-fs/mdadm static

Le flag static est à utiliser pour l’ensemble des binaires présents dans l’initramfs.

Création de l’initramfs :

# mkdir /usr/src/initramfs
# cd /usr/src/initramfs
# mkdir -p bin lib dev dev/mapper dev/vc etc mnt/root proc root sbin sys
# cp -a /dev/{null,zero,console,tty,urandom} dev/
# ln -s ../console /usr/src/initramfs/dev/vc/0
# cp /bin/busybox bin/
# cp /sbin/mdadm sbin/
# cp /sbin/lvm.static sbin/lvm

Le fichier de configuration de mdadm est à créer :

# echo "DEVICE /dev/sd??* > /usr/src/initramfs/etc/mdadm.conf
# mdadm --examine --scan >> /usr/src/initramfs/etc/mdadm.conf

A présent le script d’init :

# more /usr/src/initramfs/init
#!/bin/busybox sh

rescue_shell() {
   busybox --install -s
   exec /bin/sh
}

CMDLINE=`cat /proc/cmdline`

mount -t proc none /proc
mount -t sysfs none /sys
mount -t devtmpfs none /dev

mdadm --assemble --scan /dev/md0
mdadm --assemble --scan /dev/md1

lvm vgscan --mknodes
lvm lvchange -aly vg/root
mount -o ro -t ext4 /dev/mapper/vg-root /mnt/root || rescue_shell

umount /sys
umount /proc
umount /dev

exec /bin/busybox switch_root /mnt/root /sbin/init ${CMDLINE}
# chmod +x /usr/src/initramfs/init

Tous les périphériques RAID doivent être assemblés par ce script même s’ils ne sont pas montés. Au niveau LVM, il faut évidemment faire correspondre le nom de votre VG + LV root. Point important, je démonte le /dev sous peine d’avoir des erreurs de permissions d’udev.

L’image est ensuite construite et installée dans /boot :

# mount /boot
# find . -print0 | cpio --null -ov --format=newc | gzip -9 > /boot/initrd-2.6.38-hardened-r6

Configuration GRUB

Le fichier grub.cfg est à régénérer :

# grub-mkconfig -o /boot/grub/grub.cfg

Il faut bien vérifier que l’option initrd est détectée par GRUB :

# more /boot/grub/grub.cfg  |grep initrd
	initrd	/initrd-2.6.38-hardened-r6
	initrd	/initrd-2.6.38-hardened-r6

Si c’est le cas, il ne reste plus qu’à installer GRUB et à rebooter :

# grub-install /dev/sda
# grub-install /dev/sdb
Haut de page