Installation d'une Debian (powerpc) à partir de debootstrap

Logo Debian

Dans cet article, nous allons voir comment installer la distribution Debian à partir de l'utilitaire debootstrap. Pour corser le tout, le partitionnement se fera en LVM.

Les prérequis

  • Un live CD, j'ai choisi Finnix [1]
  • Un ordinateur, (pour cet exercice, ça sera un iBook G4)

Note

[1] C'est beaucoup plus souple, que l'installateur de Debian.

Avant le chroot

On doit changer la disposition du clavier, on peut utiliser azerty ou mac-macbook-fr. Avec ce dernier les touches #@ et >< sont inversées.

# loadkeys azerty 

Il faut également vérifier la date et l'heure.

Le partitionnement

Comme j'utilise une architecture powerpc, on doit utiliser mac-fdisk.

# mac-fdisk /dev/sda

On ré-initialise la table des partitions (et supprime les anciennes) avec la touche i.

Puis on crée la partition de bootstrap, touche b.

Les autres partitions s'obtiennent à l'aide de la touche c (c minuscule).

À la fin, l'ensemble des partitions devraient ressembler à ceci :

Command (? for help): p 
/dev/sda
        #                    type name                  length   base      ( size )  system
/dev/sda1     Apple_partition_map Apple                     63 @ 1         ( 31.5k)  Partition map
/dev/sda2         Apple_Bootstrap bootstrap               1600 @ 64        (800.0k)  NewWorld bootblock
/dev/sda3         Apple_UNIX_SVR2 root                12582912 @ 1664      (  6.0G)  Linux native
/dev/sda4         Apple_UNIX_SVR2 debian             104625664 @ 12584576  ( 49.9G)  Linux native

Block size=512, Number of Blocks=117210240
DeviceType=0x0, DeviceId=0x0

Command (? for help): 

/dev/sda3 correspond à la racine, il s'agit d'une partition classique contrairement à /dev/sda4 [1], qui sera plus tard partagée pour contenir les autres partitions (swap, /usr, et /home).

On peut passer maintenant à création des volumes logiques.

On commence tout d'abord à définir le groupe de volumes, dans mon cas, il s'appellera vg.

# pvcreate /dev/sda4
# vgcreate vg /dev/sda4 

Puis on s'attaque aux volumes logiques (swap, /usr, et /home).

# lvcreate -L 26G -n usr vg
# lvcreate -L 1G -n swap vg
# lvcreate -L 22G -n home vg 

Pour connaître la taille restante à chaque création d'un volume logique, vgdisplay -v.

# vgdisplay -v

  --- Volume group ---
  VG Name               vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               49,89 GiB
  PE Size               4,00 MiB
  Total PE              12771
  Alloc PE / Size       12544 / 49,00 GiB
  Free  PE / Size       227 / 908,00 MiB
  VG UUID               SPr7Al-fSuy-hzIQ-0FW7-LqDp-EdY5-L0n4aZ
   
  --- Logical volume ---
  LV Name                /dev/vg/usr
  VG Name                vg
  LV UUID                FIu2e0-sQ4T-9Xs0-G0st-9JWc-lttG-35M0sN
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                26,00 GiB
  Current LE             6656
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0
   
  --- Logical volume ---
  LV Name                /dev/vg/swap
  VG Name                vg
  LV UUID                gaDsGT-7ixO-JiQ6-5wwc-EpML-dHTE-YZgU3y
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                1,00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:1
   
  --- Logical volume ---
  LV Name                /dev/vg/home
  VG Name                vg
  LV UUID                S5otQi-JHK3-w2lY-3CvK-3Ouj-rnz7-hICLpP
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                22,00 GiB
  Current LE             5632
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:2
   
  --- Physical volumes ---
  PV Name               /dev/sda4     
  PV UUID               veFlfm-ztC3-7UBK-Fnn1-fg1p-QS6B-ZoO0f3
  PV Status             allocatable
  Total PE / Free PE    12771 / 227

Le formatage

Dans cette étape, nous allons mettre en place le système de fichiers (ext4 dans mon cas).

  • swap
# mkswap -L swap /dev/vg/swap
[...]
# swapon /dev/vg/swap 
  • La racine, /
# mkfs.ext4 -L root /dev/sda3
[...]
# tune2fs -c 40 -L root /dev/sda3 
  • /usr
# mkfs.ext4 -L usr /dev/vg/usr
[...]
# tune2fs -c 50 -L usr /dev/vg/usr 
  • /home
# mkfs.ext4 -L home /dev/vg/home
[...]
# tune2fs -c 50 -L home /dev/vg/home 

Montage temporaire du système

On va monter les partitions / et /usr dans le point de montage /mnt du live CD.

# mkdir /mnt/debian
# mount /dev/sda3 /mnt/debian
# mkdir /mnt/debian/usr
# mount /dev/vg/usr /mnt/debian/usr 

Debootstrap

