Install KIMSUFI

De BigD's wiki
Aller à : navigation, rechercher

Préparation du disque

Pour cette partie, les programmes nécessaires sont les suivants :

  • cfdisk pour le partionnement du disque ;
  • mkfs pour formater les partitions ;
  • lvm2 pour créer des partitions LVM ;
  • cryptsetup pour le chiffrement de la partition principale ;

Partitionnement du disque

On commence par créer deux partitions :

  • une partition /boot de 250 Mo grand maximum (elle sera montée en ro) ;
  • une partition de l'intégralité de l'espace disque restant qui sera chiffrée et qui contiendra le(s) Volume(s) Group(s) ;
# cfdisk /dev/sdb
    Name          Flags       Part Type   FS Type            [Label]          Size (MB)   
 ---------------------------------------------------------------------------------------- 
    sdb1          Boot         Primary    Linux                                  246,76   
    sdb2                       Primary    crypto_LUKS                           8096,42  *

Formatage des partitions

On formate la partion /boot en ext2 pour des raisons de rétro-compatibilité et parce que ça suffit :

# mkfs.ext2 /dev/sdb1

Ensuite, on formate et on chiffre la seconde partition avec cryptsetup :

# cryptsetyp --verify-passphrase luksFormat /dev/sdb2
WARNING!
========
Cette action écrasera définitivement les données sur /dev/sdb2.

Are you sure? (Type uppercase yes): YES
Saisissez la phrase secrète LUKS : 
Verify passphrase:

Après, on monte la partition chiffrée :

# cryptsetup luksOpen /dev/sdb2 rootfs

La partition chiffrée est disponible, en tant que disque physique, dans /dev/mapper/rootfs. C'est ce "disque physique" qui sera utilisé pour créer les volumes LVM.

Création des volumes

Pour créer un volume group, on commence par initialiser le volume physique :

# pvcreate /dev/mapper/rootf
  Writing physical volume data to disk "/dev/mapper/rootfs"
  Physical volume "/dev/mapper/rootfs" successfully created

Ensuite, on créé un volume group, qu'on appellera modestement VG :

# vgcreate VG /dev/mapper/rootfs
Volume group "VG" successfully created

Une fois le volume group créé, on peut créer les partitions. Bon on peut faire ce que l'on veut mais là, une seule partition sera créée. Il est conseillé aussi de créer une partition swap.

  • Pour la swap :
# lvcreate --size 250M --name swap VG
  Rounding up size to full physical extent 252,00 MiB
  Logical volume "swap" created
# lvcreate --extents 100%FREE --name root VG
Logical volume "home" created

On vérifie que les deux volumes ont bien été créés :

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/VG/swap
  LV Name                swap
  VG Name                VG
  LV UUID                AosNjZ-bYWS-0OYG-7H6F-IMW4-PHSB-0l0902
  LV Write Access        read/write
  LV Creation host, time localhost, 2013-08-09 23:32:06 +0200
  LV Status              available
  # open                 0
  LV Size                252,00 MiB
  Current LE             63
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:1
   
  --- Logical volume ---
  LV Path                /dev/VG/root
  LV Name                home
  VG Name                VG
  LV UUID                0rGvpd-mz4A-wezI-qOPn-MV2r-eIYP-0qFVef
  LV Write Access        read/write
  LV Creation host, time localhost, 2013-08-09 23:32:50 +0200
  LV Status              available
  # open                 0
  LV Size                7,29 GiB
  Current LE             1866
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:2

Formatage des volumes

Maintenant, on peut formater les volumes :

# mkswap /dev/VG/swap
}
Setting up swapspace version 1, size = 258044 KiB
no label, UUID=b086e763-e0cc-43a1-b08e-4cd14592bd2f
# mkfs.xfs /dev/VG/root
meta-data=/dev/VG/root           isize=256    agcount=4, agsize=477696 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=1910784, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
NB: XFS est un système de fichier très performant. Le principal avantage d'utiliser XFS est qu'il est possible d'agrandir le système de fichier à chaud, ce qui est idéal surtout dans le cas de l'utilisation de LVM

Maintenant, les partitions sont prêtes à être montées pour l'installation du système.

Installation du système

Le système d'exploitation installé sera une Gentoo 64bits :).

