Installer manuellement 0linux
Ce document a certainement besoin de précisions ou d'actualisation, n'hésitez pas à signaler tout problème ou procédure pas assez claire.
0linux est installable manuellement en suivant la méthode qui suit. Cela peut être utile si l'on souhaite installer une version de développement de 0linux, qu'on ne dispose pas de l'installateur ou bien qu'on veuille l'installer depuis une autre distribution de Linux. Réservez-vous une partition confortable pour installer le système ; 20 Go, par exemple. Passez en root
ou utilisez sudo
pour suivre ce document.
L'installateur du système autonome n'étant pas encore prêt, vous pouvez également procéder à l'installation depuis le système autonome (ou LiveCD / LiveUSB) de 0linux, dont l'image est téléchargeable sur les FTP - choisissez la plus récente de préférence : http://ftp.igh.cnrs.fr/pub/os/linux/0linux/iso/. Il faudra alors adapter par endroits les commandes de ce document à votre environnement « live ».
Se procurer les paquets
Récupérez tous les paquets *.spack
de 0linux, c'est-à dire tout le contenu des 3 dépôts principaux base
, opt
et xorg
. On pourra installer des dépôts supplémentaires venant de apps
plus tard grâce à 0g
.
Si vous êtes sur le système autonome 0linux, dhcpcd
est censé avoir établi une connexion (filaire uniquement) à internet. On dispose aussi sur le système autonome de wireless-tools
pour établir une connexion sans-fil manuellement.
On peut facilement récupérer les paquets grâce à rsync
:
mkdir -p /home/moi/0linux/paquets cd /home/moi/0linux/paquets rsync -a rsync://ftp.igh.cnrs.fr/0linux/paquets/x86_64/{base,opt,xorg} .
Créer une partition pour 0linux
0linux n'est pas encore adapté aux disques GPT et aux EFI ! Seules les disques MBR et les BIOS traditionnels sont pris en charge pour le moment.
Si la partition qui va accueillir 0linux n'existe pas, il faudra la créer, par exemple avec :
cfdisk
Notons qu'on doit ajouter le périphérique à la suite de le commande cfdisk
si le disque dur n'est pas le premier sur la machine.
Créons une partition primaire Linux (par défaut) et facultativement une partition swap (type 82) ; on écrit la table de partitions, on confirme et on quitte cfdisk
.
Puis on formate la racine, par exemple pour la partition /dev/sda1
, avec un système de fichiers au choix (ext4 est recommandé) parmi les suivants. La consultation des manuels montre qu'on peut en plus nommer les systèmes de fichiers via une étiquette ou « label », ce qui peut être pratique.
mkfs.ext2 /dev/sda1 # OU mkfs.ext3 -j /dev/sda1 # OU mkfs.ext4 /dev/sda1
On crée le répertoire qui va recevoir notre installation de 0linux. On va considérer qu'on installe 0linux dans le répertoire /mon_0linux
:
mkdir -p /mon_0linux
Et on y monte la partition désirée, ici /dev/sda1
:
mount /dev/sda1 /mon_0linux
Installer le tout dans un coin
On va utiliser l'option –root=
de Spack, le gestionnaire de paquets de 0linux, pour installer les paquets dans une racine différente de /
grâce à la commande spackadd
.
spackadd
est un simple script, inoffensif pour votre hôte. Si votre distribution est un tant soit peu standard, le script devrait se comporter correctement. Au pire, il ne créera rien sur votre machine. Notez que vous aurez besoin de certains logiciels comme cpio
ou xz
, généralement inclus dans les distributions Linux les plus répandues, pour faire fonctionner Spack.
Récupérons les sources de Spack sur le site du développeur http://requiescant.tuxfamily.org/, par exemple pour la version 3.9 :
wget http://requiescant.tuxfamily.org/files/spack-3.9.tar.gz tar xf spack-3.8.tar.gz cd spack-3.8
Nous n'avons besoin que du script nommé spackadd
. Rendons-le donc exécutable :
chmod +x spackadd
Notez que vous pouvez copier ce script par exemple dans /sbin
sur votre hôte pour faciliter les appels à spackadd
. On considère que vous ne le faites pas et que vous ne changez pas de répertoire.
On commence par installer les paquets critiques de base
. Si on ne les installe pas en premier, certains problèmes peuvent survenir par la suite. Notons que busybox
et base-systeme
sont à installer obligatoirement en premier afin de créer les liens symboliques vitaux /bin
, /lib
et /sbin
:
./spackadd --root=/mon_0linux /home/moi/0linux/paquets/base/busybox-* ./spackadd --root=/mon_0linux /home/moi/0linux/paquets/base/base-systeme-* ./spackadd --root=/mon_0linux /home/moi/0linux/paquets/base/eglibc-* ./spackadd --root=/mon_0linux /home/moi/0linux/paquets/base/readline-* ./spackadd --root=/mon_0linux /home/moi/0linux/paquets/base/ncurses-* ./spackadd --root=/mon_0linux /home/moi/0linux/paquets/base/bash-*
Installons tous les paquets des dépôts principaux de 0linux dans notre partition dédiée grâce à la commande suivante (les 6 paquets déjà installés afficheront une erreur qui sera ignorée :
./spackadd --root=/mon_0linux /home/moi/0linux/paquets/base/*.spack ./spackadd --root=/mon_0linux /home/moi/0linux/paquets/opt/*.spack ./spackadd --root=/mon_0linux /home/moi/0linux/paquets/xorg/*.spack
On a désormais un système complet isolé dans /mon_0linux
.
Paramétrer les montages
Écrivons ensuite un fichier /mon_0linux/etc/fstab
correct afin de monter les partitions racine et swap au minimum, en plus des 3 lignes obligatoires sur les systèmes de fichiers virtuels. Au final, on devrait avoir un fichier fstab
ressemblant à celui-ci :
- fstab
# Système de fichiers spéciaux obligatoires: devpts /dev/pts devpts gid=5,mode=620 0 0 proc /proc proc defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 # Racine et partition d'échange « swap » : /dev/sda1 / ext4 defaults 1 1 # Notre racine système /dev/sda2 swap swap defaults 0 0 # Notre partition d'échange « swap » # Partie facultative à adapter selon la configuration : # Montages Linux : /dev/sda3 /home ext4 defaults 1 2 # Exemple de partition séparée pour /home /dev/sda6 /sauvegarde reiserfs defaults 1 2 # Exemple de partition de sauvegarde # Autres montages : /dev/sda5 /windoz ntfs-3g umask=000 1 0 # Exemple de partition NTFS montée en lecture-écriture pour tous
Configurer le système
Renseignons notre langue dans /mon_0linux/etc/locale.conf
en renseignant $LANG et $LC_ALL. Utilisez systématiquement une « locale » UTF-8 si vous voulez éviter de GROSSES surprises : tous les fichiers sont commentés en français et rédigés en UTF-8, donc gare ! Exemple pour les français de France :
- locale.conf
# Localisation et langue du système. Ce fichier est renseigné d'ordinaire via # le programme '0locale'. # La liste des « locales » supportées sur ce système sont disponibles via la commande : # locale -a LANG="fr_FR.UTF-8" LC_ALL="fr_FR.UTF-8"
Renseignons une police ainsi qu'une disposition de clavier dans /mon_0linux/etc/vconsole.conf
. Personnellement, je recommande une police « latin-9w
» avec une taille entre 12 et 16 pixels, avec une préférence pour 16 :
- vconsole.conf
FONT="lat-9w-16" KEYMAP="fr-latin9.map"
Les claviers disponibles se trouvent dans le répertoire /mon_0linux/lib/kbd/keymaps/i386
ou /mon_0/usr/share/kbd/keymaps/i386
de la distribution (l'un pointant sur l'autre).
On peut aussi paramétrer l'horloge système/fuseau horaire en créant un lien /etc/localtime → ../usr/share/zoneinfo/Europe/Paris
dans /mon_0linux
.
Configurer
Pour passer sur le nouveau système, par exemple pour créer un utilisateur avec 0nouvel_utilisateur
ou bien, de manière plus conventionnelle, avec useradd
et plus généralement configurer le système fraîchement installé, vous pouvez utiliser chroot
. Il convient de s'assurer que les systèmes de fichiers virtuels soient aussi montés sur cette nouvelle racine, notamment, /dev
, /proc
et /sys
. On va pour cela simplement utiliser l'option mount –bind
pour monter les systèmes de fichiers déjà existants de l'hôte sur la nouvelle racine :
mount --bind /dev /mon_0linux/dev mount --bind /proc /mon_0linux/proc mount --bind /sys /mon_0linux/sys
On peut ensuite passer sur un système 0linux « pleinement » fonctionnel :
chroot /mon_0linux
On quittera le nouveau système avec un simple :
exit
Il faudra bien penser à démonter ensuite les systèmes de fichiers virtuels pour éviter tout blocage sur l'hôte (un système de fichiers en utilisation ne peut être démonté proprement) :
mount --bind /dev /mon_0linux/dev mount --bind /proc /mon_0linux/proc mount --bind /sys /mon_0linux/sys
Rendre amorçable
Paramétrez ensuite votre chargeur d'amorçage (GRUB, LILO, Syslinux…) pour pouvoir amorcer 0linux. Vous pouvez également installer extlinux
, le chargeur d'amorçage unique de 0linux. Le noyau de 0linux se nomme toujours noyau-VERSION
avec un lien générique standard vmlinuz
pointant sur lui. Regardons le contenu de /boot
:
$ ls -l /boot/ -rw-r--r-- 1 root root 5125296 11 mai 11:27 noyau-3.8.1 lrwxrwxrwx 1 root root 11 11 mai 11:37 vmlinuz -> noyau-3.8.1
Vous pouvez donc indiquer l'un ou l'autre des ces fichiers à votre chargeur d'amorçage. Attention cependant si vous avez d'autres distributions Linux installées, le lien vmlinuz
étant standard, il se peut que vous ayez aussi ce lien, mais pointant vers un autre noyau. Dans le doute, choisissez plutôt le noyau lui-même, nommé (ici) noyau-3.8.1
. Le noyau de 0linux ne nécessite aucun « initrd », le maximum d'options étant déjà activées ou compilées entant que modules.
Voyez la page Amorçage pour en savoir plus sur les méthodes d'amorçage.
N'oublions pas de démonter les volumes avant de redémarrer :
umount /mon_0linux reboot
Démarrage sous X
Définissez un bureau par défaut ainsi qu'un gestionnaire de connexion graphique grâce à la commande 0bureau
, si vous avez installé certains dépôts comme enlightenment
, kde
ou xfce
. Il faut lancer cette commande pour chaque utilisateur créé. Pour cela connectez-vous en tant qu'utilisateur et lancez simplement 0bureau
. Lancer cette command een tant que root
vous permetttra de configurer également un gesitonnaire de connexion graphique par défaut (KDM
; Slim
, etc.).
Le clavier sous X se configure dans /etc/X11/xorg.conf.d/90-keyboard.conf
; voyez donc la doc, ce fichier ou bien notre ami Google. Par exemple, j'utilise un clavier français étendu. J'ai donc ces lignes :
- 90-keyboard.conf
# Configuration par défaut du clavier pour X : Section "InputClass" Driver "evdev" Identifier "evdev keyboard catchall" MatchIsKeyboard "on" MatchDevicePath "/dev/input/event*" # Français étendu : Option "xkb_layout" "fr-latin9" # Variante OSS permettant certains caractères avec ALTGR : Option "xkb_variant" "oss" Option "XkbOptions" "terminate:ctrl_alt_bksp" EndSection
Le pilote graphique à charger est normalement deviné par Xorg. En cas de problème, voyez le fichier /etc/X11/xorg.conf.d/graphique.conf
.
Discussion
Il faudrait ajouter en préliminaire qu'il faut que sut le système hôte /bin/sh doit pointer vers bash et pas dash par ex
base-systeme
a été corrigé pour fonctionner avecdash
et les autres shells.remplacer le rsync par un wget par ex…
la version de spack dispo est la 3.9
Ah en effet, merci, je le corrige