On va maintenant installer un système minimal dans /mnt/debian. Il faut choisir une branche, stable, testing, ou unstable. J'ai opté pour testing.

# debootstrap --arch powerpc testing /mnt/debian http://ftp.fr.debian.org/debian/ 

Configuration part. 1

On peut commencer à configurer notre système.

Nous sommes encore dans la session du live CD, donc je mentionne le chemin complet des fichiers. Si vous faites les modifications dans le chroot, /mnt/debian n'existe pas.

Le réseau

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

Modification des fichiers :

  • /mnt/debian/etc/hostname, contient le nom de l'ordinateur
  • /mnt/debian/etc/hosts
  • /mnt/debian/etc/network/interfaces, pour être connecté automatiquement par DHCP, on rajoute ces lignes :
[...]

auto eth0
iface eth0 inet dhcp 

Le sources.list

On peut rajouter des dépôts, voici le mien (en testing).

deb http://ftp.fr.debian.org/debian testing main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free

## multimedia
deb ftp://ftp.igh.cnrs.fr/pub/debian-multimedia testing main non-free

"aptitude"

J'ai modifié certaines caractéristiques de aptitude, j'ai donc créé le fichier, /mnt/debian/etc/apt/apt.conf.d/00perso.conf. Je me suis inspiré de cette page.

Aptitude::Install-Recommends "false";
Aptitude::Keep-Suggests "false";

Aptitude::CmdLine::Show-Deps "true";
Aptitude::CmdLine::Show-Versions "true";

Note : Les deux premières lignes n'ont pas l'air de bien fonctionné.

On va monter les autres points de montage indispensable.

# mount -t proc none /mnt/debian/proc
# mount -o bind /sys /mnt/debian/sys
# mount -o bind /dev /mnt/debian/dev
# mount -o bind /dev/pts /mnt/debian/dev/pts 

On peut désormais lancer la commande chroot.

Dans le chroot

# chroot /mnt/debian /bin/bash 

Nous sommes maintenant à la racine de notre futur système. On va terminer la configuration.

Mise à jour

Comme nous avons modifié le fichier /etc/apt/sources.list, il rafraîchir la base de données.

chroot # aptitude update 

La mise à jour ne va pas s'effectuée, car il nous manque les clés du dépôt multimédia.

chroot # aptitude search debian-multimedia
p   debian-multimedia-keyring        - GnuPG archive key of the debian-multimedia 
chroot #
chroot # aptitude install install debian-multimedia-keyring
[...]
chroot # aptitude update 

Paquets supplémentaires (facultatif)

 chroot # aptitude install lvm2 less 

lvm2 est indispensable car le disque est partitionné en volume logique.

Francisation

chroot # aptitude install unicode locales 

Pour l'instant les seules locales présentent sont :

chroot # locale -a
C
C.UTF-8
POSIX
chroot # 

Nous allons rajouté le français.

chroot # localedef -c -f UTF-8 -i fr_FR fr_FR.UTF-8
chroot # locale -a
C
C.UTF-8
fr_FR.utf8
POSIX
chroot # 

On va générer le fichier /etc/default/locale

chroot # update-locale LANG=fr_FR.utf8
chroot # source /etc/default/locale 

Les messages sont maintenant traduits en français.

chroot # aptitude install console-setup console-data
[...]
chroot # dpkg-reconfigure console-setup (on choisit UTF8)
chroot # dpkg-reconfigure console-data (on prend les valeurs par défaut) 

Note : Sur mon ordinateur, après un reboot les valeurs définies par console-data ne sont pas gardées en mémoire.

Le fichier /etc/fstab

On va utilisé les UUID.

chroot # blkid > /etc/fstab 

Vous trouverez le mien en annexe. Si vous le parcourez, vous constaterez que le répertoire /tmp est monté en RAM.

On monte les autres partitions, que l'on a défini.

chroot # mount -a 

Installation du noyau

chroot # aptitude search linux-image 

Il faut en choisir un, dans la liste. On peut également rajouter firmware-linux-nonfree.

Installation du chargeur d'amorçage

Comme je suis sur une architecture powerpc, dite de nouvelle génération, il faut installer yaboot.

chroot # aptitude install yaboot
[...]
chroot # yabootconfig 

On répond à la question, et on peut vérifier le contenu du fichier /etc/yaboot.conf.

Taskel

chroot # aptitude install tasksel
[...]
chroot # tasksel 

J'ai pour ma part sélectionné laptop (j'ai eut des erreurs avec desktop).

Configuration de l'utilisateur root

Je définis le shell et un mot de passe.

chroot # chsh -s /bin/bash
chroot # passwd 

Voilà l'installation est terminée, on peut sortir du chroot, démonter les partitions et redémarrer l'ordinateur.

On peut finaliser notre installation, en ajoutant les paquets pour le serveur X, et un gestionnaire de bureau.

Un aperçu du bureau, une fois terminé.

KDE4 sous Debian

Note

[1] Sur les architectures x86, il faut penser à changer le type.