********** ISO FUSS 9 ********** In FUSS 9 (Debian stretch) le ISO live (complete di installer testuale e grafico) si generavano usando ``live-wrapper``. Vengono usate le versioni presenti in Debian buster, ovvero ad agosto 2018:: live-wrapper (0.7) vmdebootstrap (1.11-1) Build ===== Setup ----- * Su un'installazione di Debian buster o successive, installare live-wrapper:: # apt install live-wrapper * Copiare il file ``/usr/share/live-wrapper/customise.sh``:: # cp /usr/share/live-wrapper/customise.sh fuss-customise.sh sotto alla riga:: . /usr/share/vmdebootstrap/common/customise.lib aggiungere:: # overriden from the above for FUSS prepare_apt_source() { # handle the apt source mv ${rootdir}/etc/apt/sources.list.d/base.list ${rootdir}/etc/apt/ echo "deb $1 $2 main contrib non-free" > ${rootdir}/etc/apt/sources.list echo "deb-src $1 $2 main contrib non-free" >> ${rootdir}/etc/apt/sources.list echo "deb http://archive.fuss.bz.it/ stretch main" >> ${rootdir}/etc/apt/sources.list wget -qO ${rootdir}/tmp/fuss-apt.key https://archive.fuss.bz.it/apt.key chroot ${rootdir} apt-key add /tmp/fuss-apt.key chroot ${rootdir} apt -qq -y update > /dev/null 2>&1 } Build ----- Per generare la ISO di FUSS 9 per architettura amd64, lanciare il seguente comando:: lwr -o fuss9-live-amd64.iso -d stretch --architecture=amd64 --customise=./fuss-customise.sh -m http://ftp.de.debian.org/debian/ -e "fuss-client fuss-kids fuss-children fuss-education fuss-graphics fuss-language-support fuss-multimedia fuss-extra-multimedia fuss-net fuss-office fuss-various" Per generare la ISO di FUSS 9 per architettura i386, lanciare il seguente comando:: lwr -o fuss9-live-i386.iso -d stretch --architecture=i386 --customise=./fuss-customise.sh -m http://ftp.de.debian.org/debian/ -e "fuss-client fuss-kids fuss-children fuss-education fuss-graphics fuss-language-support fuss-multimedia fuss-extra-multimedia fuss-net fuss-office fuss-various" Vedi anche ========== * https://live-wrapper.readthedocs.io/en/latest/ * https://wiki.debian.org/vmdebootstrap *********** ISO FUSS 10 *********** Con FUSS 10, il tool adottato per personalizzare una immagine ISO esistente si chiama ``remaster-iso`` (https://github.com/unixabg/remaster-iso). Creare la ISO live di FUSS ========================== ``remaster-iso`` è disponibile come pacchetto solo a partire da Debian 11 "bullseye". Se si lavora con Debian 10 è necessario, peretanto, clonare il progetto ``remaster-iso`` da GitHub e spostarsi nella cartella creata:: git clone https://github.com/unixabg/remaster-iso.git cd remaster-iso Di seguito viene mostrato come personalizzare l'immagine di Debian Live amd64 Xfce reperibile da https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-10.10.0-amd64-xfce.iso con :: wget https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-10.10.0-amd64-xfce.iso Qualora servissero anche i firmware non-free, l'immagine dalla quale partire è la seguente: https://cdimage.debian.org/images/unofficial/non-free/images-including-firmware/current-live/amd64/iso-hybrid/debian-live-10.10.0-amd64-xfce+nonfree.iso ed il comando da dare per scaricarla è: :: wget https://cdimage.debian.org/images/unofficial/non-free/images-including-firmware/current-live/amd64/iso-hybrid/debian-live-10.10.0-amd64-xfce+nonfree.iso Modificare il file di configurazione ``remaster-iso.conf``. Di seguito un esempio: :: ###################### ## remaster settings ###################### _BASEDIR=$(pwd) _ISOExtractPath="${_BASEDIR}/iso-extract" _ISOLivePath="live" _ISOMountPoint="${_BASEDIR}/iso-mount" _ISOName="" _ISOTargetName="fuss-10-amd64-live-light" _ISOTargetTitle="FUSS 10 amd64 live light" _VER="0.9.4" Estrarre il file .iso :: ./remaster-extract -i debian-live-10.10.0-amd64-xfce.iso Lanciare poi il comando ``remaster-squashfs-editor`` e selezionare "C" premendo INVIO:: ./remaster-squashfs-editor :: ################################# remaster-squashfs-editor remaster-iso version 0.9.3 ################################# (C)hroot - Chroot in to the filesystem.squashfs + psu-*.squashfs stack. (J)oin - Join the partial squashfs update files to new single psu-DATE.squashfs (N)ew - New master filesystem.squashfs file which joins all *.squashfs file to new single filesystem.squashfs E(x)it - Exit the program with no action Enter choice [C , J , N , X] C Modifiare il file dei repository se necessario :: nano /etc/apt/sources.list :: # ##### Debian Main Repos deb http://ftp.it.debian.org/debian/ buster main deb-src http://ftp.it.debian.org/debian/ buster main deb http://ftp.it.debian.org/debian/ buster-updates main deb-src http://ftp.it.debian.org/debian/ buster-updates main deb http://security.debian.org/debian-security buster/updates main deb-src http://security.debian.org/debian-security buster/updates main deb http://ftp.debian.org/debian buster-backports main deb-src http://ftp.debian.org/debian buster-backports main # ##### FUSS Main Repo deb http://archive.fuss.bz.it/ buster main deb-src http://archive.fuss.bz.it/ buster main Se servono anche pacchetti contrib e non-free, il file dev'essere :: # ##### Debian Main Repos deb http://ftp.it.debian.org/debian/ buster main contrib non-free deb-src http://ftp.it.debian.org/debian/ buster main contrib non-free deb http://ftp.it.debian.org/debian/ buster-updates main contrib non-free deb-src http://ftp.it.debian.org/debian/ buster-updates main contrib non-free deb http://security.debian.org/debian-security buster/updates main contrib non-free deb-src http://security.debian.org/debian-security buster/updates main contrib non-free deb http://ftp.debian.org/debian buster-backports main contrib non-free deb-src http://ftp.debian.org/debian buster-backports main contrib non-free # ##### FUSS Main Repo deb http://archive.fuss.bz.it/ buster main contrib non-free deb-src http://archive.fuss.bz.it/ buster main contrib non-free Aggiornare i pacchetti :: apt update apt install curl wget apt-transport-https dirmngr wget -qO - https://archive.fuss.bz.it/apt.key | sudo apt-key add - apt update && apt full-upgrade Installare ``fuss-client`` :: apt install fuss-client Lanciare il comando per la configurazione di FUSS standalone (desktop) :: fuss-client --iso --standalone [--light] [--unofficial] [--locale=LOCALE] --domain fuss.bz.it dove - ``--light`` mantiene l'immagine leggera senza installare i metapacchetti didattici; - ``--unofficial`` permette di installare i firmware non-free di debian; - ``--locale=LOCALE`` permette di scegliere la lingua di default, dove ``LOCALE`` è, a titolo d'esempio, nella forma de\_DE.UTF-8. Scaricare la chiave del repository ``archive.fuss.bz.it`` che verrà utilizzata da Calamares (https://calamares.io/) durante l'installazione:: curl https://archive.fuss.bz.it/apt.key | gpg --dearmor > /usr/share/keyrings/fuss-keyring.gpg Modificare lo script ``/usr/sbin/sources-final`` che scriverà i repository durante l'installazione:: #!/bin/sh # # Writes the final sources.list files # CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g") RELEASE="buster" FUSS_KEY="/usr/share/keyrings/fuss-keyring.gpg" cat << EOF > $CHROOT/etc/apt/sources.list # See https://wiki.debian.org/SourcesList for more information. deb http://deb.debian.org/debian $RELEASE main deb-src http://deb.debian.org/debian $RELEASE main deb http://deb.debian.org/debian $RELEASE-updates main deb-src http://deb.debian.org/debian $RELEASE-updates main deb http://security.debian.org/debian-security/ $RELEASE/updates main deb-src http://security.debian.org/debian-security/ $RELEASE/updates main EOF cat << EOF > $CHROOT/etc/apt/sources.list.d/deb_debian_org_debian.list deb http://deb.debian.org/debian $RELEASE-backports main deb-src http://deb.debian.org/debian $RELEASE-backports main EOF cat << EOF > $CHROOT/etc/apt/sources.list.d/archive_fuss_bz_it.list deb [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ $RELEASE main contrib deb-src [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ $RELEASE main contrib EOF if [ -f $FUSS_KEY ] ; then cp $FUSS_KEY $CHROOT/usr/share/keyrings/fuss-keyring.gpg fi exit 0 Per le immagini unofficial il file dev'essere :: #!/bin/sh # # Writes the final sources.list files # CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g") RELEASE="buster" FUSS_KEY="/usr/share/keyrings/fuss-keyring.gpg" cat << EOF > $CHROOT/etc/apt/sources.list # See https://wiki.debian.org/SourcesList for more information. deb http://deb.debian.org/debian $RELEASE main contrib non-free deb-src http://deb.debian.org/debian $RELEASE main contrib non-free deb http://deb.debian.org/debian $RELEASE-updates main contrib non-free deb-src http://deb.debian.org/debian $RELEASE-updates main contrib non-free deb http://security.debian.org/debian-security/ $RELEASE/updates main contrib non-free deb-src http://security.debian.org/debian-security/ $RELEASE/updates main contrib non-free EOF cat << EOF > $CHROOT/etc/apt/sources.list.d/deb_debian_org_debian.list deb http://deb.debian.org/debian $RELEASE-backports main contrib non-free deb-src http://deb.debian.org/debian $RELEASE-backports main contrib non-free EOF cat << EOF > $CHROOT/etc/apt/sources.list.d/archive_fuss_bz_it.list deb [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ $RELEASE main contrib contrib non-free deb-src [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ $RELEASE main contrib contrib non-free EOF if [ -f $FUSS_KEY ] ; then cp $FUSS_KEY $CHROOT/usr/share/keyrings/fuss-keyring.gpg fi exit 0 Rimuovere i pacchetti inutilizzati e ripulire la cache pacchetti :: apt-get autoremove apt-get clean Configurare la live :: nano /etc/live/config.conf.d/fuss.conf :: LIVE_HOSTNAME="fuss" LIVE_USERNAME="user" LIVE_USER_FULLNAME="FUSS Live user" LIVE_LOCALES="en_US.UTF-8,it_IT.UTF-8,de_AT.UTF-8" LIVE_TIMEZONE="Europe/Rome" LIVE_KEYBOARD_LAYOUTS="it,de" Cambiare l'hostname di default :: nano /etc/hostname :: fuss Per prendere le impostazioni del pannello come previsto da FUSS, modificare una riga dello script ``/lib/live/config/1170-xfce4-panel``: :: nano /lib/live/config/1170-xfce4-panel :: sudo -u "${LIVE_USERNAME}" cp /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml /home/"${LIVE_USERNAME}"/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml Qualora servisse, nella cartella ``/lib/live/config`` ci sono tutti gli script richiamati dalla live per le diverse configurazioni. Come documentazione c'è la man page di ``live-config`` dov'è tutto abbastanza ben documentato. Uscire e salvare le modifiche fatte in chroot digitando Y ed invio :: root@jarvis:~# exit Exited the chroot so time to clean up. Restore original overlay/etc/hosts. Restore overlay/etc/resolv.conf. Remove overlay/root/.bash_history. ############################################################# (Y)es save my chroot modifications. (N)o do not save my chroot modifications. Select to save your chroot modifications (default is N): Y Now making the updated squashfs 20200614-013407. Parallel mksquashfs: Using 8 processors Creating 4.0 filesystem on psu-20200614-013407.squashfs, block size 131072. Lanciare nuovamente ``./remaster-squashfs-editor`` e scegliere l'opzione ``N`` confermando poi con ``Y`` la creazione di ``filesystem.squashfs``: :: ./remaster-squashfs-editor :: ################################# remaster-squashfs-editor remaster-iso version 0.9.3 ################################# (C)hroot - Chroot in to the filesystem.squashfs + psu-*.squashfs stack. (J)oin - Join the partial squashfs update files to new single psu-DATE.squashfs (N)ew - New master filesystem.squashfs file which joins all *.squashfs file to new single filesystem.squashfs E(x)it - Exit the program with no action Enter choice [C , J , N , X] N I: New option selected! I: change directory to target live folder I: strting mount list and points operations I: found ./psu-20200614-020636.squashfs ... setting up mount point of psu-20200614-020636_squashfs I: mounting ./psu-20200614-020636.squashfs on psu-20200614-020636_squashfs ./psu-20200614-020636_squashfs:./filesystem_squashfs ./psu-20200614-020636_squashfs ./filesystem_squashfs ./psu_overlay ./psu-20200614-020636_squashfs:./filesystem_squashfs ############################################################# (Y)es, create a new single filesystem.squashfs. (N)o, do not create a new single filesystem.squashfs. Select to create a new single filesystem.squashfs (default is N): Y Rimuovere la cartella ``./iso-extract/live/psu-OOS\*`` :: rm -fr ./iso-extract/live/psu-OOS* Copiare i file kernel-related presenti nello squashfs nella cartella ``./iso-extract/live`` Per fare questo lanciare nuovamente ``./remaster-squashfs-editor`` scegliendo l'opzione ``(C)hroot`` :: config-4.19.0-16-amd64 config-5.10.0-0.bpo.3-amd64 initrd.img-4.19.0-16-amd64 initrd.img-5.10.0-0.bpo.3-amd64 System.map-4.19.0-16-amd64 System.map-5.10.0-0.bpo.3-amd64 vmlinuz-4.19.0-16-amd64 vmlinuz-5.10.0-0.bpo.3-amd64 Si esca dall'ambiente chroot senza apportare modifiche Modificare i file per personalizzare il menu di boot a piacimento: :: isolinux/menu.cfg boot/grub/grub.cfg E' arrivato il momento di generare la nuova ISO. Verificare che il comando xorriso nello script remaster-compose abbia i seguenti parametri: :: xorriso -as mkisofs -r -D -V "${ISOTargetTitle}" -cache-inodes -J -l -iso-level 3 -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin -c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat -o "${BASEDIR}/${BUILDDATE}-${ISOTargetName}.iso" . Terminare poi con il comando ``./remaster-compose`` per generare il file .iso :: ./remaster-compose Al termine dello script si troverà nell'attuale cartella di lavoro la nuova immagine .iso. .. note:: Per successivi aggiornamenti e personalizzazioni, sarà sufficiente partire dall'immagine ISO creata precedentemente facendo solo le modifiche necessarie ed utilizzando i tre script di ``remaster-iso`` come indicato sopra. *********** ISO FUSS 11 *********** Con FUSS 11, il tool adottato per personalizzare una immagine ISO rimane ``remaster-iso`` (https://github.com/unixabg/remaster-iso). Creare la ISO live di FUSS ========================== ``remaster-iso`` è disponibile come pacchetto solo a partire da Debian 11 "bullseye". Se si lavora con Debian 10 è necessario, peretanto, clonare il progetto ``remaster-iso`` da GitHub e spostarsi nella cartella creata: :: git clone https://github.com/unixabg/remaster-iso.git cd remaster-iso Di seguito viene mostrato come personalizzare l'immagine di Debian Live amd64 Xfce reperibile da https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-11.4.0-amd64-xfce.iso con :: wget https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-11.4.0-amd64-xfce.iso Qualora servissero anche i firmware non-free, l'immagine dalla quale partire è la seguente: https://cdimage.debian.org/images/unofficial/non-free/images-including-firmware/current-live/amd64/iso-hybrid/debian-live-11.4.0-amd64-xfce+nonfree.iso ed il comando da dare per scaricarla è:: wget https://cdimage.debian.org/images/unofficial/non-free/images-including-firmware/current-live/amd64/iso-hybrid/debian-live-11.4.0-amd64-xfce+nonfree.iso Modificare il file di configurazione ``remaster-iso.conf``. Di seguito un esempio:: ###################### ## remaster settings ###################### _BASEDIR=$(pwd) _ISOExtractPath="${_BASEDIR}/iso-extract" _ISOLivePath="live" _ISOMountPoint="${_BASEDIR}/iso-mount" _ISOName="" _ISOTargetName="fuss-11-amd64-live-lite" _ISOTargetTitle="FUSS 11 amd64 live lite" _VER="0.9.4" Estrarre il file .iso :: ./remaster-extract -i debian-live-11.4.0-amd64-xfce.iso Lanciare poi il comando ``remaster-squashfs-editor`` e selezionare "C" premendo INVIO:: ./remaster-squashfs-editor :: ################################# remaster-squashfs-editor remaster-iso version 0.9.3 ################################# (C)hroot - Chroot in to the filesystem.squashfs + psu-*.squashfs stack. (J)oin - Join the partial squashfs update files to new single psu-DATE.squashfs (N)ew - New master filesystem.squashfs file which joins all *.squashfs file to new single filesystem.squashfs E(x)it - Exit the program with no action Enter choice [C , J , N , X] C Modifiare il file dei repository se necessario :: nano /etc/apt/sources.list :: # ##### Debian Main Repos deb http://deb.debian.org/debian bullseye main deb-src http://deb.debian.org/debian bullseye main deb http://deb.debian.org/debian bullseye-updates main deb-src http://deb.debian.org/debian bullseye-updates main deb http://deb.debian.org/debian-security/ bullseye-security main deb-src http://deb.debian.org/debian-security/ bullseye-security main :: nano /etc/apt/sources.list.d/deb_debian_org_debian.list :: # ##### Debian Backports Repo deb http://deb.debian.org/debian bullseye-backports main deb-src http://deb.debian.org/debian bullseye-backports main :: nano /etc/apt/sources.list.d/archive_fuss_bz_it.list :: # ##### FUSS Main Repo deb [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ bullseye main deb-src [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ bullseye main Se servono anche pacchetti contrib e non-free, il file devono essere modificati come segue:: nano /etc/apt/sources.list :: # ##### Debian Main Repos deb http://deb.debian.org/debian bullseye main contrib non-free deb-src http://deb.debian.org/debian bullseye main contrib non-free deb http://deb.debian.org/debian bullseye-updates main contrib non-free deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free :: nano /etc/apt/sources.list.d/deb_debian_org_debian.list :: # ##### Debian Backports Repo deb http://deb.debian.org/debian bullseye-backports main contrib non-free deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free :: nano /etc/apt/sources.list.d/archive_fuss_bz_it.list :: # ##### FUSS Main Repo deb [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ bullseye main contrib non-free deb-src [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ bullseye main contrib non-free Aggiornare i pacchetti :: apt update apt install curl wget apt-transport-https dirmngr wget -qO - https://archive.fuss.bz.it/apt.key | gpg --dearmour > /usr/share/keyrings/fuss-keyring.gpg apt update && apt full-upgrade Installare ``fuss-client`` :: apt install fuss-client Lanciare il comando per la configurazione di FUSS standalone (desktop) :: fuss-client --iso --standalone --light [--unofficial] [--locale=LOCALE] --domain fuss.bz.it dove - ``--light`` mantiene l'immagine leggera senza installare i metapacchetti didattici; - ``--unofficial`` permette di installare i firmware non-free di debian; - ``--locale=LOCALE`` permette di scegliere la lingua di default, dove ``LOCALE`` è, a titolo d'esempio, nella forma de\_DE.UTF-8. Nello specifico: - per la **ISO FUSS ufficiale lite**:: fuss-client --iso --standalone --light --domain fuss.bz.it - per la **ISO FUSS ufficiale full**:: fuss-client --iso --standalone --domain fuss.bz.it - per la **ISO FUSS "unofficial" light**:: fuss-client --iso --standalone --light --unofficial --domain fuss.bz.it - per la **ISO "unofficial" full**:: fuss-client --iso --standalone --unofficial --domain fuss.bz.it Se non fatto precedentemente, scaricare la chiave del repository ``archive.fuss.bz.it`` che verrà utilizzata da Calamares (https://calamares.io/) durante l'installazione:: curl https://archive.fuss.bz.it/apt.key | gpg --dearmor > /usr/share/keyrings/fuss-keyring.gpg Modificare lo script ``/usr/sbin/sources-final`` che scriverà i repository durante l'installazione:: #!/bin/sh # # Writes the final sources.list files # CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g") RELEASE="bullseye" FUSS_KEY="/usr/share/keyrings/fuss-keyring.gpg" cat << EOF > $CHROOT/etc/apt/sources.list # See https://wiki.debian.org/SourcesList for more information. deb http://deb.debian.org/debian $RELEASE main deb-src http://deb.debian.org/debian $RELEASE main deb http://deb.debian.org/debian $RELEASE-updates main deb-src http://deb.debian.org/debian $RELEASE-updates main deb http://security.debian.org/debian-security/ $RELEASE-security main deb-src http://security.debian.org/debian-security/ $RELEASE-security main EOF cat << EOF > $CHROOT/etc/apt/sources.list.d/deb_debian_org_debian.list deb http://deb.debian.org/debian $RELEASE-backports main deb-src http://deb.debian.org/debian $RELEASE-backports main EOF cat << EOF > $CHROOT/etc/apt/sources.list.d/archive_fuss_bz_it.list deb [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ $RELEASE main deb-src [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ $RELEASE main EOF if [ -f $FUSS_KEY ] ; then cp $FUSS_KEY $CHROOT/usr/share/keyrings/fuss-keyring.gpg fi exit 0 Per le immagini unofficial il file dev'essere :: #!/bin/sh # # Writes the final sources.list files # CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g") RELEASE="bullseye" FUSS_KEY="/usr/share/keyrings/fuss-keyring.gpg" cat << EOF > $CHROOT/etc/apt/sources.list # See https://wiki.debian.org/SourcesList for more information. deb http://deb.debian.org/debian $RELEASE main contrib non-free deb-src http://deb.debian.org/debian $RELEASE main contrib non-free deb http://deb.debian.org/debian $RELEASE-updates main contrib non-free deb-src http://deb.debian.org/debian $RELEASE-updates main contrib non-free deb http://security.debian.org/debian-security/ $RELEASE-security main contrib non-free deb-src http://security.debian.org/debian-security/ $RELEASE-security main contrib non-free EOF cat << EOF > $CHROOT/etc/apt/sources.list.d/deb_debian_org_debian.list deb http://deb.debian.org/debian $RELEASE-backports main contrib non-free deb-src http://deb.debian.org/debian $RELEASE-backports main contrib non-free EOF cat << EOF > $CHROOT/etc/apt/sources.list.d/archive_fuss_bz_it.list deb [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ $RELEASE main contrib non-free deb-src [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ $RELEASE main contrib non-free EOF if [ -f $FUSS_KEY ] ; then cp $FUSS_KEY $CHROOT/usr/share/keyrings/fuss-keyring.gpg fi exit 0 Sostituire il file ``main.py`` nella cartella ``/usr/lib/x86_64-linux-gnu/calamares/modules/displaymanager`` con la versione modificata disponibile al link https://www.fuss.bz.it/utility/calamares/main.py :: wget -O /usr/lib/x86_64-linux-gnu/calamares/modules/displaymanager/main.py https://www.fuss.bz.it/utility/calamares/main.py Rimuovere i pacchetti inutilizzati e ripulire la cache pacchetti :: apt-get autoremove apt-get clean Configurare la live :: nano /etc/live/config.conf.d/fuss.conf :: LIVE_HOSTNAME="fuss" LIVE_USERNAME="user" LIVE_USER_FULLNAME="FUSS Live user" LIVE_LOCALES="en_US.UTF-8,it_IT.UTF-8,de_AT.UTF-8" LIVE_TIMEZONE="Europe/Rome" LIVE_KEYBOARD_LAYOUTS="it,de" Cambiare l'encoding della console :: nano /etc/default/console-setup impostando :: CHARMAP="UTF-8" Cambiare l'hostname di default :: nano /etc/hostname :: fuss Per prendere le impostazioni del pannello come previsto da FUSS, modificare una riga dello script ``/lib/live/config/1170-xfce4-panel``:: nano /lib/live/config/1170-xfce4-panel :: sudo -u "${LIVE_USERNAME}" cp /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml /home/"${LIVE_USERNAME}"/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml Qualora servisse, nella cartella ``/lib/live/config`` ci sono tutti gli script richiamati dalla live per le diverse configurazioni. Come documentazione c'è la man page di ``live-config`` dov'è tutto abbastanza ben documentato. Uscire e salvare le modifiche fatte in chroot digitando Y ed invio :: root@jarvis:~# exit Exited the chroot so time to clean up. Restore original overlay/etc/hosts. Restore overlay/etc/resolv.conf. Remove overlay/root/.bash_history. ############################################################# (Y)es save my chroot modifications. (N)o do not save my chroot modifications. Select to save your chroot modifications (default is N): Y Now making the updated squashfs 20200614-013407. Parallel mksquashfs: Using 8 processors Creating 4.0 filesystem on psu-20200614-013407.squashfs, block size 131072. Lanciare nuovamente ``./remaster-squashfs-editor`` e scegliere l'opzione ``N`` confermando poi con ``Y`` la creazione di ``filesystem.squashfs``:: ./remaster-squashfs-editor :: ################################# remaster-squashfs-editor remaster-iso version 0.9.3 ################################# (C)hroot - Chroot in to the filesystem.squashfs + psu-*.squashfs stack. (J)oin - Join the partial squashfs update files to new single psu-DATE.squashfs (N)ew - New master filesystem.squashfs file which joins all *.squashfs file to new single filesystem.squashfs E(x)it - Exit the program with no action Enter choice [C , J , N , X] N I: New option selected! I: change directory to target live folder I: strting mount list and points operations I: found ./psu-20200614-020636.squashfs ... setting up mount point of psu-20200614-020636_squashfs I: mounting ./psu-20200614-020636.squashfs on psu-20200614-020636_squashfs ./psu-20200614-020636_squashfs:./filesystem_squashfs ./psu-20200614-020636_squashfs ./filesystem_squashfs ./psu_overlay ./psu-20200614-020636_squashfs:./filesystem_squashfs ############################################################# (Y)es, create a new single filesystem.squashfs. (N)o, do not create a new single filesystem.squashfs. Select to create a new single filesystem.squashfs (default is N): Y Rimuovere la cartella ``./iso-extract/live/psu-OOS\*`` :: rm -fr ./iso-extract/live/psu-OOS* Copiare i file kernel-related presenti nello squashfs nella cartella ``./iso-extract/live`` Per fare questo lanciare nuovamente ``./remaster-squashfs-editor`` scegliendo l'opzione ``(C)hroot`` :: config-4.19.0-16-amd64 config-5.10.0-0.bpo.3-amd64 initrd.img-4.19.0-16-amd64 initrd.img-5.10.0-0.bpo.3-amd64 System.map-4.19.0-16-amd64 System.map-5.10.0-0.bpo.3-amd64 vmlinuz-4.19.0-16-amd64 vmlinuz-5.10.0-0.bpo.3-amd64 Si esca dall'ambiente chroot senza apportare modifiche Si modifichi all'occorrenza l'immagine ``iso-extract/isolinux/splash.png``. Modificare i file per personalizzare il menu di boot a piacimento. Nelle ultime iso prodotte è stata lasciata solo l'opzione live (che include l'installer Calamares) e di rimuovere le opzioni ``Graphical Debian Installer``, ``Debian Installer`` e ``Debian Installer with Speech Synthesis``:: iso-extract/isolinux/menu.cfg iso-extract/boot/grub/grub.cfg È arrivato il momento di generare la nuova ISO lanciando il comando :: ./remaster-compose Al termine dello script si troverà nell'attuale cartella di lavoro la nuova immagine .iso. .. note:: Per successivi aggiornamenti e personalizzazioni, sarà sufficiente partire dall'immagine ISO creata precedentemente facendo solo le modifiche necessarie ed utilizzando i tre script di ``remaster-iso`` come indicato sopra. ************** ISO FUSS 12 ************** Con FUSS 12, il tool adottato per personalizzare una immagine ISO rimane ``remaster-iso`` (https://github.com/unixabg/remaster-iso). Creare la ISO live di FUSS ========================== ``remaster-iso`` è disponibile come pacchetto solo a partire da Debian 11 "bullseye". Se si lavora con Debian 10 è necessario, pertanto, clonare il progetto ``remaster-iso`` da GitHub e spostarsi nella cartella creata: :: git clone https://github.com/unixabg/remaster-iso.git cd remaster-iso Di seguito viene mostrato come personalizzare l'immagine di Debian Live amd64 Xfce reperibile da https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-12.1.0-amd64-xfce.iso con :: wget https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-12.1.0-amd64-xfce.iso Qualora servissero anche i firmware non-free, l'immagine dalla quale partire è la seguente: https://cdimage.debian.org/images/unofficial/non-free/images-including-firmware/current-live/amd64/iso-hybrid/debian-live-11.4.0-amd64-xfce+nonfree.iso ed il comando da dare per scaricarla è:: wget https://cdimage.debian.org/images/unofficial/non-free/images-including-firmware/current-live/amd64/iso-hybrid/debian-live-11.4.0-amd64-xfce+nonfree.iso Modificare il file di configurazione ``remaster-iso.conf``. Di seguito un esempio:: ###################### ## remaster settings ###################### _BASEDIR=$(pwd) _ISOExtractPath="${_BASEDIR}/iso-extract" _ISOLivePath="live" _ISOMountPoint="${_BASEDIR}/iso-mount" _ISOName="" _ISOTargetName="fuss-12-amd64-live-lite" _ISOTargetTitle="FUSS 12 amd64 live lite" _VER="0.9.4" Estrarre il file .iso :: ./remaster-extract -i debian-live-12.1.0-amd64-xfce.iso Lanciare poi il comando ``remaster-squashfs-editor`` e selezionare "C" premendo INVIO:: ./remaster-squashfs-editor :: ################################# remaster-squashfs-editor remaster-iso version 0.9.4 ################################# (C)hroot - Chroot in to the filesystem.squashfs + psu-*.squashfs stack. (J)oin - Join the partial squashfs update files to new single psu-DATE.squashfs (N)ew - New master filesystem.squashfs file which joins all *.squashfs file to new single filesystem.squashfs E(x)it - Exit the program with no action Enter choice [C , J , N , X] C Modificare il file dei repository se necessario :: nano /etc/apt/sources.list :: # ##### Debian Main Repos # See https://wiki.debian.org/SourcesList for more information. deb http://deb.debian.org/debian bookworm main deb-src http://deb.debian.org/debian bookworm main deb http://deb.debian.org/debian bookworm-updates main deb-src http://deb.debian.org/debian bookworm-updates main deb http://security.debian.org/debian-security/ bookworm-security main deb-src http://security.debian.org/debian-security/ bookworm-security main :: nano /etc/apt/sources.list.d/deb_debian_org_debian.list :: # ##### Debian Backports Repo deb http://httpredir.debian.org/debian bookworm-backports main :: nano /etc/apt/sources.list.d/archive_fuss_bz_it.list :: # ##### FUSS Main Repo deb [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ bookworm main deb-src [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ bookworm main Se servono anche pacchetti contrib e non-free, il file devono essere modificati come segue:: nano /etc/apt/sources.list :: # ##### Debian Main Repos # See https://wiki.debian.org/SourcesList for more information. deb http://deb.debian.org/debian bookworm main contrib non-free-firmware non-free deb-src http://deb.debian.org/debian bookworm main contrib non-free-firmware non-free deb http://deb.debian.org/debian bookworm-updates main contrib non-free-firmware non-free deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free-firmware non-free deb http://security.debian.org/debian-security/ bookworm-security main contrib non-free-firmware non-free deb-src http://security.debian.org/debian-security/ bookworm-security main contrib non-free-firmware non-free :: nano /etc/apt/sources.list.d/deb_debian_org_debian.list :: # ##### Debian Backports Repo deb http://httpredir.debian.org/debian bookworm-backports main contrib non-free-firmware non-free :: nano /etc/apt/sources.list.d/archive_fuss_bz_it.list :: # ##### FUSS Main Repo deb [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ bookworm main contrib non-free deb-src [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ bookworm main contrib non-free Aggiornare i pacchetti :: apt update apt install curl wget apt-transport-https dirmngr wget -qO - https://archive.fuss.bz.it/apt.key | gpg --dearmour > /usr/share/keyrings/fuss-keyring.gpg apt update && apt full-upgrade Installare ``fuss-client`` :: apt install fuss-client Lanciare il comando per la configurazione di FUSS standalone (desktop) :: fuss-client --iso --standalone --light [--unofficial] [--locale=LOCALE] --domain fuss.bz.it dove - ``--light`` mantiene l'immagine leggera senza installare i metapacchetti didattici; - ``--unofficial`` permette di installare i firmware non-free di debian; - ``--locale=LOCALE`` permette di scegliere la lingua di default, dove ``LOCALE`` è, a titolo d'esempio, nella forma de\_DE.UTF-8. Nello specifico: - per la **ISO FUSS ufficiale lite**:: fuss-client --iso --standalone --light --domain fuss.bz.it - per la **ISO FUSS ufficiale full**:: fuss-client --iso --standalone --domain fuss.bz.it - per la **ISO FUSS "unofficial" light**:: fuss-client --iso --standalone --light --unofficial --domain fuss.bz.it - per la **ISO "unofficial" full**:: fuss-client --iso --standalone --unofficial --domain fuss.bz.it Se non fatto precedentemente, scaricare la chiave del repository ``archive.fuss.bz.it`` che verrà utilizzata da Calamares (https://calamares.io/) durante l'installazione:: curl https://archive.fuss.bz.it/apt.key | gpg --dearmor > /usr/share/keyrings/fuss-keyring.gpg .. note:: Se il fuss-client --standalone ... dovesse fallire con l'errore: **ERROR: Ansible could not initialize the preferred locale: unsupported locale setting** riconfigurare i locales scegliendo una lingua lanciando il comando: ``dpkg-reconfigure locales`` Modificare lo script ``/usr/sbin/sources-final`` che scriverà i repository durante l'installazione:: #!/bin/sh # # Writes the final sources.list files # CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g") RELEASE="bookworm" FUSS_KEY="/usr/share/keyrings/fuss-keyring.gpg" cat << EOF > $CHROOT/etc/apt/sources.list # See https://wiki.debian.org/SourcesList for more information. deb http://deb.debian.org/debian $RELEASE main deb-src http://deb.debian.org/debian $RELEASE main deb http://deb.debian.org/debian $RELEASE-updates main deb-src http://deb.debian.org/debian $RELEASE-updates main deb http://security.debian.org/debian-security/ $RELEASE-security main deb-src http://security.debian.org/debian-security/ $RELEASE-security main EOF cat << EOF > $CHROOT/etc/apt/sources.list.d/deb_debian_org_debian.list deb http://deb.debian.org/debian $RELEASE-backports main deb-src http://deb.debian.org/debian $RELEASE-backports main EOF cat << EOF > $CHROOT/etc/apt/sources.list.d/archive_fuss_bz_it.list deb [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ $RELEASE main deb-src [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ $RELEASE main EOF if [ -f $FUSS_KEY ] ; then cp $FUSS_KEY $CHROOT/usr/share/keyrings/fuss-keyring.gpg fi exit 0 Per le immagini unofficial il file dev'essere :: #!/bin/sh # # Writes the final sources.list files # CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g") RELEASE="bookworm" FUSS_KEY="/usr/share/keyrings/fuss-keyring.gpg" cat << EOF > $CHROOT/etc/apt/sources.list # See https://wiki.debian.org/SourcesList for more information. deb http://deb.debian.org/debian $RELEASE main contrib non-free-firmware non-free deb-src http://deb.debian.org/debian $RELEASE main contrib non-free-firmware non-free deb http://deb.debian.org/debian $RELEASE-updates main contrib non-free-firmware non-free deb-src http://deb.debian.org/debian $RELEASE-updates main contrib non-free-firmware non-free deb http://security.debian.org/debian-security/ $RELEASE-security main contrib non-free-firmware non-free deb-src http://security.debian.org/debian-security/ $RELEASE-security main contrib non-free-firmware non-free EOF cat << EOF > $CHROOT/etc/apt/sources.list.d/deb_debian_org_debian.list deb http://deb.debian.org/debian $RELEASE-backports main contrib non-free deb-src http://deb.debian.org/debian $RELEASE-backports main contrib non-free EOF cat << EOF > $CHROOT/etc/apt/sources.list.d/archive_fuss_bz_it.list deb [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ $RELEASE main contrib non-free deb-src [signed-by=/usr/share/keyrings/fuss-keyring.gpg] http://archive.fuss.bz.it/ $RELEASE main contrib non-free EOF if [ -f $FUSS_KEY ] ; then cp $FUSS_KEY $CHROOT/usr/share/keyrings/fuss-keyring.gpg fi exit 0 Sostituire il file ``main.py`` nella cartella ``/usr/lib/x86_64-linux-gnu/calamares/modules/displaymanager`` con la versione modificata disponibile al link https://www.fuss.bz.it/utility/calamares/main.py :: wget -O /usr/lib/x86_64-linux-gnu/calamares/modules/displaymanager/main.py https://www.fuss.bz.it/utility/calamares/main.py .. note:: Verificare periodicamente che il modulo main.py sia ancora compatibile con l'ultima versione di ``calamares``. Eventualmente modificarlo. Rimuovere i pacchetti **uim**, **ibus** e, se necessario, riconfigurare **libdvd-pkg** :: apt remove uim ibus dpkg-reconfigure libdvd-pkg Rimuovere i pacchetti inutilizzati e ripulire la cache pacchetti :: apt-get autoremove apt-get clean Configurare la live :: nano /etc/live/config.conf.d/fuss.conf :: LIVE_HOSTNAME="fuss" LIVE_USERNAME="user" LIVE_USER_FULLNAME="FUSS Live user" LIVE_LOCALES="en_US.UTF-8,it_IT.UTF-8,de_AT.UTF-8" LIVE_TIMEZONE="Europe/Rome" LIVE_KEYBOARD_LAYOUTS="it,de" Cambiare l'encoding della console :: nano /etc/default/console-setup impostando :: CHARMAP="UTF-8" Cambiare l'hostname di default :: nano /etc/hostname :: fuss Per prendere le impostazioni del pannello come previsto da FUSS, modificare una riga dello script ``/lib/live/config/1170-xfce4-panel``:: nano /lib/live/config/1170-xfce4-panel :: sudo -u "${LIVE_USERNAME}" cp /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml /home/"${LIVE_USERNAME}"/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml Qualora servisse, nella cartella ``/lib/live/config`` ci sono tutti gli script richiamati dalla live per le diverse configurazioni. Come documentazione c'è la man page di ``live-config`` dov'è tutto abbastanza ben documentato. Per evitare che all'avvio della ISO live appaia lo sfondo artwork presente al momento della compilazione della stessa, si consiglia di modificare lo script ``/usr/share/fuss-artwork/rotate-background.sh``, aggiungendo: :: if grep -w "overlay" /etc/fstab; then EXPECTED_LINK="/usr/share/fuss-artwork/wallpapers/fuss-$(RELEASE)-wallpaper.svg" fi subito prima della riga: :: test "$CURRENT_LINK" = "$EXPECTED_LINK" && exit 0 In questo modo, in modalità Live apparirà lo sfondo predefinito per la versione installata. Terminate le modifiche fatte in chroot, uscire dall'Editor di squashfs e salvare digitando Y ed invio :: root@jarvis:~# exit Exited the chroot so time to clean up. Restore original overlay/etc/hosts. Restore overlay/etc/resolv.conf. Remove overlay/root/.bash_history. ############################################################# (Y)es save my chroot modifications. (N)o do not save my chroot modifications. Select to save your chroot modifications (default is N): Y Now making the updated squashfs 20230614-013407. Parallel mksquashfs: Using 8 processors Creating 4.0 filesystem on psu-20230614-013407.squashfs, block size 131072. Lanciare nuovamente ``./remaster-squashfs-editor`` e scegliere l'opzione ``N`` confermando poi con ``Y`` la creazione di ``filesystem.squashfs``:: ./remaster-squashfs-editor :: ################################# remaster-squashfs-editor remaster-iso version 0.9.4 ################################# (C)hroot - Chroot in to the filesystem.squashfs + psu-*.squashfs stack. (J)oin - Join the partial squashfs update files to new single psu-DATE.squashfs (N)ew - New master filesystem.squashfs file which joins all *.squashfs file to new single filesystem.squashfs E(x)it - Exit the program with no action Enter choice [C , J , N , X] N I: New option selected! I: change directory to target live folder I: strting mount list and points operations I: found ./psu-20230614-020636.squashfs ... setting up mount point of psu-20230614-020636_squashfs I: mounting ./psu-20230614-020636.squashfs on psu-20230614-020636_squashfs ./psu-20230614-020636_squashfs:./filesystem_squashfs ./psu-20230614-020636_squashfs ./filesystem_squashfs ./psu_overlay ./psu-20230614-020636_squashfs:./filesystem_squashfs ############################################################# (Y)es, create a new single filesystem.squashfs. (N)o, do not create a new single filesystem.squashfs. Select to create a new single filesystem.squashfs (default is N): Y Rimuovere la cartella ``./iso-extract/live/psu-OOS*`` :: rm -fr ./iso-extract/live/psu-OOS* Copiare i file kernel-related presenti nello squashfs nella cartella ``./iso-extract/live`` :: config-6.1.0-9-amd64 config-6.1.0-10.bpo.3-amd64 initrd.img-6.1.0-9-amd64 initrd.img-6.1.0-10-amd64 System.map-6.1.0-9-amd64 System.map-6.1.0-10-amd64 vmlinuz-6.1.0-9-amd64 vmlinuz-6.1.0-10-amd64 Per fare questo lanciare nuovamente ``./remaster-squashfs-editor`` scegliendo l'opzione ``(C)hroot`` Aprire un altro terminale e spostarsi in iso-extract/live. Copiarvi i file da iso-extract/live/psu_overlay/boot/, dove è stata montata la cartella, eliminando eventualmente quelli con la versioni non desiderate :: cp /media/iso/fuss-12-amd64-live-full/iso-extract/live/psu_overlay/boot/* . Si esca dall'ambiente chroot senza apportare modifiche Si modifichi all'occorrenza l'immagine ``iso-extract/isolinux/splash.png`` ed eventualmente anche ``iso-extract/isolinux/splash800x600.png``. Modificare i file per personalizzare il menu di boot a piacimento. Si può decidere ad esempio di mantenere solo l'opzione live (che include l'installer Calamares) e di rimuovere le opzioni ``Graphical DebianInstaller``, ``Debian Installer`` e ``Debian Installer with Speech Synthesis``:: iso-extract/isolinux/menu.cfg iso-extract/boot/grub/grub.cfg .. note:: Nel caso nel menu di boot manchino alcune opzioni, come il supporto di localizzazione per avviare la live nella lingua desiderata, si possono copiare parti di codice dai file di distribuzioni precedenti. È arrivato il momento di generare la nuova ISO lanciando il comando :: ./remaster-compose Al termine dello script si troverà nell'attuale cartella di lavoro la nuova immagine .iso. .. note:: Per successivi aggiornamenti e personalizzazioni, sarà sufficiente partire dall'immagine ISO creata precedentemente facendo solo le modifiche necessarie ed utilizzando i tre script di ``remaster-iso`` come indicato sopra.