Libre OS USB v6.0 est paru

Posté par  . Édité par Davy Defaud, ZeroHeure et BAud. Modéré par Pierre Jarillon. Licence CC By‑SA.
Étiquettes :
18
31
mai
2018
Distribution

Ce système dérivé de Ubuntu MATE destiné à être installé sur un support USB a désormais un nouvel opus basé sur Bionic Beaver, à savoir le système GNU/Linux Ubuntu 18.04 LTS.
Libre OS USB requiert un processeur x86-64, il est capable de démarrer en mode UEFI ou CSM et permet de disposer d’un bureau itinérant, les données personnelles pouvant être stockées de manière chiffrée sur le support USB. Il est aussi possible d’ajouter les applications de son choix en plus des outils et jeux classiques préinstallés.

Libre OS USB est un outil créé par Libre Expert, il peut être acheté pré‐installé sur une clef USB ou un disque SSD, ou encore téléchargé. Les plus courageux pourront le construire eux‐mêmes à l’aide de la recette donnée en deuxième partie.

Sommaire

Libre Expert, entreprise du Numérique libre située à Clermont‐Ferrand, créatrice de Libre OS USB, propose le système sur différents supports, y compris la possibilité de télécharger directement l’image disque en raw. Un bref manuel est fourni aux acheteurs de Libre OS USB et ils peuvent avoir du support en s’adressant directement à l’entreprise pour toute question. Libre Expert espère séduire aussi bien les amateurs de systèmes GNU/Linux que des entreprises qui pourraient y trouver une fonction dans leur usage de l’informatique. Déjà par le passé des versions personnalisées de Libre OS USB ont été demandées par des clients.

Libre Expert propose aussi des services d’assistance à l’usage de GNU/Linux pour les professionnels et les particuliers, ainsi que de l’intégration et du développement de modules pour le PGI libre Dolibarr.

La recette de Libre OS USB

A) Créer l’image ISO de départ

  • créer une installation d’Ubuntu ou un de ses dérivés (Ubuntu MATE 64 bits, dans mon cas de figure) sur le disque dur d’une machine réelle ou virtuelle (comme VirtualBox le permet) ;
  • installer les logiciels complémentaires que vous souhaitez voir figurer dans la future distribution (attention aux logiciels propriétaires : Skype, Teamviewer, Google Chrome) ;
  • installer si nécessaire des PPA pour que la mise à jour des logiciels hors distribution se fasse facilement (prudence toutefois, un PPA qui ne répond plus peut bloquer les mises à jour) ;
  • pour créer son propre dérivé d’Ubuntu, il existe le projet « LinuxRespin » : installez puis configurez ce logiciel dans /etc et utilisez la commande respin backup en tant que super‐utilisateur (à l’aide de sudo) pour qu’il génère un fichier ISO sortant — attention un fichier ISO ne peut dépasser 4 Gio pour être opérationnel ; on obtient une image ISO amorçable avec SysLinux (que l’on contournera par la suite).

B) Le système d’amorçage et la persistance

