Live manual Debian Live

# Debian Live Manual

# Personnalisation des comportements pendant l'exécution

552

# 10. Personnalisation des comportements pendant l'exécution

553

Toute la configuration qui est faite pendant l'exécution est faite par live-config. Voici quelques options parmi les plus courantes de live-config qui peuvent intéresser les utilisateurs. Une liste complète de toutes les possibilités peut être trouvée dans la page de manuel de live-config.

554

10.1 Personnalisation de l'utilisateur live

555

Une considération importante est que l'utilisateur live est créé par live-boot au démarrage, non pas par live-build pendant la construction. Cela influence non seulement l'emplacement où les documents relatifs à l'utilisateur live sont introduits dans la construction, tel que discuté dans Live/chroot local includes, mais aussi tous les groupes et autorisations associés à l'utilisateur live.

556

You can specify additional groups that the live user will belong to by using any of the possibilities to configure live-config. For example, to add the live user to the `fuse` group, you can either add the following file in `config/includes.chroot/etc/live/config.conf.d/10-user-setup.conf`:

557

LIVE_USER_DEFAULT_GROUPS="audio cdrom dip floppy video plugdev netdev powerdev scanner bluetooth fuse"

558

ou utiliser `live-config.user-default-groups=audio,cdrom,dip,floppy,video,plugdev,netdev,powerdev,scanner,bluetooth,fuse` comme paramètre d'amorçage.

559

Il est également possible de changer le nom de l'utilisateur par défaut «user» et du mot de passe par défaut «live». Si vous voulez faire cela, vous pouvez le faire facilement comme suit:

560

Pour modifier le nom de l'utilisateur par défaut, vous pouvez simplement l'indiquer dans votre configuration:

561

$ lb config --bootappend-live "boot=live components username=live-user"

562

Une façon possible de changer le mot de passe par défaut est d'utiliser un hook comme décrit dans Hooks pendant le démarrage. Pour ce faire vous pouvez utiliser le hook "passwd" de `/usr/share/doc/live-config/examples/hooks`, ajouter un préfixe correct (par exemple 2000-passwd) et l'ajouter à `config/includes.chroot/lib/live/config/`

563

10.2 Personnalisation des paramètres régionaux et de la langue

564

Au démarrage du système live, la langue est impliquée dans deux étapes:

565

- la génération des paramètres régionaux

566

- le réglage de la disposition du clavier

567

Les paramètres régionaux par défaut pendant la construction d'un système Live sont `locales=en_US.UTF-8`. Pour définir les paramètres régionaux qui doivent être générés, utilisez le paramètre `locales` dans l'option `--bootappend-live` de `lb config`, par exemple

568

$ lb config --bootappend-live "boot=live components locales=de_CH.UTF-8"

569

Plusieurs paramètres régionaux peuvent être indiqués dans une liste séparée par des virgules.

570

Ce paramètre, ainsi que les paramètres de configuration du clavier indiqués ci-dessous, peut également être utilisé sur la ligne de commande du noyau. On peut indiquer des paramètres régionaux avec `language_country` (dans ce cas, le codage par défaut est utilisé) ou l'expression complète `language_country.encoding`. Une liste des paramètres régionaux et le codage pour chacun peuvent être trouvés dans `/usr/share/i18n/SUPPORTED`.

571

La configuration du clavier pour la console et pour X est faite par `live-config` en utilisant le paquet `console-setup`. Pour les configurer, utilisez les paramètres de démarrage `keyboard-layouts`, `keyboard-variants`, `keyboard-options` et `keyboard-model` avec l'option `--bootappend-live`. On peut trouver les options valides dans `/usr/share/X11/xkb/rules/base.lst`. Pour trouver les dispositions et les variantes correspondantes à une langue, essayez de rechercher le nom anglais de la nation où la langue est parlée, par exemple:

572

$ egrep -i '(^!|german.*switzerland)' /usr/share/X11/xkb/rules/base.lst
! model
! layout
ch German (Switzerland)
! variant
legacy ch: German (Switzerland, legacy)
de_nodeadkeys ch: German (Switzerland, eliminate dead keys)
de_sundeadkeys ch: German (Switzerland, Sun dead keys)
de_mac ch: German (Switzerland, Macintosh)
! option

573

Chaque variante présente une description de la disposition appliquée.

574

Souvent, seule la disposition doit être configurée. Par exemple, pour obtenir les fichiers des paramètres régionaux de l'allemand et la disposition du clavier suisse allemand dans X, utilisez:

575

$ lb config --bootappend-live "boot=live components locales=de_CH.UTF-8 keyboard-layouts=ch"

