Ubuntu casper
Ubuntu Casper est le nom du répertoire contenant la partie du système de fichiers en lecture seule.
Démarrage du live CD dans ses grandes lignes[modifier]
Principales phases du démarrage[modifier]
- Si demandé par iso-scan/filename=/..., recherche d'une image .iso de CD-ROM dont le nom suit ce signe = voire cette barre oblique.
- Recherche du dossier /casper contenant la partie read-only du système de fichiers.
- Empilement read-only, par aufs, des différents systèmes de fichiers représentés par les fichiers *.squashfs ou *.ext2 du dossier /casper, ainsi que les répertoires *.dir de ce dossier.
- Rajout au-dessus de cet empilement d'une couche lecture-écriture appelée cow.
- En général cette couche est en mémoire volatile, et donc tous les changements seront perdus à l'arrêt du système.
- Cependant, il est possible de garder tout ou partie des changements grâce au mode persistent
Principales phases du démarrage persistant[modifier]
Ce type de démarrage est déclenché par le bootparam persistent. Il offre plusieurs possibilités de mémorisation permanente:
- Recherche sur les disques d'une partition ou d'un fichier image de partition à utiliser pour la partie cow de l'empilement donnant.
- Recherche sur les disques d'une partition ou d'un fichier image de partition à utiliser comme partition /home lecture-écriture.
- Utilisation de snapshots
Utilisation des instantanés (snapshots)[modifier]
AVERTISSEMENT: ce dispositif est considéré comme expérimental et effectivement de nombreux bug l'empêchent de fonctionner sans modification.
Les snapshots sont des systèmes de fichiers ou des images de système de fichiers qui sont recopiés au démarrage. On peut prendre un instantané à tout moment par la commande casper-snapshot. À l'arrêt du système les snaphots sont actualisés.
- Recherche d'un snapshot dont le contenu sera recopié dans la partie cow de l'empilement
- Recherche d'un snapshot dont le contenu sera recopié dans le répertoire /home
- Si ces recopies ont réussi, leur emplacement est mémorisé pour permettre leur réactualisation à l'arrêt du système
Comment se fait le balayage des disques ?[modifier]
- Chaque nouvelle recherche déclenche un balayage des disques. Ce balayage s'arrête au premier succès.
- Pour chaque balayage, toutes les partitions de tous les disques sont examinées, cela comprend les CD-ROM physiques, le CD-ROM virtuel (si l'on a demandé d'utiliser une image .iso et si celle-ci a été trouvée), les disques durs externes USB, et probablement firewire et eSATA.
- Pour la recherche dans les systèmes de fichiers, seul le niveau supérieur est examiné.
- Pour la recherche d'une image .iso de CD-ROM, la recherche a lieu dans tous les systèmes de fichiers ext2, ext3, XFS, JFS, ReiserFS, VFAT, NTFS, et ISO 9660.
- Pour la recherche du dossier /casper, si l'on a demandé d'utiliser une image .iso et si celle-ci a été trouvée, la recherche n'a lieu que dans cette image. Sinon elle se fait dans les systèmes de fichiers vfat, iso9660, ext2, ext3, ext4 et (à vérifier) udf et ntfs.
- Pour la recherche d'un fichier image d'une partition qui sera utilisé en lecture-écriture, seuls les systèmes de fichiers vfat sont considérés.
- Pour les recherches de fichiers snapshot seules les partitions contenant un système de fichier vfat ou ext2, ainsi que les CD-ROM sont examinés. On évite ainsi les systèmes journalisés, car dans le cas où la partition serait en cours d'utilisation par un autre OS en phase d'hibernation: le montage du système de fichiers, même en lecture seule, provoquerait sa mise à jour à partir du journal.
Quel sont les moyens d'intervention de l'utilisateur ?[modifier]
Interventions possibles au moment du démarrage[modifier]
Tous les bootloaders permettent de passer des paramètres au noyau Linux qu'ils démarrent. Dans le cas du LiveCD, pour modifier ces paramètres il faut, après avoir choisi la langue, enfoncer les touches <F6> puis <Esc>.
Casper prend en compte tous les paramètres donnés. Par contre, une fois mis en place l'empilement des systèmes de fichiers et quand le démarrage normal commence, casper passe le contrôle à init en lui fournissant uniquement les paramètres situés après les -- .
Les paramètres définissant la langue et le clavier sont remplis automatiquement par le bootloader présent sur le LiveCD, par contre les paramètres suivants devront être rentrés à la main où dans un fichier de configuration dans le cas où l'on démarre autrement que sur le CD officiel (en USB par exemple):
- showmounts permet de rendre visible l'empilement des systèmes de fichiers.
- noprompt permet d'éviter la demande d'éjection du CD-ROM à l'arrêt du système.
- persistent déclenche, selon les partitions ou les fichiers qui auront été trouvées, l'un des modes de fonctionnement persistent.
- debug permet d'avoir les détails du démarrage enregistrés dans deux fichiers. Le premier est /dev/.initramfs/initramfs.debug, il concerne les phases de démarrage communes à tous les systèmes Ubuntu, et le second /var/log/casper.log concerne les phases propres à casper.
- break permet de marquer un temps d'arrêt (par défaut durant la phase init-premount) pendant lequel une session shell est ouverte permettant d'examiner en détail la situation.
- iso-scan/filename=/monFichierImage.iso permet de demander l'utilisation du fichier /monFichierImage.iso comme s'il s'agissait du CD-ROM d'Ubuntu
- toram lance la recopie en mémoire de l'intégralité du système de fichier. Cette recopie prend un certain temps, mais après, le fonctionnement peut être très rapide et le lecteur de CD-ROM devient disponible pour un autre usage. Pour utiliser ce dispositif, il faut un ordinateur avec suffisamment de RAM, 1 Giga semblant un minimum (à titre d'information, un CD-ROM normal prend à peu près 700 Mégas).
Notez qu'il n'y a pas moyen de demander des recherches personnalisées pour les noms suivants qui sont imposés: casper, casper-rw, home-rw, casper-sn, home-sn, ainsi que pour les suffixes *.squashfs, *.dir, *.ext2, *.cpio.gz. On ne peut pas non plus choisir de borner les recherches à une partition donnée.
- Dans le cas d'une utilisation avancée, il est possible de modifier presque toutes les phases de démarrage sans avoir à recréer un LiveCD personnalisé grâce au paramètre debian-installer/custom-installation=/monDossierDePersonnalisation
Interventions possibles lors de la préparation du démarrage[modifier]
((( à suivre)))
Démarrage du live CD détaillé pas à pas[modifier]
Première phase, commune à tous les modes de démarrage d'Ubuntu[modifier]
- Le noyau Linux démarre le shell script /init qui se trouve sur l'initrd.gz
- Des variables sont valorisées par . /conf/initramfs.conf et . conf/conf.d/*
- Des fonctions d'usage général sont définies par . /scripts/functions
- La /proc/cmdline est analysée pour utiliser tous les paramètres qui y sont donnés. La valeur de boot est essentielle : le paramètre de cette valeur quantifiée sert à définir la variable globale BOOT. Il y a trois valeurs usuelles local, nfs et casper, cette dernière valeur étant celle du LiveCD, le déclenchement du mode LiveCD se fait donc par le paramètre boot=casper donné au noyau Linux par le boot loader.
- depmod -a
- export BOOT
- . /scripts/init-top/* qui décident de faire du swap mémoire s'il y a moins de 512M de RAM et qui fixe le fonctionnement du clavier.
- Exécution de la fonction load_modules qui charge tous les modules dont le nom est dans le fichier /conf/module (une ligne par module: son nom suivi des paramètres de chargement), sauf ceux qui sont passés par le paramètre blacklist= dans la /proc/cmdline
- . /scripts/init-premount/*
- . /scripts/${BOOT} (pour un live CD c'est donc /scripts/casper). C'est ce script qui définit la fonction mountroot chargée de monter le système de fichier racine. Pour un système local, c'est assez simple, mais pour un système Live il y a beaucoup à faire.
- exécution de la fonction mountroot définie par le script précédent
Seconde phase, propre à Ubuntu Live[modifier]
- Des variables sont valorisées par . /etc/casper.conf
- Des fonctions sont définies par . /scripts/casper-helpers
- La /proc/cmdline est examinée. Paramètre essentiel persistent.
- . /scripts/casper-premount/*
Phase casper-premount[modifier]
- Possibilité d'insérer un CD-ROM si l'on a passé le paramètre debian-installer/driver-update=true. Ce CD est utilisé pour recopier dans /tmp/driver-updates des paquets correspondants à l'architecture de la machine.
- Si l'on a passé le paramètre iso-scan/filename=nom_image.iso l'ensemble des disques est examiné pour chercher le premier qui contient à sa racine le fichier nom_image.iso (normalement, c'est une image .iso de CD-ROM)
Phase de personnalisation[modifier]
Si l'on a passé le paramètre debian-installer/custom-installation=nom_de_répertoire l'ensemble des disques est examiné pour chercher le premier qui contient à sa racine le répertoire nom_de_répertoire. Si casper en a trouvé un,
- le contenu de ce répertoire est recopié sous le dossier /custom-installation
- sauf le contenu du sous-répertoire initrd-override qui est recopié à la racine du système de fichiers permettant ainsi d'écraser ceux que l'on souhaite remplacer
- s'il existe un fichier exécutable nommé hooks/casper-premount.sh, il sera exécuté.
Phase de recherche du dossier /casper[modifier]
- L'ensemble des disques est examiné pour chercher le premier qui contient à sa racine le répertoire /casper. Cette recherche commence par nom_image.iso. Il faut que le dossier contienne au moins un fichier se terminant par .squashfs, .ext2, ou .dir.
- Recopie de ce répertoire en mémoire; ou sur un disque si cela a été demandé par le paramètre toram ou todisk
Phase de création de la réunion des systèmes de fichier[modifier]
- Le contenu du dossier /casper est unifié par aufs en mode read-only. L'ordre est le suivant, sur le dessus, tous les dossiers *.dir, puis tous les fichiers *.squashfs puis tout en bas tous les fichiers *.ext2 (ce sont des fichiers image d'un système de fichiers ext2). Dans chaque catégorie l'ordre est alphabétique inverse: les premiers dans l'ordre alphabétique sont les plus en bas de la pile formée par aufs.
- La couche supérieure de l'union est lacture-écriture; elle s'appelle /cow. En général ce sera un système de fichier en mémoire monté en tmpfs auquel sera attribué au plus la moitié de la RAM ...
- ... mais en présence du paramètre de boot persistent, casper cherchera le premier disque dont le système de fichiers portant le label casper-rw. À défaut il cherchera une partition vfat contenant à la racine un fichier casper-rw image d'un système de fichier.
Phase de montage d'une partition /home persistent[modifier]
- En présence du paramètre de boot persistent, casper cherchera le premier disque dont le système de fichiers portant le label home-rw. À défaut il cherchera une partition vfat contenant à la racine un fichier home-rw image d'un système de fichier.
- La première trouvée, s'il y en a une, sera montée en /home.
Phase de recopie des snapshots[modifier]
Les snapshots sont des instantanés des partitions /cow ou /home. Ils permettent donc de restaurer le système de fichiers dans l'état où il était au moment où ils ont été pris.
- Casper cherche un disque contenant à la racine un fichier casper-sn avec pour suffixe .squashfs *.cpio.gz ou *.ext2. Le premier trouvé voit son contenu recopié dans /cow
- Même chose avec home-sn, le premier trouvé est recopié en /home
- Les noms et emplacement trouvés sont mémorisés à la fin du fichier /etc/casper.conf pour permettre la sauvegarde lors de l'extinction du système.
Phase casper-bottom[modifier]
Dernière phase, commune à tous les modes de démarrage d'Ubuntu[modifier]
Création de scripts personnalisés de démarrage du live CD[modifier]
Voir aussi[modifier]
Articles connexes[modifier]
Liens externes[modifier]
- (en) Site officiel Ubuntu
- (en) Ubuntu Casper
Erreur Lua dans Module:Catégorisation_badges à la ligne 170 : attempt to index field 'wikibase' (a nil value).Erreur Lua dans Module:Suivi_des_biographies à la ligne 189 : attempt to index field 'wikibase' (a nil value).
Cet Article wiki "Ubuntu casper" est issu de Wikipedia. La liste de ses auteurs peut être visible dans ses historiques et/ou la page Edithistory:Ubuntu casper.