Montage des partitions

Les partitions créées, il faut les monter pour pouvoir installer le système. Voici les lignes à exécuter pour les monter :

# mount /dev/VG/root /mnt
# mkdir /mnt/boot
# mount /dev/sdb1 /mnt/boot/

Téléchargement du stage 3 et du portage

Pour installer Gentoo, la première des étapes consiste à télécharger le stage 3 ...

# links http://www.gentoo.org/main/en/mirrors.xml

Chercher le stage 3 actuel hardened tant qu'à faire :) :

# wget ftp://ftp.free.fr/mirrors/ftp.gentoo.org/releases/amd64/current-stage3/hardened/20130801/stage3-amd64-hardened-20130801.tar.bz2

... puis le portage :

# wget ftp://ftp.free.fr/mirrors/ftp.gentoo.org/snapshots/portage-latest.tar.bz2
NB: Bon ok, on peut récupérer le MD5 et le signé pour vérifier qu'il s'agit du bon portage :).

Décompression des archives

Les archives téléchargées, on les décompresse dans les bons répertoires :

# tar xvpf stage3-amd64-hardened-20130801.tar.bz2 -C /mnt/
# tar xvpf portage-latest.tar.bz2 -C /mnt/usr/

Préparation du chroot

Le serveur de résolution de nom

Il faut fournir au chroot les données sur le serveur de nom :

# cp -L /etc/resolv.conf /mnt/etc/

Les différents montages nécessaires

On monte les différents dossier dans l'environnement du chroot :

# mount -t proc none /mnt/proc
# mount --rbind /sys /mnt/sys
# mount --rbind /dev /mnt/dev

Tout est prêt pour se chrooter.

Chroot dans le futur système

Pour se chrooter, on excécute la commande suivante :

# chroot /mnt /bin/bash

On met à jour l'environnement :

# env-update
# source /etc/profile

Synchronisation de portage

On met à jour le portage :

# emerge --sync --quiet

On sélectionne le profile du serveur :

# eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/13.0
  [2]   default/linux/amd64/13.0/selinux
  [3]   default/linux/amd64/13.0/desktop
  [4]   default/linux/amd64/13.0/desktop/gnome
  [5]   default/linux/amd64/13.0/desktop/kde
  [6]   default/linux/amd64/13.0/developer
  [7]   default/linux/amd64/13.0/no-multilib
  [8]   default/linux/amd64/13.0/x32
  [9]   hardened/linux/amd64 *
  [10]  hardened/linux/amd64/selinux
  [11]  hardened/linux/amd64/no-multilib
  [12]  hardened/linux/amd64/no-multilib/selinux
  [13]  hardened/linux/amd64/x32
  [14]  hardened/linux/uclibc/amd64

Ici, on a choisi du hardened 64bits. Pour changer, il suffit d'exécuter la commande suivante :

# eselect profile set #

Où # est le numéro de la ligne souhaitée.

Installation des informations système

Choix de la zone horaire

On met le serveur sur l'heure de Paris :

# cp /usr/share/zoneinfo/Europe/Paris /etc/localtime

Changement du mot de passe root

Il faut y penser maintenant, après il sera trop tard :)

# passwd

Le make.conf

Il faut éditer le fichier /etc/portage/make.conf afin d'optimiser la compilation des sources. Ici, il faut lui ajouter l'option, si elle n'est pas déjà présente, lui indiquant le nombre de threads plus un dont le compilateur dispose pour compiler les sources.

Fichier: /etc/portage/make.conf
MAKEOPTS="-j5"
NB: Ici, le processeur fournit 4 threads.

Installation du noyau

L'étape essentielle, l'installation du noyau ! Il va falloir choisir les bonnes options sinon, ça ne fonctionnera jamais !!

Téléchargement des sources

Pour les sources, plusieurs solutions sont possibles :

  • Installer le package gentoo-sources ou hardened-sources qui fournit un noyau modifié optimisé pour Gentoo ;
  • Télécharger l'archive sur www.kernel.org ;
  • Télécharger les sources du noyau à partir de git ;

Pour cette installation, étant donné que le profile sélectionné est hardened, autant prendre le noyau qui va avec.

# emerge -av --quiet hardened-sources