576

Toutefois, pour les cas d'utilisation très spécifiques, on peut inclure d'autres paramètres. Par exemple, pour mettre en place un système français avec une disposition French-Dvorak (Bépo) avec un clavier USB TypeMatrix EZ-Reach 2030, utilisez:

577

$ lb config --bootappend-live \
"boot=live components locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-variants=bepo keyboard-model=tm2030usb"

578

Plusieurs valeurs peuvent être indiquées dans des listes séparées par des virgules pour chacune des options `keyboard-*`, à l'exception de `keyboard-model` qui accepte une seule valeur. Veuillez consulter la page de manuel `keyboard(5)` pour plus de détails et des exemples des variables `XKBMODEL`, `XKBLAYOUT`, `XKBVARIANT` et `XKBOPTIONS`. Si plusieurs valeurs `keyboard-variants` sont données, elles seront jumelées une à une avec les valeurs `keyboard-layouts` (voir `setxkbmap(1)` option `-variant`). On peut utiliser des valeurs vides; par exemple pour régler deux dispositions, une par défaut US QWERTY et l'autre US Dvorak, utilisez:

579

$ lb config --bootappend-live \
"boot=live components keyboard-layouts=us,us keyboard-variants=,dvorak"

580

10.3 Persistance

581

Le paradigme d'un Live CD est d'être un système pré-installé qui amorce sur un support en lecture seule, comme un cdrom, où les données et les modifications ne survivent pas aux redémarrages du matériel hôte qui l'exécute.

582

Un système live est une généralisation de ce paradigme et gère ainsi d'autres supports en plus de CDs. Malgré tout, dans son comportement par défaut, il doit être considéré en lecture seule et toutes les évolutions pendant l'exécution du système sont perdues à l'arrêt.

583

La «persistance» est un nom commun pour les différents types de solutions pour sauver, après un redémarrage, certaines ou toutes les données, de cette évolution pendant l'exécution du système. Pour comprendre comment cela fonctionne, il peut être utile de savoir que même si le système est démarré et exécuté à partir d'un support en lecture seule, les modifications des fichiers et répertoires sont écrites sur des supports inscriptibles, typiquement un disque ram (tmpfs) et les données des disques RAM ne survivent pas à un redémarrage.

584

Les données stockées sur ce disque virtuel doivent être enregistrées sur un support inscriptible persistant comme un support de stockage local, un partage réseau ou même une séance d'un CD/DVD multisession (ré)inscriptible. Tous ces supports sont pris en charge dans les systèmes live de différentes manières, et tous, à part le dernier, nécessitent un paramètre d'amorçage spécial à préciser au moment du démarrage: `persistence`.

585

