Passa al contenuto principale

Bootloaders

· Lettura di 1 minuto
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

So far eggs is only compatible with grub, but other bootloaders will need to be included, I noticed on archinstall the possibility of installing:

  • systemd-boot
  • grub
  • efistub
  • limine

systemd-boot, is an easy-to-configure UEFI boot manager. It provides a textual menu to select the boot entry and an editor for the kernel command line. It is included with systemd.

Eggs can be installed, it does not manage systemd-boot but the installations will be done with grub.

grub

GNU GRUB is a Multiboot boot loader. It was derived from GRUB, the GRand Unified Bootloader, which was originally designed and implemented by Erich Stefan Boleyn.

GNU GRUB

efistub

The Linux kernel supports EFISTUB booting which allows EFI firmware to load the kernel as an EFI executable.

Eggs can be installed, it does not manage efistub but the installations will be done with grub.

limine

Limine is an advanced, portable, multiprotocol bootloader that supports Linux, multiboot1 and 2, the native Limine boot protocol, and more.

Eggs can be installed, it does not manage limine but the installations will be done with grub.

Limine

Deno's eggs

· Lettura di 1 minuto
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

Ho iniziato le denos' eggs come un esperimento per capire se cliffy potesse essere utilizzata per rifare eggs. L'esperimento sembrerebbe riuscito.

Praticamente ho reimplementatao in deno con cliffy l'intero sistema di menu di penguins'eggs, inclusi gli argomenti, i flag e l'help.

La procedura al momento non fa assolutamente nulla, ma sicuramente ho dimostrato che non c'è uno specifico problema oclif.

Non ho ancora ben chiaro quali potranno essere i prossimi passi: potrei partire dalla classe settings e replicare la configurazione di eggs.

Al momento mi sembra uno sforzo difficile, quindi ho provveduto a vedere se era possibile "limare" da qualche parte ed, in effetti, ho ridotto di qualche funzione non più utilizzata il codice di penguins'eggs stesso.

Ad ogni modo, potete seguire la repository di denos'eggs, farvi un fork e darmi una mano!

deno

Credits: MasterJames

State of the art

· 2 minuti di lettura
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

Quando ho cominciato eggs ho utilizzato javascript con nodejs per creare un programma CLI.

La ragione risiedeva nella difficoltà trovata ad effettuare manutenzione su script bash, dalla mancata conoscenza di python e dal fatto che javascript era molto diffuso e di moda.

Dopo i primi approcci, sono passato ad utilizzare oclif per tutta la struttura. oclif permette di gestire tutto insieme dal README.md ai vari comandi, il parse degli argomenti, etc.

Con oclif e con l'esplosione di typescript sono passato a quest'ultimo che trovo più semplice da gestire rispetto a javascript ed utile sia per rintracciare gli errori in fase di transplilazione che per un maggiore aiuto disponibile sull'editor.

Successivamente, sempre attraverso oclif sono riuscito a creare i primi pacchetti debian, quindi, in una enfasi di novità ho trovato il modo di utilizzare ink per ottenere una interfaccia TUI più pulita e basata su react.

Il programma cresceva e si dilungava il tempo di compilazione, così decisi di cominciare ad utilizzare pnpm al posto di npm. L'operazione non si mostrò affatto indolore, oclif non era compatibile con pnpm e decisi di fare un fork di oclif denominato oclif-phpm attualmente allineato alla versione di oclif v3.4.3.

Ho provato a chiedere l'inclusione del supporto per pnpm in oclif, sembra non ve ne sia l'opportunità e, naturalmente, oclif - un progetto importante - va avanti e rilascia continuamente nuove versioni, ed ho difficoltà con il mio fork a seguirle.

La stessa cosa sta pure succedendo con ink, eggs riesce a lavorare con la versione 3.x ma non con la nuova versione 4.x.

L'ideale sarebbe uno strumento come oclif, che consenta di gestire il tutto compatibile con ink o similari che consentano di utilizzare React in una CLI.

Al momento tutto questo non esiste.

