Installer Gentoo Linux simplement

From Ultrabug's Wiki

Revision as of 14:26, 11 December 2013 by Ultrabug (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

Contents

Avant propos

Ok, le titre peut faire sourire, mais je vous assure qu'installer Gentoo à la main, c'est facile !

J'ai repris cet article de mon boulot et l'ai remanié en version plus officielle.

Prérequis

Le principe de cette méthode repose sur le fait que vous ayez un autre PC via lequel vous ferez l'installation par ssh.

Le téléchargement d'appli, la lecture de cet article et autres copier/coller en seront très simplifiés !

Principe :

  • Booter le PC à installer sur un LiveCD
  • Faire marcher le réseau sur le PC à installer
  • Démarrer le service SSH
  • Se connecter depuis un autre PC via SSH et tout faire depuis votre station
  • Pour gagner en efficacité, vous pouvez même ouvrir plusieurs consoles et taper les commandes en parrallèle

Préparation de la machine à installer

Tout d'abord bootez sur un liveCD Gentoo.

  • Passer le clavier en azerty :
Console:
# loadkeys fr


Connexion au réseau via DHCP

  • Pour connaitre l'adresse MAC et l'adresse IP (si la machine en a déjà une) :
Console:
# ifconfig


  • Si besoin (pas d'IP), réinitialiser la connexion reseau :
Console:
# dhcpcd eth0


  • Tester la connexion internet :
Console:
# ping -c 3 google.fr


Connexion au réseau par IP fixe

  • Configurer l'IP fixe :
Console:
# killall dhcpcd                (Fermer le service dhcp)
# ifconfig eth0 ip_machine/24
# /etc/resolv.conf


  • Editer le fichier de configuration des DNS :
Console:
# /etc/resolv.conf


  • Définir la passerelle par défaut :
Console:
# route add default gw 192.168.0.xx


  • Tester la connexion internet :
Console:
# ping -c 3 google.fr


Préparation de la connexion ssh

Sur la machine locale

  • Donner un mot de passe root au live CD et activer la connexion ssh :
Console:
# passwd
# /etc/init.d/sshd start


Sur la machine distante

  • Se connecter en ssh à la machine et se positionner dans le dossier /mnt/gentoo:
Console:
# ssh root@Ip_machine
# cd /mnt/gentoo


Important: A partir de maintenant toutes les commandes seront réalisées à distance.


Partitionnement

Plan de partitionnement standard pour un disque de 100Go :

  • Partition boot : 512Mo
  • Partition swap : Taille de la ram
  • Partition principale : Reste du disque
  • Utilitaire de gestion de partitions :
Console:
# cfdisk /dev/sda


Commandes à effectuer pour créer notre plan de partitionnement standard :

  • Selectionner l'espace vide (Free space) à l'aide des flèches haut bas (supprimer les partition existantes dans le cas d'un formatage sur un pc contenant déjà un OS)
  • Selectionner New pour créer une nouvelle partition
  • Selectionner Primary
  • Définir la taille de la partition
  • Séléctionner Beginning pour positionner la partition dans l'espace vide juste dérrière la partition existante (si partition il existe)
  • Réitérer la meme opération pour créer les 2 autres partition puis rendre la partition boot bootable et modifier le type de la partition swap à l'aide de la commande Type en Linux Swap / Solaris (82).
  • Enfin écrire le système de partition qui vient d'etre programmer à l'aide de Write.
  • Formatage des partitions :
Console:
# mkfs.ext2 /dev/sda1
# mkfs.ext4 /dev/sda3


  • Initialisation et activation de la partition swap :
Console:
# mkswap /dev/sda2
# swapon /dev/sda2


  • Montage des partitions :
Console:
# mount /dev/sda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda1 /mnt/gentoo/boot


  • Afficher et régler l'heure (UTC : londres, réglage du fuseau horaire plus tard) :
Console:
# date
# date MMJJhhmmAAAA


Installer les fichiers d'installation de gentoo

Stage 3

Console:
# cd /mnt/gentoo
# wget lien_vers_votre_stage3
# tar xvjpf stage3-*.tar.bz2


Quelques explications des options de décompression :

  • x : extraire
  • v : verbeux (Afficher noms des fichiers en cours d'extraction)
  • j : décompresser avec bzip2
  • p : préserver les premissions
  • f : désarchive fichier d'archive

Portage

  • Télécharger et extraire l'arbre de portage :
Console:
# wget ftp://mirror.ovh.net/gentoo-distfiles/snapshots/portage-latest.tar.bz2
# tar -xvjf portage-latest.tar.bz2 -C /mnt/gentoo/usr


Installer le système de base de gentoo

  • Copier les informations DNS :
Console:
# cp -L /etc/resolv.conf /mnt/gentoo/etc/


  • Monter les systèmes de fichier proc et dev :
Console:
# mount -t proc none /mnt/gentoo/proc && mount -o bind /dev /mnt/gentoo/dev 


  • Changer l'environement du live CD vers l'environnement final. Cela revient à ramener la racine sur /mnt/gentoo :
Console:
# chroot /mnt/gentoo /bin/bash


  • Mise à jour des variables d'environnement :
Console:
# env-update && source /etc/profile


  • Ajout visuel de l'environnement chroot :
Console:
# export PS1="(chroot) $PS1"


  • Configurer la variable USE :
Console:
# nano -w /etc/portage/make.conf

Explications :
La variable USE sert à activer la prise en charge de certaines fonctionnalités ou non dans chaque paquet. Si vous voulez appliquer certaines fonctionnalités à tous les paquets il faut le faire dans le make.conf
Voici un exemple de make.conf :

Config File: make.conf
CFLAGS="-O2 -pipe -march=nocona"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu"

USE="mmx sse sse2 -ipv6"

MAKEOPTS="-j3"

INPUT_DEVICES="evdev keyboard mouse synaptics"
VIDEO_CARDS="intel nvidia vesa"

EMERGE_DEFAULT_OPTS="--keep-going=y"

Quand le nom de la variable est précédé d'un "-", cela veut dire que l'on désactive la prise en charge de cette fonctionnalité. Cela évite entre autre que tous les paquets soit dans cette exemple compilé avec la prise en charge gnome et KDE puisque on n'utilise pas gnome. Il existe une multitude de paramètres USE disponibles ici, à adapter en fonction de ses besoins.

  • Pour que votre système supporte certains encodages, il faut lui spécifier ses locales :
Console:
# nano -w /etc/locale.gen
Config File: locale.gen
en_US ISO-8859-1
en_US.UTF-8 UTF-8
fr_FR ISO-8859-1
fr_FR@euro ISO-8859-15
fr_FR.UTF-8 UTF-8


  • Créer les locales que l'on vient de définir
Console:
# locale-gen


  • Enfin, pour choisir les locales, langues et encodage par défaut, créer le fichier /etc/env.d/02locale :
Config File: 02locale
LANG="fr_FR.UTF-8"
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=""


Configurer le noyau

  • Copier le fuseau horaire :
Console:
# cp /usr/share/zoneinfo/Europe/Paris /etc/localtime


  • Installer les sources du noyau et l'utilitaire genkernel :
Console:
# emerge -q gentoo-sources genkernel
Note: Pour l'installation d'un serveur on utilisera : hardened-sources.


  • Copier les fichiers de configuration utilisées par le cd d'installation vers le répertoire qui sera utilisé par genkernel :
Console: exemple pour architecture x86_64 (64bits)
# mkdir /etc/kernels
# zcat /proc/config.gz > /usr/share/genkernel/arch/x86_64/kernel-config


  • Configurer puis compiler les sources du noyau (ne pas mettre --menuconfig si on ne veut pas toucher à la config noyau soi-même) :
Console:
# genkernel all --menuconfig


  • Vérifier les noms de l'image noyau et du fichier initrd :
Console:
# ls /boot/
  • Vous devriez avoir dans votre dossier /boot/ un fichier kernel* et un fichier initramfs*

Configurer le système

  • Configurer l'information relative aux points de montage des partitions :
Console:
# nano -w /etc/fstab


Exemple de configuration standard :

Config File: fstab
/dev/sda1   /boot        ext2       defaults,noatime     1 2
/dev/sda2   none         swap       sw                   0 0
/dev/sda3   /            ext4       noatime              0 1

/dev/cdrom  /mnt/cdrom   auto       noauto,ro            0 0
shm         /dev/shm     tmpfs      nodev,nosuid         0 0


Explications :

  • defaults : monter la partition au démarrage
  • noauto : ne pas monter la partition au démarrage
  • user : permet aux utilisateurs autre que root de monter le système de fichiers
  • noatime : accélérer le démarage en ne consignant pas les temps d'accèes
  • Définir le nom (hostname) du pc :
Console:
# nano -w /etc/conf.d/hostname


  • Définir le nom de domaine (dns_domain_lo) :
Console:
# nano -w /etc/conf.d/net

Utilisation dhcp  :

Config File: net
dns_domain_lo="mondomaine.com"


Utilisation IP fixe :

Config File: net
dns_domain_lo="mondomaine.com"
dns_servers_lo="192.168.0.10 192.168.0.11"
config_eth0="192.168.0.6/24"
routes_eth0="default via 192.168.0.1"


Installer les outils système

  • Installer un système de journalisation des évènements :
Console:
# emerge -q metalog && rc-update add metalog default


  • Installer un planificateur de taches :
Console:
# emerge -q cronie && rc-update add cronie default


  • Installer un client dhcp :
Console:
# emerge -q dhcpcd


  • Installer des outils système :
Console:
# emerge -q gentoolkit portage-utils iproute2


  • Activer le service SSH et le pavé numérique au démarrage :
Console:
# rc-update add sshd default; rc-update add numlock default


  • Définir les informations relatives aux hosts du réseau :
Console:
# nano -w /etc/hosts

Exemple :

Config File: hosts
127.0.0.1       nomPC nomPC.mondomaine.com localhost


  • Définir le mot de passe root :
Console:
# passwd


  • Spécifier le type de clavier utilisé:
Console:
# nano -w /etc/conf.d/keymaps

Clavier azerty :

Config File: keymaps
keymap="fr"


  • Définir le fuseau horaire utilisé :
Console:
# nano -w /etc/conf.d/hwclock

Configuration France :

Config File: hwclock
clock="UTC"


Configurer le chargeur de démarrage

  • Installer grub2 (chargeur de démarrage) :
Console:
# emerge -q grub


  • Installation de grub2 dans le secteur boot :
Console:
# grub2-install /dev/sda


  • Configurer automatiquement grub2 (après genkernel) :
Console:
# grub2-mkconfig -o /boot/grub/grub.cfg


Finaliser l'installation

  • Sortir de l'environnement chroot :
Console:
# exit 


  • Revenir à la racine :
Console:
# cd


  • Supprimer l'archive stage3 :
Console:
# rm /mnt/gentoo/stage3-*


  • Supprimer l'instantanné de portage :
Console:
# rm /mnt/gentoo/portage-latest.*


  • Démonter toutes les partitions :
Console:
# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo


  • Redémarer le système :
Console:
# reboot 


Finalisation après reboot

  • Installer le gestionnaire de temps ntp sur le serveur:
Console:
# emerge -q ntp


  • Démarer le service ntp et l'ajouter au boot
Console:
# /etc/init.d/ntpd start && rc-update add ntpd default


  • Choisir son profile:

Les profiles permettent de mettre certaines variables comme les USE flags par défaut en fonction d'un type d'installation prédéfini. Par exemple, si vous comptez utiliser KDE il est préférable d'utiliser un profile desktop/kde. En cas de doute, laissez par défaut.

Console:
# eselect profile list
Note: Le profile utilisé est indiqué par une étoile
  • Indiquer le numéro du profile désiré
Console:
# eselect profile set <n° du profile>


  • Editer le fichier /etc/dispatch-conf.conf et modifier les lignes suivantes :
Config File: dispatch-conf.conf
replace-wscomments=yes
replace-unmodified=yes


  • Ajouter un utilisateur :
Console:
# useradd -m -g groupe_principal -G users,groupe1,group2,... nom_user


Quelques exemples de groupes important :

  • audio : accès autorisé aux périphériques audio
  • cdrom : accès direct autorisé aux lecteurs optiques
  • portage : permet d'utiliser emerge --pretend
  • plugdev : permet de monter de périphériques à chaud et de les utiliser, par exemple des appareils photos : numériques ou des clés USB
  • video : accès autorisé au matériel de capture vidéo et à l'accélération matérielle
  • wheel : commande su utilisable (utile pour sudo aussi)
  • Modifier le mot de passe de l'utilisateur créé :
Console:
# passwd nom_user


Liens utiles

Personal tools
Navigation