Linux Quimper

bootloader 32 bits pour démarrer un système d'exploitation 64 bits par Linuxium

(l'homme réparé) #1

Customizing Ubuntu ISOs par Linuxium
ça pourra peut-être servir


Je suis incapable de comprendre l’anglais donc malheureusemant je suis obligé de passer par Google Traduction qui est il faut bien l’avouer mais sous la torture, excellent :’(

Normalement, les ISO de distribution Linux fonctionnent parfaitement lorsqu'elles sont écrites sur une clé USB pour démarrer en tant que 'Live USB' permettant à la fois l'utilisation et l'installation de la distribution. Malheureusement, avec l'introduction de mini-PC et tablettes basés sur Intel Atom, le problème d'avoir besoin d'un bootloader 32 bits pour démarrer un système d'exploitation 64 bits s'est posé. D'autres complications ont été provoquées par le manque initial de support «principal» pour l'audio HDMI et le wifi / bluetooth, ce qui a nécessité le recours à des noyaux personnalisés ou à l'un des noyaux «principaux» les plus récents. Cependant, étant donné qu'Ubuntu n'est pas une version évolutive, il n'est pas possible d'essayer le dernier noyau ou un noyau spécifique avec un 'Live USB'. Maintenant, avec l'introduction de mini-PC basés sur Intel Apollo Lake, un nouveau problème est survenu où GRUB ne parvient tout simplement pas à démarrer à moins que le périphérique soit l'un des rares avec une option BIOS pour sélectionner Linux comme OS. Tandis que certaines distributions Linux peuvent fonctionner OOTB indépendamment de l'architecture et du bootloader, j'ai trouvé que pour Ubuntu ce n'était pas si simple.

Pour résoudre les limites de l’utilisation d’un ISO standard, j’ai développé un script qui permet à un ISO d’être répondu et personnalisé (“remasterisé”) pour créer une nouvelle ISO. Étant un script que vous exécutez localement, cela signifie que vous pouvez à la fois voir et contrôler la manière dont votre ISO est traitée. Le script offre la possibilité de:

Ajoutez un chargeur de démarrage GRUB 32 bits pour permettre aux images ISO de démarrer sur les nombreux périphériques Intel Atom limités par leur BIOS.
Ajoutez des fonctionnalités pour démarrer des images ISO sur n'importe quel périphérique Intel Apollo, quels que soient les paramètres du BIOS.
Mettez à niveau le noyau vers la dernière version de la version principale ou vers une version spécifique pour bénéficier des fonctionnalités de correctif récentes, par ex. pour l'audio et le wifi / bluetooth ou pour utiliser un noyau roulant (HWE).
Ajoutez (ou supprimez) des référentiels, des progiciels, des scripts et des fichiers pour permettre l'installation du micrologiciel et des programmes favoris.
Préconfigurer ou exécuter des commandes et des scripts de configuration et également modifier les paramètres par défaut du système et les paramètres de démarrage du noyau.
Ajoutez la persistance afin que l'ISO puisse conserver les données, les progiciels installés et les paramètres lors des redémarrages.

Le script s’appelle ‘isorespin.sh’ et fonctionne avec toutes les versions officielles d’Ubuntu 64 bits (http://releases.ubuntu.com) et les versions ISO aromatisées d’Ubuntu (https://www.ubuntu.com/download/ubuntu-flavours ), Les ISOs de Mint Linux (https://www.linuxmint.com/download.php), les ISOs de KDE au néon (https://neon.kde.org/download), les ISO de système d’exploitation élémentaires (https://elementary.io) , Peppermint OS (https://peppermintos.com/) et BackBox Linux (https://backbox.org/). Et bien que Kali ne soit pas directement supporté, les Metapackages de Kali (https://tools.kali.org/kali-metapackages) peuvent être ajoutés lors de la réorganisation d’une ISO.

Il peut être exécuté en utilisant le CLI du shell (interface de ligne de commande) dans un terminal ou en utilisant son GUI (interface utilisateur graphique). Non seulement il générera une nouvelle ISO, mais il produira également un fichier journal qui comprend les options utilisées lors de la ré-ISO et sert à documenter l’ISO respun.

Avant de commencer

C’est un fait que la plupart des gens ne lisent la page de manuel ou la documentation d’une commande que lorsqu’ils ne savent pas comment l’utiliser ou que quelque chose ne va pas après l’avoir utilisée. Et il est également beaucoup plus facile de poster une question que de lire la documentation ou de comprendre un message d’erreur. Cependant, essayez d’abord de parcourir le guide de démarrage rapide suivant car il est conçu pour vous aider.

Guide de démarrage rapide pour utiliser ‘isorespin.sh’

  1. Ouvrez une session de terminal sur un périphérique hôte exécutant Ubuntu (ou similaire), par ex. votre PC principal
  2. Téléchargez mon script ‘isorespin.sh’ (cliquez sur le lien)
  3. Rendez le script exécutable en entrant:
    sudo mv isorespin.sh / usr / local / bin
    sudo chmod 755 /usr/local/bin/isorespin.sh
  4. Installez les paquets requis pour l’exécution (certains seront déjà installés):
    sudo apt -y installer p7zip-complet bc curl klibc-utils iproute2 genisoimage dosfstools
    sudo apt -y installer squashfs-tools rsync décompresser wget findutils xorriso
  5. Téléchargez l’ISO que vous voulez respirer (par exemple ‘ubuntu-16.04.3-desktop-amd64.iso’)
  6. Exécutez le script avec l’interface graphique:
    isorespin.sh
    ou exécutez le script avec des options. Les options couramment utilisées comprennent:
    Ajouter un chargeur de démarrage 32 bits
    isorespin.sh -i ubuntu-16.04.3-desktop-amd64.iso
    Respecter l’ISO approprié pour le démarrage sur les périphériques Intel Atom
    isorespin.sh -i ubuntu-16.04.3-desktop-amd64.iso --atom
    Respecter l’ISO approprié pour démarrer sur les appareils Intel Apollo Lake
    isorespin.sh -i ubuntu-16.04.3-desktop-amd64.iso --apollo
    Mettre à jour l’ISO avec le dernier noyau principal
    isorespin.sh -i ubuntu-16.04.3-desktop-amd64.iso -u
    Mettre à jour l’ISO avec une version spécifique du noyau
    isorespin.sh -i ubuntu-16.04.3-desktop-amd64.iso -k v4.15-rc2
    Une nouvelle ISO précédée au minimum de ‘linuxium’ sera créée. Par exemple la commande
    isorespin.sh -i ubuntu-16.04.3-desktop-amd64.iso -k v4.15-rc2 --apollo
    crée l’ISO
    linuxium-apollo-v4.15-rc2-ubuntu-16.04.3-desktop-amd64.iso
    Pour obtenir une liste de toutes les options disponibles, entrez:
    isorespin.sh -h
    Notez que le script exécute plusieurs commandes en tant que ‘sudo’, vous serez donc invité à entrer votre mot de passe
    [sudo] mot de passe pour <nom d’utilisateur>:
  7. Insérez une clé USB et notez le périphérique (utilisez ‘df’, ‘blkid’ ou ‘lsblk’ pour confirmer)
  8. Démonter tous les systèmes de fichiers montés automatiquement à partir de la clé USB
    sudo umount / dev / <Périphérique USB> *
  9. Écrivez le respun ISO à USB
    sudo dd if = de = / dev / <Périphérique USB> bs = 4M
    (par exemple, sudo dd si = linuxium-apollo-v4.15-rc2-ubuntu-16.04.3-desktop-amd64.iso de = / dev / sdx bs = 4M)
  10. Amorcez l’USB sur votre périphérique cible, par ex. votre mini PC

Les sections suivantes expliquent chacune des étapes plus en détail avec une section sur les problèmes, comment signaler les erreurs et comment faire un don.

Dépendances

Bien qu’il soit prévu d’exécuter le script sur une machine Linux exécutant généralement Ubuntu 64 bits ou un système d’exploitation basé sur Ubuntu 64 bits, il fonctionne également sur une machine virtuelle Linux sous Windows (voir ci-dessous pour plus de détails). Vous aurez besoin de certains paquets comme ‘squashfs-tools’ et ‘xorriso’ installés (utilisez ‘sudo apt-get install -y squashfs-tools xorriso’ pour les installer) plus ‘zenity’ si vous voulez utiliser l’interface graphique. Comme différentes distributions Linux ont des paquets différents installés par défaut, le script vérifie d’abord si d’autres paquets sont requis. Vous aurez également besoin d’au moins 10 Go d’espace libre, mais cela peut se faire sur un stockage externe (par exemple un port USB) car il peut être spécifié comme un emplacement différent de celui d’où le script est exécuté. Pour certaines options (telles que la mise à jour du noyau), vous aurez besoin d’une connexion Internet active car le script doit télécharger le logiciel. Le script doit également être exécutable, ce qui peut être réalisé en utilisant la commande ‘chmod’ (‘sudo chmod 755 isorespin.sh’). Comme le script exécute certaines commandes (par exemple mount / umount) qui nécessitent un accès root à l’aide de la commande ‘sudo’, vous serez invité à entrer votre mot de passe et devrez déjà avoir les privilèges ‘sudo’. Enfin quelques restrictions: vous ne pouvez pas respirer une ISO qui est EOL (End Of Life); vous ne pouvez pas réécrire un ISO sur un système d’exploitation qui ne supporte pas ‘systemd’ en utilisant les options ‘–apollo’ ou ‘-b Linuxium’; vous ne pouvez pas non plus réécrire un ISO si l’ISO ne supporte pas ‘systemd’ en utilisant les options ‘–atom’, ‘–apollo’ ou ‘-b Linuxium’.

Invocation

L’exécution du script est vraiment très simple, même s’il y a beaucoup de fonctionnalités ou d’options qui le rendent plutôt complexe.

(l'homme réparé) #2

je viens de réaliser un iso avec une Ubuntu Mate 18.04 64b et ça boote sur un Schneider SCL141CTP alors que l’iso Ubuntu Mate 18.04 64bne voulait pas
Génial :slight_smile:

(l'homme réparé) #3

Échec avec Lubuntu 18.04 64b >:(

#miseàjour : un second essai m’a permis de booter en live mais je m’aperçois qu’il s’agit de Lubuntu next
#miseàjour2 : j’installe Lubuntu 18.04 :slight_smile:
#miseàjour3 : Lubuntu 18.04 fonctionne nickel :slight_smile:

(crom_dub) #4

J’ai survolé son script, un peu complexe. Il se termine (exit 0) à la ligne 3878 (!!) suivi d’un “texte” ou d’une image en base 64, qui se termine à la ligne 71 542…

(l'homme réparé) #5

mais ça marche… :slight_smile: je vais me faire une clé usb pour les install-parties

(vincent) #6

Et le contenu est décodé ligne 2289 :

sudo sed '1,/^exit 0$/d' < ${ISORESPIN_SCRIPT} | base64 -d | sudo tee isorespin.zip > /dev/null

Si on en croit le script, ce seraient les fichiers d’isorespin.