Si le paramètre de démarrage `persistence` est réglé (et `nopersistence` n'est pas utilisé), les supports de stockage locaux (par exemple les disques durs, clés USB) seront examinés pour trouver des volumes persistants pendant le démarrage. Il est possible de limiter les types de volumes persistants à utiliser en indiquant certains paramètres de démarrage décrits dans la page de manuel live-boot(7). Un volume persistant est un des éléments suivants:

586

- une partition, identifiée par son nom GPT.

587

- un système de fichiers, identifié par son étiquette de système de fichiers.

588

- un fichier image situé sur la racine d'un système de fichiers en lecture (même une partition NTFS d'un système d'exploitation étranger), identifié par son nom de fichier.

589

L'étiquette du volume pour les overlays doit être `persistence` mais elle sera ignorée à moins de contenir dans sa racine un fichier nommé `persistence.conf` qui est utilisé pour personnaliser entièrement la persistance du volume, c'est-à-dire indiquer les répertoires que vous voulez sauvegarder dans votre volume de persistance après un redémarrage. Voir Le fichier persistence.conf pour plus de détails.

590

Voici quelques exemples montrant comment préparer un volume à utiliser pour la persistance. Cela peut être, par exemple, une partition ext4 sur un disque dur ou sur une clé usb créée avec:

591

# mkfs.ext4 -L persistence /dev/sdb1

592

Voir aussi Utilisation de l'espace disponible sur une clé USB.

593

Si vous avez déjà une partition sur votre périphérique, vous pouvez simplement modifier l'étiquette avec l'un des exemples suivants:

594

# tune2fs -L persistence /dev/sdb1 # for ext2,3,4 filesystems

595

Voici un exemple montrant comment créer un fichier image avec un système de fichiers ext4 pour être utilisé pour la persistance:

596

$ dd if=/dev/null of=persistence bs=1 count=0 seek=1G # for a 1GB sized image file
$ /sbin/mkfs.ext4 -F persistence

597

Une fois que le fichier image est créé, à titre d'exemple, pour rendre `/usr` persistant mais seulement enregistrer les modifications que vous apportez à ce répertoire et non pas tout le contenu de `/usr`, vous pouvez utiliser l'option «union». Si le fichier image se trouve dans votre répertoire personnel, copiez-le à la racine du système de fichiers de votre disque dur et montez-le dans `/mnt` comme suit:

598

# cp persistence /
# mount -t ext4 /persistence /mnt

599

Ensuite, créez le fichier `persistence.conf` ajoutant du contenu et démontez le fichier image.

600

# echo "/usr union" >> /mnt/persistence.conf
# umount /mnt

601

Maintenant, redémarrez dans votre support live avec le paramètre de démarrage "persistence".

602

10.3.1 Le fichier persistence.conf

603

Un volume ayant l'étiquette `persistence` doit être configuré avec un fichier `persistence.conf` pour créer des répertoires persistants arbitraires. Ce fichier, situé sur le système de fichiers racine du volume, contrôle quels répertoires il rend persistants, et de quelle manière.

604

La façon de configurer les montages overlays est décrite en détail dans la page de manuel persistence.conf(5), mais un simple exemple devrait suffire pour la plupart des utilisations. Imaginons que nous voulions rendre notre répertoire personnel et APT cache persistants dans un système de fichiers ext4 sur la partition /dev/sdb1:

605

# mkfs.ext4 -L persistence /dev/sdb1
# mount -t ext4 /dev/sdb1 /mnt
# echo "/home" >> /mnt/persistence.conf
# echo "/var/cache/apt" >> /mnt/persistence.conf
# umount /mnt

606

Puis nous redémarrons. Lors du premier démarrage, les contenus du `/home` et `/var/cache/apt` seront copiés dans le volume persistant. À partir de ce moment, tous les changements dans ces répertoires seront stockés dans le volume persistant. Veuiller remarquer que les chemins répertoriés dans le fichier `persistence.conf` ne peuvent pas contenir d'espaces ou d'éléments spéciaux `.` et `..`. En outre, ni `/lib`, `/lib/live` (ou un de leurs sous-répertoires), ni `/` ne peuvent être rendus persistants en utilisant des montages personnalisés. Comme solution à cette limitation, vous pouvez ajouter `/ union` à votre fichier `persistence.conf` pour obtenir une persistance complète.

607

10.3.2 Utilisation de plusieurs dispositifs de persistance

608

Il existe différentes méthodes d'utilisation de multiples dispositifs de persistance pour les différents cas d'utilisation. Par exemple, utiliser plusieurs dispositifs à la fois ou en sélectionner un seul, entre plusieurs, à des fins très spécifiques.

609

Plusieurs volumes overlays différents (avec leurs propres fichiers `persistence.conf`) peuvent être utilisés au même temps, mais si plusieurs volumes rendent le même répertoire persistant, un seul d'entre eux sera utilisé. Si les deux sont «imbriqués» (un est un sous-répertoire de l'autre) le premier sera monté avant le second de sorte qu'aucun ne sera caché par l'autre. Monter des éléments personnalisés imbriqués est problématique s'ils sont énumérés dans le même fichier `persistence.conf`. Voir la page de manuel persistence.conf(5) pour savoir comment gérer ce cas si vous en avez vraiment besoin (remarque: ce n'est généralement pas le cas).

610

Un cas d'utilisation possible: Si vous souhaitez stocker les données de l'utilisateur, c'est-à-dire `/home` et les données du superutilisateur, c'est-à-dire `/root` dans des partitions différentes, créer deux partitions avec l'étiquette `persistence` et ajouter un fichier `persistence.conf` dans chacun comme ça `# echo "/home" > persistence.conf` pour la première partition qui permettra de sauver les fichiers de l'utilisateur et `# echo "/root" > persistence.conf` pour la seconde partition qui permettra de stocker les fichiers du superutilisateur. Enfin, utiliser le paramètre d'amorçage `persistence`.

611

Si un utilisateur a besoin de stockages persistants multiples du même type pour différents endroits ou essais, tel que `private` et `work`, le paramètre de démarrage `persistence-label` utilisé en conjonction avec le paramètre de démarrage `persistence` permettra de multiples mais uniques supports persistants. Dans le cas où un utilisateur voudrait utiliser une partition persistante étiquetée `private`, pour des données personelles comme les marque-pages du navigateur ou d'autres types, il utiliserait les paramètres de démarrage: `persistence` `persistence-label=private`. Et pour stocker des données liées au travail, comme des documents, des projets de recherche ou d'autres types, il utiliserait les paramètres de démarrage: `persistence` `persistence-label=work`.