Potrebbe essere anche una opportunità pensare di scrivere qualcosa del genere utilizzando deno o bun.

Consultando tra le issue di ink, sembra che vi sia una certa compatibilità tra ink e deno.

Mentre una alternativa ad oclif potrebbe essere cliffy.

Ma c'è tanto mare da attraversare!

deno

Credits: MasterJames

eggs, bananas and other oddities

· 4 minuti di lettura
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

Penguins' eggs ha sette anni, il tempo del mio ritiro dal lavoro attivo.

Questo mi ha consentito una maggiore disponibilità di tempo e di potermi dedicare a questo progetto. La passione, la testardaggine hanno fatto il resto.

Penguin's eggs si inserisce in un settore con molti illustri precedenti, dal primo remastersys, passando per refracta-snapshot, systemback, mx-snapshot ed altri.

Sono programmi che oltre ad un grande sforzo iniziale necessitano di un continuo aggiornamento, d'altra parte consentono lo "sfizio" di farsi - o illudersi di farsi - la propria versione del sistema operativo.

Mettiamola così, io penso che siano strumenti per una customizzazione verticale di Linux, al punto da farlo diventare un vestito sartoriale, passando dal pret a porter a prodotto di massa.

Ogni singolo individuo, ma più facilmente delle organizzazioni possono avere la propria versione: derivata certo! Ma chi era quello che parlava di nani che salivano sulle spalle di giganti per vedere meglio? Non è detto, quindi, che salire sulle spalle di giganti sia una cosa da poco.

Inoltre, ma non mi dilungo, forse è da rivedere il concetto di stesso distribuzione originale: alla fine è un quasi ossimoro.

Alla fin fine TUTTE le distribuzioni sono derivate - includono difatti il codice ed il lavoro dei vari pacchetti che appunto "distribuiscono", aggiungendo ed integrandolo come un sistema completo.

Lo sò, rischio di essere mandato al diavolo. D'altra parte alla non tenera età di sessantadue anni, qualche sassolino bisogna pure toglierselo.

Il sassolino, nel mio caso è l'idea che - non da solo - rimugino da anni è che l'evoluzione dei sistemi ripercorra un po' quella degli esseri viventi e non necessariamente solo quella dei sistemi operativi.

Chi è più o meno della mia età, ma anche più giovane ricorderà i tempi delle videocassette VHS, non certo le migliori, ma le più diffuse.

Diciamo che Darwin aveva ragione anche riguardo le videocassette. Lui avrebbe più "penna" per illustrarlo - anche se al posto di un comodo editor aveva solo una penna d'oca ed il calamaio.

Però se uno parte da queste affermazioni:

  • Le specie sono dotate di una grande fertilità e producono numerosi discendenti che possono raggiungere lo stadio adulto.
  • Le popolazioni rimangono grosso modo delle stesse dimensioni, con modeste fluttuazioni.
  • Le risorse di cibo sono limitate, ma relativamente costanti per la maggior parte del tempo. Da queste prime tre osservazioni è possibile dedurre che verosimilmente in ogni ambiente ci sarà tra gli individui una lotta per la sopravvivenza.
  • Con la riproduzione sessuale generalmente non vengono prodotti due individui identici. La variazione è abbondante.
  • Gran parte di questa variazione è ereditabile.

Ci si rende conto che trovare o ricreare un sistema del genere è, paradossalmente piuttosto facile, ed anche piuttosto comune.

Come dicevo, sicuramente VHS non era il sistema migliore, ma anche intel 8080 avrebbe dovuto soccombere di fronte allo splendido Zilog Z80, etc.

Un sistema riproduttivo è importante

Se le cose stanno così, eggs ed ogni sistema di riproduzione - con varianza - è importante. Mentre grandi sistemi anche straordinariamente diffusi - ma senza varianza - sono destinati a soccombere.

E qua bisogna essere ciechi, se con un Linux o un Darwin che vi gira in tasca, un altro nel vostro router di famiglie, probabilmente anche in auto e chissà quanti che utilizzate in rete ma venite ancora a sbomballarci il cazzo che avete Windows o peggio sopportate Apple.