Maintenant nous allons construire un amorçage plus universel (UEFI et CSM) :

  • installez sous Windows un utilitaire de Easy2Boot se nommant « MakePartImage », pour pouvoir convertir l’image ISO en fichier transformable pour l’UEFI ; suivez le mode d’emploi et convertissez l’image par glisser‐déposer sur l’icône « FAT32 » ; on obtient un fichier ayant l’extension .imgPTN ;
  • téléchargez Easy2Boot sur votre système (je vous conseille d’être sous GNU/linux) et installez ce système d’amorçage sur une clef USB destinée à recevoir le système (au minimum de 16 Gio) ; pour cela il y a un script Bash fourni qui fait cela très bien : /Easy2Boot/_ISO/docs/linux_utils/fmt.sh ; on peut aussi défragmenter la partition en FAT32 de la clé USB avec un outil fourni (voir la doc) ;
  • puis, copiez le fichier .imgPTN dans le répertoire _ISO/Linux de la clef ;
  • démarrez depuis la clef sur un ordinateur prenant en charge l’amorçage CSM/Legacy, choisir l’image que l’on vient de créer dans le menu Linux, puis demander la transformation de la clef pour que celle‐ci devienne amorçable en UEFI/CSM (l’opération prend quelques secondes) — attention, l’installation de l’image .imgPTN modifie la disposition des partitions ;
  • la clef doit comporter deux partitions, la première en FAT32 doit faire environ 8 Gio, nous l’appelons « LIBREOSUSB », avec le drapeau « boot », la seconde en ext4 peut‐être agrandie en fonction des capacités de la clef et nous l’appelons « HOME », elle servira pour le répertoire utilisateur ; je conseille de ne pas occuper tout l’espace de la clé, car cela sert à éviter que les capacités différentes en fonction des modèles de clefs USB ne nous jouent des tours lors des copies avec les utilitaires dd sous GNU/Linux ou Rufus sous Windows ;
  • maintenant, il y a un répertoire /EFI à la racine de la clef, mais ce n’est pas encore suffisant, il faut aller récupérer le répertoire /EFI présent sur l’image ISO d’Ubuntu comportant le répertoire /BOOT et le copier avec les fichiers nécessaires qui sont BOOTx64.EFI et grubx64.efi, il faut également copier le dossier /boot qui contiendra les éléments nécessaires à GRUB ;
  • la clef devient amorçable en mode UEFI grâce aux actions précédentes, nous allons ajouter la « persistance » pour notre système ; pour cela :

    • nous allons placer un fichier casper-rw à la racine de la clef (fichier de maximum 4 Gio) avec la commande suivante :
    dd if=/dev/zero of=casper-rw bs=1M count=4000
    • puis formater le fichier comme une partition :
    mkfs.ext3 -F casper-rw -L casper-rw
    • ensuite, il faut ajouter dans les fichiers de démarrage d’Easy2Boot les éléments qui prennent cela en compte ; à la racine de la clef se trouve le fichier menu.lst, il convient de l’élaguer et de lui rajouter comme lignes :
    title Libre OS USB\n Start Libre OS USB
    kernel /casper/vmlinuz  boot=casper  persistent noeject noprompt live-media-path=/casper ignore_uuid quiet splash --
    initrd /casper/initrd.gz
    • dans le répertoire /boot/grub/grub.cfg de la clef, il faut introduire les lignes :
    set default="0"
    set timeout=10
    
    menuentry "Libre OS USB" {
        linux /casper/vmlinuz boot=casper persistent quiet splash --
        initrd /casper/initrd.gz
    }
    
    menuentry "Libre OS USB in safe mode" {
        linux /casper/vmlinuz boot=casper persistent xforcevesa quiet splash --
    initrd /casper/initrd.gz
    }
    • ensuite, il est nécessaire de rendre les menus plus lisibles, d’enlever le superflu, de modifier l’image de fond pour le menu CSM si on le souhaite.

C) Configuration, personnalisation du système

Maintenant, si la clef démarre avec la persistance dans les deux modes UEFI et CSM, la première étape est jouée. Nous allons maintenant configurer le système lui‐même :

Modification de l’initrd

Nous allons tout d’abord modifier le fichier initrd.gz ce dernier n’est au autre qu’une archive gzip un peu spéciale placée sur la clé dans /casper :

  • pour décompresser ce fichier : bash mkdir tempdir cd tempdir puis : bash gunzip -dc ../initrd.gz | cpio -imvd –no-absolute-filenames Ou si cette méthode ne fonctionne pas correctement, il faut installer dracut puis utiliser un de ses scripts, comme suit : bash /usr/lib/dracut/skipcpio ../initrd.gz |zcat| cpio -id --no-absolute-filenames
  • pour que le répertoire utilisateur /home soit monté avec la partition dédiée « HOME » de la clé que nous avons créée au préalable en ext4, au démarrage de la clé, il faut modifier usr/share/initramfs-tools/scripts/casper-bottom/12fstab se trouvant dans l’arborescence du initrd.gz que nous personnalisons, il faut utiliser l’UUID de la partition « HOME » et recopier les fichiers qui se trouvent dans l’ancien répertoire utilisateur (pensez aux répertoires cachés) ;
  • pour pouvoir mettre à jour et installer des logiciels il faut que le /etc/apt/sources.list de la clé soit bien configuré ; pour cela, il faut veiller à ne pas laisser de PPA douteux et ne pas inclure la source « CD-ROM » en désactivant le fichier /scripts/casper-bottom/41apt_cdrom situé lui aussi dans le initrd.gz ;
  • ensuite, si besoin (LinuxRespin en mode backup permet déjà de créer un utilisateur spécifique), nous allons créer un nouvel utilisateur se nommant libreosusb et nous allons en faire l’utilisateur par défaut ; il faut lui attribuer les groupes qui étaient attribués à l’utilisateur ubuntu auparavant (l’utilisateur des CD autonomes).

Option :
Il sera nécessaire pour cela de modifier le dichier initrd.gz. Tous les scripts se trouvent dans le répertoire /usr/share/initramfs-tools/scripts/casper-bottom. Dans un de ses scripts vous pourrez désactiver la connexion automatique si besoin.