612

Il est important de se rappeler que chacun de ces volumes, `private` et `work`, a également besoin d'un fichier `persistence.conf` dans sa racine. La page de manuel live-boot contient plus d'informations sur la façon d'utiliser ces étiquettes avec des noms ancients.

613

10.3.3 Utilisation de la persistance avec chiffrement

614

Utiliser la persistance signifie que certaines données sensibles peuvent être exposées au risque. Surtout si les données persistantes sont stockées sur un dispositif portable tel qu'une clé USB ou un disque dur externe. C'est quand le chiffrement est plus pratique. Même si la procédure complète peut paraître compliquée en raison du nombre d'étapes à suivre, il est vraiment facile de manipuler des partitions chiffrées avec live-boot. Pour utiliser luks, qui est le type de chiffrement pris en charge, vous devez installer cryptsetup tant sur la machine avec laquelle vous créez la partition chiffrée et aussi dans le système live avec lequel vous allez utiliser la partition persistante chiffrée.

615

Pour installer cryptsetup sur votre machine:

616

# apt-get install cryptsetup

617

Pour installer cryptsetup dans votre système live, ajouter à vos listes de paquets:

618

$ lb config
$ echo "cryptsetup cryptsetup-initramfs" > config/package-lists/encryption.list.chroot

619

Une fois que vous avez votre système live avec cryptsetup, vous avez essentiellement besoin de créer une nouvelle partition, la chiffrer et démarrer avec les paramètres `persistence` et `persistence-encryption=luks`. Nous aurions pu déjà anticipée cette étape et ajoutée ces paramètres de démarrage selon la procédure habituelle:

620

$ lb config --bootappend-live "boot=live components persistence persistence-encryption=luks"

621

Allons dans les détails pour tous ceux qui ne connaissent pas bien le chiffrement. Dans l'exemple suivant, nous allons utiliser une partition sur une clé usb qui correspond au dispositif `/dev/sdc2`. S'il vous plaît être averti que vous devez déterminer quelle partition est celui que vous allez utiliser dans votre cas particulier.

622

La première étape est de brancher votre clé usb et de déterminer quel dispositif il est. La méthode recommandée pour lister les dispositifs dans live-manual est utiliser `ls -l /dev/disk/by-id`. Après cela, créer une nouvelle partition et la chiffrer avec un mot de passe comme suit:

623

# cryptsetup --verify-passphrase luksFormat /dev/sdc2

624

Ensuite, ouvrir la partition luks dans le mappeur de dispositifs virtuel. Utilisez n'importe quel nom que vous aimez. Nous utilisons live ici à titre d'exemple:

625

# cryptsetup luksOpen /dev/sdc2 live

626

La prochaine étape est de remplir le dispositif avec des zéros avant de créer le système de fichiers:

627

# dd if=/dev/zero of=/dev/mapper/live

628

Maintenant, nous sommes prêts à créer le système de fichiers. Notez que nous ajoutons l'étiquette `persistence` de sorte que le dispositif est monté en tant que magasin de persistance au moment du démarrage.

629

# mkfs.ext4 -L persistence /dev/mapper/live

630

Pour continuer avec notre configuration, nous avons besoin de monter le dispositif, par exemple dans `/mnt`.

631

# mount /dev/mapper/live /mnt

632

Et créer le fichier `persistence.conf` à la racine de la partition. Ceci est, comme expliqué précédemment, strictement nécessaire. Voir Le fichier persistence.conf.

633

# echo "/ union" > /mnt/persistence.conf

634

Puis, démontez le point de montage:

635

# umount /mnt

636

Et éventuellement, bien qu'il pourrait être un bon moyen de sécuriser les données que nous venons d'ajouter à la partition, nous pouvons fermer le dispositif:

637

# cryptsetup luksClose live

638

Résumons la procédure. Jusqu'ici nous avons créé un système capable d'utiliser le chiffrement, qui peut être copié sur une clé usb comme expliqué dans Copie d'une image ISO hybride sur une clé USB. Nous avons également créé une partition chiffrée, qui peut être située dans la même clé USB pour le porter autour et nous avons configuré la partition chiffrée pour être utilisée comme magasin de persistance. Alors maintenant, nous avons seulement besoin de démarrer le système live. Au moment du démarrage, live-boot nous demandera le mot de passe pour monter la partition chiffrée à être utilisé pour la persistance.