E' sbagliato proprio il concetto: la scelta del software chiuso e non modificabile è un suicidio.

Ci potranno essere dei gemelli omozigoti, un certo grado di parentela fra simili, ma senza riproduzione con varianza tutto è destinato alla fine. Windows ed Apple non sono altro che alberi di banane clonati: una volta mangiavamo le Gros Michel ora le Cavendish, in futuro magari ci adatteremo alle Goldfinger o ne troveremo migliori.

Gros Michel

E qua ci vorrebbe una vera bibliografia, ma possiamo espanderla:

The remote space

· 2 minuti di lettura
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

remote space Foto concessa da: publicdomainpictures

Quando serve spostare un sistema da un computer ad un altro, normalmente ci si trova con molti dati.

Spesso stiamo spostando il sistema proprio perchè abbiamo bisogno di più spazio,

eggs, necessita per creare l'immagine ISO del sistema di uno spazio pari alla grandezza dell'intero filesystem compresso, moltiplicata per due - perchè il file filesystem.squashfs verrà copiato interamente nella ISO - più altro spazio - normalmente trascurabile - necessario per la configurazione della iso stessa.

Si finisce, così a non poter rimasterizzare/clonare il sistema proprio nel momento del massimo bisogno.

Ragionando su questa problematica con l'utente @unibox, ho pensato di spostare la creazione della ISO avviabile su un punto di mount.

In sostanza, mentre precedentemente il file system compresso veniva costruito in una cartella ISO posta direttamente sotto /home/eggs, attualmente avviene sotto /home/eggs/mnt.

Il bello è che si può montare sotto /home/eggs/mnt sia una partizione locale, sia dello spazio remoto.

Per montare una partizione locale, ad esempio: /dev/sdb1 è suddiciente utilizzare il comando:

sudo mount /dev/sdb1 /home/eggs/mnt

Se, invece, si vuole montare una condivisione remota daremo:

sudo sshfs root@x.x.x.x:/path/to/share /home/eggs/mnt

A questo punto potremo generare la iso, avendo garantito ad eggs lo spazio sufficiente per poter funzionare: sudo eggs produce.

Prospettive

Questo naturalmente facilita molto l'utilizzo di eggs per spostare interi sistemi da un computer ad un altro, e possiamo farlo direttamente utilizzando condivisioni di rete. Considerate pure che è anche possibile utilizzare l'opzione --crypedclone per clonare il sistema senza esporlo direttamente - ma su un volume LUKS - possiamo anche pensare di trasferire un server dalla nostra sede alla server farm all'estero in relativa sicurezza.

Avvertenza

Nonostante tutte le attenzioni poste nello sviluppo non sono certo infallibile, quindi prestate SEMPRE le dovute precauzioni.

Il programma è distribuito, così come è, sotto licenza di software libero GNU GPLv2 o Licenza MIT. Per essere chiari - l'utilizzo di questo software è a vostro rischio e pericolo - e l'autore non risponde, in alcun modo, di una eventuale perdita di dati dovuta all'utilizzo del software.

Prossimi step

Dalla regia chiedono se è possibile far funzionare eggs con systemd-boot, credo di si, ma occorre studiarlo!

Di palo in frasca

· 2 minuti di lettura
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

Non riesco a trovare ulteriori informazioni su come fare installare btrfs su una distribuzione tipo Debian o Arch, o meglio, non riesco a reperire quello che mi manca:

quali pacchetti installare?

  • btrfs-progs
  • libbtrfs0 (userspace shared code library libbtrfs)
  • libbtrfsutil1 (runtime util library)

quali configurazioni occorrono?

God know, at the moment...

Dove reperire informazioni

Bodhi Linux

Ogni tanto, come molti, dò una occhiata a distrowatch per vedere quello che succede.

Oggi ho trovato l'annuncio di una nuova release di Bodhi Linux ed ho provato a rimasterizzarla.

Bodhi Linux, è una distribuzione leggera con il desktop Moksha, veloce e completamente personalizzabile. La versione a 64 bit è basata su Ubuntu (22.04).