Méthode :
Travailler directement sur le système de fichiers en lecture seule :

  • faites une copie du fichier filesystem.squashfs se trouvant dans le /casper de la clé, puis nous allons pouvoir le personnaliser :

    unsquashfs filesystem.squashfs
    mv filesystem.squashfs /path/to/backup/
  • allez dans squashfs-root, ajouter, modifier à votre convenance, et recréez le filesystem.squashfs comme ceci :

    cd /path/to/workdir
    sudo mksquashfs squashfs-root filesystem.squashfs -b 256k -comp lzo  -e boot

    L’utilisateur libreosusb devra être présent dans /etc/group, /etc/passwd et /etc/shadow de ce système de fichiers en lecture seule ;

  • vous pourrez recopier le nouveau filesystem.squashfs à la place de l’ancien sur votre clé USB.

Pour personnaliser l’image de démarrage de Libre OS USB, nous pouvons modifier les logos du thème par défaut de Plymouth, toujours dans le initrd.gz. Attention, il faut que ce fichier soit présent sur la partition « LIBREOSUSB » mais aussi dans le filesystem.squashfs, c’est‐à‐dire notre environnement une fois amorcé. Dans ces fichiers en lecture seule, les thèmes (graphique et texte) seront copiés dans /usr/share/plymouth/themes/. Attention aux liens symboliques et aux fichiers de configuration des thèmes. Thème utilisé : Spinning Dandelions Linux Mint 18 (Ubuntu 16.04) Bootsplash

Si l’on veut chiffrer le répertoire /home/utilisateur et le déchiffrer pendant la session de l’utilisateur après la saisie du mot de passe, nous utiliserons eCryptfs et ses ecryptfs-utils en utilisant un script par ce biais : ecryptfs-migrate-home -u libreosusb, voir la documentation de cette page : https://wiki.archlinux.org/index.php/ECryptfs

Si l’on ne veut chiffrer que seulement quelques répertoires utilisateurs, nous utiliserons EncFS et son outil « GNOME EncFS Manager » qui démarrera avec la session utilisateur (voir https://doc.ubuntu-fr.org/encfs).

Dans le fichier initrd.gz il faut mettre en accord le fichier /etc/hostname et /etc/hosts, la commande sudo affiche un message d’avertissement dans le cas contraire.

Il est nécessaire de bloquer la version du noyau Linux pour éviter sa mise à jour qui provoquerait un plantage de la clef. Pour cela, éditez le nouveau fichier /etc/apt/preferences.d/kernel (dans le filesystem.squashfs) en y ajoutant le texte suivant :

Package: linux-generic linux-headers-generic linux-image-generic 
Pin: version <insert version here>
Pin-Priority: 1001

http://askubuntu.com/questions/178324/how-to-skip-kernel-update

D) Finalisation et conseils

Il ne reste plus qu’à faire des arrangements d’ordre esthétique et ergonomique, comme ajouter le choix du clavier la barre de tray, s’assurer que la configuration du réseau est disponible, ainsi que celle du son. Aussi, il est utile de désinstaller ubiquity pour ne pas se retrouver avec l’icône d’installation, ainsi que GRUB2, qui n’est pas nécessaire, mais dont la mise à jour pourrait être problématique.

Enfin, il faut supprimer les traces laissées par le passage en mode création, journaux, historiques, etc. Les commandes history -w suivie de history -c effacent les traces du terminal, ou encore en vidant le fichier ~/.bash_history.

Il est bon aussi, si besoin, de désactiver des groupes à l’origine pour l’utilisateur ubuntu des médias autonomes et lui supprimer son répertoire personnel (home).

Pour utiliser Virtualbox avec l’image physique de la clé, il faut créer au préalable une configuration avec un disque virtuel relié au fichier image en appliquant cette commande :

VBoxManage internalcommands createrawvmdk -filename LibreOSUSB.vmdk -rawdisk 'Libre_OS_USB_VX (virtualbox).img'

Pour localiser la disposition du clavier dans LightDM, si besoin, il faut créer le fichier /etc/X11/xorg.conf.d/20-keyboard.conf avec ce contenu :

Section "InputClass"
    Identifier "keyboard"
    MatchIsKeyboard "yes"
    Option "XkbLayout" "fr"
    Option "XkbVariant" "nodeadkeys"
EndSection

Et voilà, vous avez désormais un bel outil prêt à l’emploi. Les partitions de la clé peuvent être agrandies ou rétrécies à l’aide de GParted sous GNU/Linux, si vous optez pour une clé de grande capacité, le minimum étant de 16 Gio. Des clés déjà préparées et l’image raw de Libre OS USB sont disponibles depuis la boutique de Libre Expert.

Aller plus loin

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.