[Résolu][systemrescue] customize ISO

Questions et astuces concernant l'installation et la configuration d'archlinux
dmganges
Hankyu
Messages : 17
Inscription : ven. 04 nov. 2022, 03:22

[Résolu][systemrescue] customize ISO

Message par dmganges »

Bonjour,
Comme c'est mon premier message, une présentation succincte peut être utile :
- Je suis un vieux d'Unix, et même un vieux tout court :)
- Depuis une vingtaine d'année j'utilisais SystemRecueCD pour manipuler mes partitions avec GParted.
- Mon environnement quotidien est Windows 7
- J'ai réalisé des personnalisations très poussées de SystemRecueCD initialement généré avec Linux Gentoo et que j'ai mise sur sur mes PC en boot avec grub 0.97.
- SystemRecueCD est devenu SystemRecue généré avec archlinux.
- L'environnement SystemRecueCD/Gentoo n'inclut pas les librairies sound.
- Le nouveau Firefox demande ces libraires pour être mis à jour.
Donc je ne peux plus mettre à jour mes SystemRecueCD/Gentoo :x

J'ai donc installé la dernière Ubuntu juste pour avoir grub2

Tout fonctionne parfaitement : Je boot Win7, Ubuntu, mes anciennes versions de SystemRecueCD customizées, ainsi que la dernière version de SystemRecue RESCUE905 de base :D

Maintenant il me faut customiser la RESCUE905 :!:

Je viens donc sur Le forum archlinux, le forum gentoo/SystemRecueCD n'ayant pas suivi l'évolution...

Je fais les manips de base de la doc (je ne colle pas le lien puisque c'est interdit...) :

Code : Tout sélectionner

sysrescue-customize --unpack --source=<ISO-FILE> --dest=<DIR>
Vous pouvez ensuite modifier le contenu de l'image dans le répertoire de destination donné. Ensuite, vous pouvez à nouveau reconstruire l'image :

Là je ne trouve pas L'image à modifier (voir image en dessous on ne voit pas /root) qui permettrait d'inclure mes modifs habituelles...
Puis de reconstruire l'ISO avec :

Code : Tout sélectionner

sysrescue-customize --rebuild --source=<DIR> --dest=<ISO-FILE>
Désolé d'avoir été aussi long pour en venir là :oops:
Mais si quelqu'un a une idée (Déjà customisé SystemRecue), je suis preneur de toutes suggestions :wink:
MERCI :!:

Image
https://zupimages.net/viewer.php?id=22/44/tmu1.bmp


[Edit 03:30]
Comme je ne génère pas mes grub.cfg avec grub-install, je colle ici mon grub.cfg que je fais à la mimine, ça pourra donner des idées... :D

Code : Tout sélectionner

# Global options
set timeout=20
set default=0
set fallback=1
set pager=1

# Display settings
if loadfont /boot/grub/font.pf2 ; then
    set gfxmode=640x480
    set color_normal=black/cyan
    set color_highlight=black/light-gray
    set menu_color_normal=black/cyan
    set menu_color_highlight=black/light-gray
	insmod efi_gop
	insmod efi_uga
	insmod gfxterm
#	insmod all_video
#	insmod videotest
#	insmod videoinfo
	terminal_output gfxterm
fi

menuentry 'Windows 7' {
        set root='hd0,msdos3'
        search --no-floppy --fs-uuid --set=root 3487F55A415124DE
        chainloader +1
}

menuentry '   ' {
	true
}

menuentry '  Rescue  64 Banque 5.2.1' {
	set root='hd0,msdos3'
	search --no-floppy --label boot --set=root
	linux /sysrcd_521/rescue64_521 subdir=sysrcd_521 docache domount dobanque dostartx setkmap=fr
	initrd /sysrcd_521/initram_521.igz
}

menuentry '  Rescue  64 5.2.1' {
	set root='hd0,msdos3'
	search --no-floppy --label boot --set=root
	linux /sysrcd_521/rescue64_521 subdir=sysrcd_521 docache domount dostartx setkmap=fr
	initrd /sysrcd_521/initram_521.igz
}

menuentry '  SystemRescue' {
	set root='hd0,msdos3'
	search --no-floppy --label boot --set=root
	linux  /sysresccd/boot/x86_64/vmlinuz archisobasedir=sysresccd archisolabel=boot copytoram setkmap=fr
	initrd /sysresccd/boot/x86_64/sysresccd.img
}

menuentry '   ' {
	true
}

menuentry 'Ubuntu' {
        set root='hd0,msdos13'
        search --no-floppy --fs-uuid --set=root 0d84e7a4-390c-470e-af28-fe886712103e
        linux   /boot/vmlinuz-5.15.0-52-generic root=UUID=0d84e7a4-390c-470e-af28-fe886712103e ro  quiet splash $vt_handoff
        initrd  /boot/initrd.img-5.15.0-52-generic
}

menuentry '   ' {
	true
}

menuentry '  Reboot' {
	reboot
}

menuentry '  Power off' {
	halt
}

#FIN

https://i.ibb.co/LgFhR7d/Grub.jpg
Dernière modification par dmganges le mer. 09 nov. 2022, 17:35, modifié 5 fois.
laurent85
Elfe
Messages : 954
Inscription : mar. 16 oct. 2018, 21:05

Re: [systemrescue] customize ISO

Message par laurent85 »

dmganges a écrit : ven. 04 nov. 2022, 04:09 Là je ne trouve pas L'image à modifier (voir image en dessous on ne voit pas /root) qui permettrait d'inclure mes modifs habituelles...
Bonjour,
L'image squashfs du système est dans le répertoire sysresccd/x86_64/, il se nomme airootfs.sfs, tu peux le monter pour accéder au contenu avec une commande mount du type :

Code : Tout sélectionner

sudo mount -o loop,ro <chemin du répertoire/airootfs.sfs> <répertoire de montage>
dmganges
Hankyu
Messages : 17
Inscription : ven. 04 nov. 2022, 03:22

Re: [systemrescue] customize ISO

Message par dmganges »

Bonjour et merci laurent85 pour ta réponse.

J'ai bien trouvé et monté airootfs.sfs mais c'est un fs, donc en lecture seule. NORMAL.

Dans la doc : https://www.system-rescue.org/scripts/s ... customize/
Il est prévu deux méthodes de customization Manuel & Automatique

1) Par la méthode manuelle, une fois passé le