Cosa significa Bodhi?

Il termine sanscrito è pāli bodhi (devanāgarī बोधि) indica il "risveglio" buddhista inteso in senso spirituale, tradotto in Occidente anche con "illuminazione". Il termine bodhi indica quindi l'illuminazione spirituale nell'ambito della religione buddhista.

Che cosa è Moksha?

La parola "Moksha" (pronunciata "monk-shuh") è originale in sancrito proprio come Bodhi. Il suo significato è "emancipazione, liberazione o rilascio". Moksha è la continuazione di Enlightenment 17 desktop. Consiste nel back porting dei bug fix e delle caratteristiche dalla future release di Enlightenment, così come nella rimozione di parti parzialmente finite o rotte contenute in E17.

Bhodi Linux rimasterizzato con eggs

Ho fatto la mia rimasterizzazione di Bodhi Linux lasciandolo il più possibile com'è in originale, in sostanza cambia solo il programma di installazione - eggs utilizza calamares.

Lo potete scaricare dalle pagine di sourceforge di penguins-eggs sotto la cartella bhodi.

Penguins and eagles (Garuda)

· 2 minuti di lettura
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

Credo di aver nuovamente incontrato il Principe di Serendip.

Non è la prima volta, ormai stiamo diventando amici, e ci stimiamo a vicenda.

In questi giorni, tra indecisioni ed altro, alla fine ho aggiunto ad eggs la capacità - in realtà piuttosto semplice - di configurare calamares con diversi filesystem, in particolare btrfs.

Prova e riprova però non riuscivo a farlo effettivamente funzionare. Almeno sino a quando Stefano Capitali mi ha suggerito di dare una occhiata a Garuda Linux. Tra l'altro, Stefano fa parte del team di Manjaro ed ha anche contribuito non poco al porting di eggs su Manjaro, Arch e derivate ma - nonostante fosse "la concorrenza" - non ha lesinato il consiglio.

Perchè Garuda? Perchè in Garuda Linux il filesystem installato di default è proprio btrfs e - come dire - ci dovrebbe essere tutto l'occorrente per farlo funzionare.

Inoltre, e qua c'entra soprattutto il Principe, Garuda utilizza nativamente la repository aur chaotic nella quale il pacchetto penguins-eggs è già presente.

Quindi non occorre alcuna configurazione particolare per poterlo installare.

Proviamo

Ho fatto una prima installazione di Garuda Linux nella versione XFCE, ed ha funzionato!

Quindi ho ripetuto l'esperimento con la versione plasma, da loro denominata dr460nized.

Questi i comandi necessari:

sudo pacman -Syu penguins-eggs

sudo eggs dad -d

sudo eggs calamares --install

sudo eggs tools clean

sudo eggs produce

Tutto fatto!

garuda

Trovate delle ISO rimasterizzate con eggs di Garuda Linux nella pagina di sourceforge di penguins-eggs sotto la voce garuda

Problemi e workaround

E' stato necessario creare la directory /etc/sddm.conf.d, il file kde_settings.conf utilizzando la configurazione GUI di sddm ed il file /etc/sddm.conf.d/autologin.conf.

Mentre inizialmente ho utilizzato la versione Garuda KDE Dr460nized, alla fine ho optato per la versione Garuda Linux KDE lite che non ha tutte le customizzazioni di Garuda e, con la quale mi trovo meglio per i miei scopi.

Installazione

Occorre SEMPRE selezionare l'installazione btrfs, per l'installazione di Garuda, in quanto il sistema è configurato per funzionare su btrfs. Non si avvia se lo installiamo formattando il disco con ext4.

Remastered Garuda ISOs

Potete trovare varie versioni di Garuda rimasterizzate con eggs sulla pagina sourceforge del progetto, alla cartella garuda

Sparky Linux

· 2 minuti di lettura
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

sparky

Hi Sparkers

of course this post make me curious.

I am Piero Proietti the author of penguins-eggs, a remastering program written in the footsteps of the various remastersys, systemback, refracta-snapshot, etc.

I thank the author of the post pavroo for his interest, and describe my experience with Sparky.

