Installer manuellement 0linux
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 de 0linux, voyez la page Téléchargements pour cela.
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/eta/x86_64/<depot>/<paquet>/<paquet>.spack .
Récupérez d'abord les paquets critiques, à savoir :
- a/busybox
- a/base-systeme
- b/glibc
- b/ncurses
- b/readline
- d/bash
- a/sgml-common
- a/0outils
Ou alors synchronisez l'ensemble du dépôt de 0Linux (qui représenteplus de 4,5 Go de paquets - pour 0Linux eta début 2014)
Créer une partition pour 0linux
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
Monter les systèmes de fichiers virtuels
Bien qu'optionnel, monter les systèmes de fichiers virtuels de l'hôte (tmpfs, proc, sys, etc.) est chaudement recommandé car cela va permettre aux scripts de post-installation de chaque paquet d'accéder aux périphériques spéciaux de l'hôte comme /dev/null
.
On monte donc avec l'option –bind
de mount
qui va permettre de monter à un autre emplacement un système de fichiers déjà monté ailleurs. Le contenu est ainsi synchronisé à 2 emplacement différents. /run
est facultatif. Le système de fichiers le plus important reste /dev
:
mkdir -p /mon_0linux/{dev,proc,run,sys} mount --bind /dev /mon_0linux/dev mount --bind /proc /mon_0linux/proc mount --bind /sys /mon_0linux/sys mount --bind /run /mon_0linux/run
On fera bien attention à démonter ces systèmes de fichiers une fois qu'on aura terminé.
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.
Si vous êtes sur le système autonome de 0linux, vous disposez déjà de spackadd
, ignorez cette section. Sinon, récupérons les sources de Spack sur le site du développeur http://requiescant.tuxfamily.org/, par exemple :
wget http://requiescant.tuxfamily.org/files/spack-3.10.tar.gz tar xf spack-3.10.tar.gz cd spack-3.10
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
. C'est ce qu'on va considérer ici. Sinon, ajoutez le chemin du script spackadd
dans chaque appel.
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
lib64
et /sbin
:
spackadd --root=/mon_0linux /home/moi/0linux/paquets/a/busybox-*.spack spackadd --root=/mon_0linux /home/moi/0linux/paquets/a/base-systeme-*.spack spackadd --root=/mon_0linux /home/moi/0linux/paquets/b/glibc-*.spack spackadd --root=/mon_0linux /home/moi/0linux/paquets/b/readline-*.spack spackadd --root=/mon_0linux /home/moi/0linux/paquets/b/ncurses-*.spack spackadd --root=/mon_0linux /home/moi/0linux/paquets/d/bash-*.spack
Installons tous les paquets de z/base-abonnement
, ils figurent dans le fichier .dep
(les 6 paquets déjà installés afficheront une erreur qui sera ignorée) :
for f in $(cat base-abonnement-x-x86_64-1.dep); do spackadd --root=/mon_0linux $(find /home/moi/0linux/paquets -type f -name "${f}*.spack") done
On a désormais un système minimal mais complet, isolé dans /mon_0linux
.
Vous pouvez également passer par 0g
en lui passant la variable ROOT :
ROOT=/mon_0linux 0g busybox base-systeme glibc etc.
Puis installer base-abonnement
, par exemple.
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/0linux/locale
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 ! On peut aussi appeler le script 0locale une fois dans le chroot (voir plus bas). Exemple pour les français de France :
- locale
LANG="fr_FR.UTF-8" LC_ALL="fr_FR.UTF-8"
Renseignons une police ainsi qu'une disposition de clavier dans /mon_0linux/etc/0linux/clavier
et /mon_0linux/etc/0linux/police
. Personnellement, je recommande une police « latin-9w
» avec une taille entre 12 et 16 pixels, avec une préférence pour 16. On peut aussi appeler le script 0clavier une fois dans le chroot (voir plus bas).
- clavier
CLAVIER="fr-latin9"
Et pour la police (On peut aussi appeler le script 0police une fois dans le chroot (voir plus bas).) :
- police
POLICE="lat-9w-16"
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
On peut auss appeler le script 0horloge une fois dans le chroot (voir plus bas).
Le réseau a besoin d'une configuration basique dans le fichier /mon_0linux/etc/0linux/reseau
. Créez-le simplement avec un :
touch /mon_0linux/etc/0linux/reseau
…ou bien appelez le script 0reseau une fois dans le chroot (voir plus bas).
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 :
(Vous avez peut-être déjà monté ces systèmes de fichiers plus haut dans cette page, dans ce cas ignorez cette étape).
mount --bind /dev /mon_0linux/dev mount --bind /proc /mon_0linux/proc mount --bind /run /mon_0linux/run mount --bind /sys /mon_0linux/sys
On peut ensuite passer sur un système 0linux « pleinement » fonctionnel :
chroot /mon_0linux
On utilisera de préférence 0g
pour installer des paquets ou des abonnements. 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) :
umount /mon_0linux/dev umount /mon_0linux/proc umount /mon_0linux/proc umount /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.x.x lrwxrwxrwx 1 root root 11 11 mai 11:37 vmlinuz -> noyau-3.x.x
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. SI vosu utilisez d emultiples systèmes d'exploitations Linux, dans le doute, choisissez plutôt le noyau lui-même, nommé (ici) noyau-3.8.1
. Utilisez le lien vmlinuz
permet de profiter de chaque mise à niveau du noyau de 0Linux sans avoir à reconfigurer quoi que ce soit. Le noyau de 0linux ne nécessite aucun « initrd », le maximum d'options étant déjà activées ou compilées en tant 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
Installer des dépôts
Voyez man 0g
ou bien Outils de 0linux : 0g afin d'installer des logiciels supplémentaires, notamment un environnement graphique
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 commande en tant que root
vous permettra de configurer également un gestionnaire 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