Code : Tout sélectionner

sysrescue-customize --rebuild --source=<DIR> --dest=<ISO-FILE>
Je ne vois pas mes modifs dans le fs airootfs.sfs

2) Je tente donc la méthode automatique, qui laisse supposé qu'il n'y a pas de modif à faire après sur le fs...
Dans le RECIPE, répertoire : iso_add j'ajoute les répertoires et fichiers concernant la connexion WiFi :
- dans /etc : resolv.conf
- dans /etc/NetworkManager/system-connections : Livebox-xxxx.nmconnection
- dans /etc/wpa_supplicant : wpa_supplicant.conf

puis je passe le script de la doc adapté à mon environnement :

Code : Tout sélectionner

#!/bin/sh
#. /root/MK_Rescue/sysrcd_$SRCD/000_Verif_MV
#. /root/MK_Rescue/sysrcd_$SRCD/000_Verif_mount
#================================================
#
#         Gérération AUTOMATIQUE 
#
#================================================
#
# sda8  (FS_NTFS)   sur VAIO Ganges
# sda9  (FS_Custom) sur VAIO Ganges
# sda10 (MK_Rescue) sur VAIO Ganges
#

alias cp=cp
alias rm=rm

# Copie
echo "
Copie en cours ...
"
cp -p /root/sda10/sysresccd/ISO/systemrescue.iso /root/sda10/sysresccd/ISO/systemrescue.iso_OLD