Both testing penguins-eggs and test it's compatibility with many distributions, both original and derived.

Sparky did not give me any major problems, but I still had to take action on two things.

os-release

The first, the lack of the field VERSION_CODENAME in /etc/os-release.

eggs goes to detect the result of command lsb_release -c to decide which distribution it is, here it turns out n/a which stands for rolling release and that's not good, because that way I impose Arch Linux compatibility.

So I simply edited /etc/os-release and placed VERSION_CODENAME=bootworm for version 7 and VERSION_CODENAME=trixie for version 8.

calamares

Sparkly linux provides its own version of calamares, unfortunately this one has incompatibilities with eggs, so you'd better install the debian version.

apt-cache policy calamares

Installed: 3.2.61-1+b1
Candidate: 3.2.61~sparky7~3-1
Version table:
*** 3.2.61-1+b1 500
500 http://deb.debian.org/debian bookworm/main amd64 Packages
100 /var/lib/dpkg/status
3.2.61~sparky7~3-1 1001
1001 https://repo.sparkylinux.org orion/main amd64 Packages

We can proceed in this way:

sudo apt install calamares=3.2.61-1+b1

After that is better to look apt upgrade of calamares, just use:

sudo apt-mark hold calamares

to be continued

I tried to answer to the post on Sparky site, unfortunately I get access denied, so before I try to disturb the author, then I decided to publish here.

There is again much to say and discuss a possible collaboration, we will see.

SpiralLinux

· Lettura di 1 minuto
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

SpiralLinux è una bella idea ed una bellissima distribuzione!

La bella idea è che NON è una distribuzione ma rimane una Debian basata però su default diversi.

E' facilmente installabile, comprende il filesystem btrfs e lo installa di default, presenta una grafica scarna ma comunque gradevole.

Rende possibile l'installazione di Debian con btrfs anche ai niubbi.

E questo non sò se sia un bene o un male!

Un punto morto

· 2 minuti di lettura
Piero Proietti
penguins-eggs author
Deutsch English Español  Français Italiano Polska  Portuguese  Български  Русский  Українська  やまと  中国  فارسی 

Eggs è nato più o meno nel corso del 2016 sulle ceneri di software precedenti.

Sono stati anni, dal punto di vista lavorativo, intensi.

Ho lavorato, quando ho potuto sino a dieci/dodici ore al giorno, ormai da sette anni. Se una cosa mi è mancata dal mio pensionamento non è stata certo l'informatica ed il mio lavoro.

Eggs sta avendo un certo successo - non molto, considerando che è sostanzialmente uno dei pochi software di rimasterizzazione rimasti - e senz'altro l'unico capace di gestire distribuzioni differenti: nel nostro caso Debian e derivate (incluse Devuan ed Ubuntu) ed Arch e derivate (inclusa manjaro, garuda, crystal, etc),

Di tanto in tanto arriva qualche proposta di estendere le sue capacità a gentoo, a fedora o altre.

Sono circa tre giorni che mi "diverto" - alla lunga diventa palloso - a rinfrescare le distribuzioni che ho rimasterizzato e messo su sourceforge.

Diciamo pure, che - a patto di perderci un minimo di tempo - è possibile ricreare tutto lo scibile delle derivate Debian e praticamente abbiamo la stessa situazione nella famiglia Arch.

Ho rimasterizzato blendOS che mi sembra un buon sistema, in grado di essere compatibile con altre distribuzioni e ne ho creato uno proprio fringuello aggiungendo alla mia macchina di sviluppo colibri - in versione Arch - il software distrobox per la gestione dei container.

Insomma, le strade percorribili sono state percorse: in lungo ed in largo.

Che fare?

Qua la domanda è per me e per voi cari lettori, che mi suggerite e - come potete eventualmente supportarmi nello sviluppo?

Io al momento sono orientato a sondare la possibilità di supportare fedora, che sarebbe una aggiunta rilevante pensando alla miriade di derivate.

E voi cosa ne pensate?

Potete commentare anche qua sotto. Grazie!

un punto morto