# EFFACE /root/sda1/sysresccd
echo "
EFFACE /root/sda1/sysresccd ...
"
rm -r /root/sda1/sysresccd/*

# Génération
echo "
999_Generation-Auto cours ...
"
sysrescue-customize --auto --overwrite \
--source=/root/sda10/sysresccd/ISO/systemrescue.iso \
--dest=/root/sda10/sysresccd/ISO/systemrescue_NEW.iso \
--recipe=/root/sda10/sysresccd/RECIPE \
--work-dir=/root/sda9/sysresccd \
--verbose

sync

########
# COPIES dans /root/sda1
echo "
Montage de l'ISO généré et copie dans /root/sda1/sysresccd/* ...
"
mount -o loop /root/sda10/sysresccd/ISO/systemrescue_NEW.iso /root/sda10/sysresccd/ISO/MNT

cd /root/sda10/sysresccd/ISO//MNT/sysresccd/
cp -R /root/sda10/sysresccd/ISO/MNT/sysresccd/* /root/sda1/sysresccd

cd /root/sda10/sysresccd/ISO
umount /root/sda10/sysresccd/ISO/MNT
cd /root/sda10/sysresccd

###########
# NETTOYAGE
echo "
NETTOYAGE : /root/sda9/sysresccd
"
#rm -r /root/sda9
sync

echo "
Fin !
Rebooter !
"
Pour info je mets la conf systemrescue sur le DD en /dev/sda1 ce qui me permet de booter dessus...
ça fonctionne impeccable :D

Et là pareil rien dans airootfs.sfs :(

Autant je fais une bourde monumentale, mais ça fait deux jours que je suis dessus...
Au pire si mes fichers de config WiFi n'étaient pas bon, je devrais quand même les voir :!:

là je suis dans l'environnement systemrecue :
https://i.ibb.co/Vg3fhL8/screen.jpg
laurent85
Elfe
Messages : 954
Inscription : mar. 16 oct. 2018, 21:05

Re: [systemrescue] customize ISO

Message par laurent85 »

dmganges a écrit : sam. 05 nov. 2022, 10:27 Je ne vois pas mes modifs dans le fs airootfs.sfs
Je n'ai pas regardé comment fonctionne le script. Tu peux tout aussi bien utiliser les commandes nécessaires pour modifier toi même le contenu de airootfs.sfs

Pour cela il y a quelques étapes simples. D'abord décompresser le contenu, ensuite ajouter les fichiers de configuration avec les droits root puis recréer le fichier airootfs.sfs modifié. Et aussi recréer la somme de contrôle airootfs.sha512

Et enfin copier les 2 fichiers modifiés airootfs.sfs et airootfs.sha512 à la place des originaux avant de recréer l'image iso avec le script.

Exemple:
Décompresser l'image iso avec le script fourni.

Dans un répertoire de travail perso en dehors des répertoires de l'iso décompressée

Code : Tout sélectionner

cd /<un répertoire de travail perso>
sudo unsquashfs /<chemin du répertoire ou se trouve l'original>/airootfs.sfs
Un répertoire squashfs-root a été créé dans le répertoire de travail, il contient le système de fichier décompressé. Copie tes fichiers de configuration avec les droits root à leur bon emplacement dans le système de fichier airootfs décompressé avec sudo cp <source> <destination>

Pour recréer les fichiers airootfs modifiés:

Code : Tout sélectionner

sudo mksquashfs mksquashfs-root airootfs.sfs -noappend -comp xz
sha512sum airootfs.sfs > airootfs.sha512
Copier les fichiers modifiés à leur place d'origine

Code : Tout sélectionner

sudo cp airootfs.sfs airootfs.sha512 /<chemin vers répertoire original>
Et enfin recréer l'iso avec le script fourni
dmganges
Hankyu
Messages : 17
Inscription : ven. 04 nov. 2022, 03:22

Re: [systemrescue] customize ISO

Message par dmganges »

Bonjour et MERCI laurent85, désolé je n'ai pas pu venir hier !

1) Bonne nouvelle avec unsquashfs et mksquashfs ça fonctionne :D (En fait comme dans l'ancien script de SystemRescueCD).

J'avais élagué le répertoire RECIPE de l'exemple...
Ma première bourde était d'avoir supprimé le répertoire build_into_srm du répertoire RECIPE dans lequel il n'y a qu'un répertoire root avec un .ssh et un fichier .squashfs-pseudo

J'ai donc tout remis en place, mais ça ne fonctionne toujours pas.
Dans le script sysrescue-customize on ne passe pas dans la fonction create_srm() qui elle fait appel à mksquashfs
De plus pas de unsquashfs dans le script, c'est xorriso (que je ne connais pas) qui s'y colle...
C'est l'existence du répertoire build_into_srm qui conditionne le passage dans create_srm()...

Je vais essayer de me peler le script car il prend en compte des paramètres comme startx, setkmap=fr... dans des fichiers .yaml au démarrage ...

Si je n'y arrive pas je ferai comme avant en passant mes paramètres perso dans grub, mais ça m'oblige à modifier bashlogin...

Code : Tout sélectionner

linux /sysrcd_521/rescue64_521 subdir=sysrcd_521 docache domount dobanque dostartx setkmap=fr
J'aimerai bien me tenir au plus près de la nouvelle mouture de systemrescue, car mon vieux neurone commence à m'abandonner et ne sera bientôt plus capable de faire la maintenance :lol:
Si je m'en sors je reviendrai donner des nouvelles.

Encore un grand MERCI pour m'avoir mis sur la bonne voie.
dmganges
Hankyu
Messages : 17
Inscription : ven. 04 nov. 2022, 03:22

Re: [systemrescue] customize ISO

Message par dmganges »

Bonjour,
j'ai abandonné le script officiel sysrescue-customize, je n'ai pas réussi à trouver l'anomalie...
D'autant qu'avec unsquashfs et mksquashfs ça fonctionne très bien, du coup je n'étais pas très motivé.
Encore MERCI laurent85 pour ta suggestion éclairée :!:

Du script initial j'ai pompé l'idée de recipe, qui est très souple !
J'ai fait de sérieuses coupes dans les contrôles, ce qui donne un script facile à lire et à maintenir... Mais donc sans ceinture ni bretelles...

Je colle ici la mouture actuelle si ça peut servir...
Bien sûr elle est en cours d'écriture, mais elle fonctionne déjà bien.
Je suis ouvert aux critiques, améliorations, explications...

MK_sysrescue :

Code : Tout sélectionner

#! /usr/bin/env bash
#
# sysrescue-customize - customize an existing SystemRescue iso image
# 
# Author: Gerd v. Egidy
# SPDX-License-Identifier: GPL-3.0-or-later
#
# see https://www.system-rescue.org/scripts/sysrescue-customize/ for details

# MK_sysrescue puise dans sysrescue-customize
# Auteur : dmganges
# Libre de droit

# /dev/sda8  (FS_NTFS)   sur VAIO Ganges
# /dev/sda10 (MK_Rescue) sur VAIO Ganges
#

alias cp=cp
alias rm=rm

declare -g DIR_BASE="/root/MK_Rescue/sysresccd"
declare -g DIR_ISO="/root/MK_Rescue/sysresccd/ISO"
declare -g DIR_MNT="/root/MK_Rescue/sysresccd/MNT"
declare -g DIR_SFS="/root/MK_Rescue/sysresccd/SFS"
declare -g DIR_REC="/root/MK_Rescue/sysresccd/RECIPE"
declare -g DIR_CCD="/root/sda1/sysresccd/x86_64"


read_iso()
{

	echo
	echo "read_iso()"
	
	# Nettoyages
	echo
	echo "Nettoyages ..."
	echo
	umount ${DIR_MNT} > /dev/null 2>&1
	rm -r ${DIR_BASE}/squashfs-root > /dev/null 2>&1

	# Copie du précédent ISO et montages
	echo
	echo "Copie du précédent ISO et montages ..."
	echo
	cp -p ${DIR_ISO}/systemrescue.iso ${DIR_ISO}/systemrescue.iso_OLD
	mount -o loop ${DIR_ISO}/systemrescue.iso ${DIR_MNT} > /dev/null 2>&1
	cd ${DIR_BASE}
	
	# Extraction
	echo
	echo "Extract en cours ..."
	echo
	unsquashfs ${DIR_MNT}/sysresccd/x86_64/airootfs.sfs
	
	return
}


run_recipe()
{

	echo
	echo "run_recipe()"
    echo
	echo "On supprime des fichiers dans "${DIR_BASE}/squashfs-root
	echo
    local DELETE_ROOT="${DIR_REC}/iso_delete"
    if [[ -d "${DELETE_ROOT}" ]]; then
        local FILE
        find "${DELETE_ROOT}" -type f -printf '%P\0' 2>/dev/null | while read -d $'\0' FILE
        do
            rm -rf "${DIR_BASE}/squashfs-root/${FILE}"
        done
    fi

    echo
	echo "On ajoute ou remplace des fichiers dans "${DIR_BASE}/squashfs-root
	echo
    local ADD_ROOT="${DIR_REC}/iso_add"
    if [[ -d "${ADD_ROOT}" ]]; then
        rsync -a "${ADD_ROOT}/" "${DIR_BASE}/squashfs-root"
    fi
    return
}


write_iso()
{
	echo
	echo "write_iso()"
	echo
	cd ${DIR_BASE}
    mksquashfs ${DIR_BASE}/squashfs-root airootfs.sfs -noappend -comp xz
    
    echo
	echo "sha512sum()"
	echo
	sha512sum airootfs.sfs > airootfs.sha512
    
    echo
	echo "Copies dans "${DIR_CCD}
	echo
    cp airootfs.sfs airootfs.sha512 ${DIR_CCD}
    
    return
}


#################
# ça commence ici

read_iso
run_recipe
write_iso

echo
echo "C'est fini !"
echo "Rebooter"
echo
Suggestion :
Lorsque SystemRescueCD était réalisé sur gentoo, il y avait dans les forums gentoo un sous-forum SystemRescueCD
Il serait certainement utile que archlinux en fasse un pour systemrescue...
Cela encouragerait l'auteur M. Félix DUPOUX, qui est d'une disponibilité à toute épreuve, à venir donner ses bons conseils...
Répondre