remaster your system and distribuite it by ISO or via PXE
Last updated 2 years ago by pieroproietti .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install penguins-eggs-dev 
SYNC missed versions from official npm registry.


penguin's eggs

NPM Package Build Status MIT license Join the chat at


penguins-eggs is a console utility, in active development, who let you to remaster your system and redistribuite it as iso images or from the lan via PXE remote boot.

The scope of this project is to implement the process of remastering your version of Linux, generate it as ISO image to burn on a CD/DVD or copy to a usb key to boot your system. You can also boot your egg - via remote boot - on your LAN.

It can create your ISO image of your system, but also include all the necessary services dhcp, dhcp-proxy, tftp and http to realize a fast and powerfull PXE server who can work alone or inside a preesistent LAN architecture.

All it is written in pure nodejs, so ideally can be used with differents Linux distros. At the moment it is tested with Debian 9 Stretch, Debian 8 Jessie, Ubuntu and derivates as Linux Mint. For others distros we need to find collaboration.

penguins-eggs, at the moment 2018 february 20 is in a joung state, and can have same troubles for people not in confidence with Linux system administration, but can be already extremely usefull: imagine to install it on an lan and start to manage the computers with it. You can easily install clonezilla on it, or clamav and you have a tool to backup/restore/sanityze your entire infrastructure.

You can, also easily create your organization/school distro and deploy it on your LAN, give it to your friends as usb key or publish eggs in the internet!

You can try now penguins-eggs, it is a console utility - no GUI - but don't be scared, penguins-eggs is a console command - really very simple usage - if you are able to open a terminal, you can use it.

Install penguins-eggs

Well, it is time to try it!


Of course penguins-eggs need nodejs installed.

penguins-eggs depend on various packages, you need to install them before to start to use it. Before to install penguins-eggs, simply copy and paste the following lines:

sudo apt-get update

sudo apt-get install lvm2 parted squashfs-tools xorriso live-boot syslinux syslinux-common isolinux pxelinux

Installation via npm

You can install it with npm (node package manager). Copy and past the following line:

sudo npm i penguins-egg -g

Installation from source

You need a functional installation of Linux Debian version 8 or 9, Ubuntu or derivates, all the prerequisites plus the build-essential package.

apt-get install build-essential

At this point You can download last version on Copy and past the following lines:

git clone
cd penguins-eggs
npm i

At this point, You can launch egg, in developer mode, for example:

sudo npm start spawn

or you can build and link it:

npm run build
sudo npm link

And you can run eggs in usual way:

sudo eggs spawn


On the eggs you can do four actions:

  • spawn
  • cuckoo
  • kill
  • hatch


The function of spawn is to generate the egg. Your system is copied and packaged as an iso file. This is a live system version of your real system, and you can masterize it or put in a USB key and use, and install your version of linux on everyone computer. The command spawn accept the parameter -d or --distroname who, as the name implies is the name and, also, the hostname of your live system.

sudo eggs spawn -d mydistroname


Yes, after we have the egg, there is another action possible for it, before to hatch or kill it, we can use our egg to boot from the net other computers. In the system mother, we need to give the action:

sudo eggs cuckoo

And netboot via PXE a remote computer in the same net. The PC will be booted with our egg and we will hatch it on the new pc. In same way, it's like the behaviour of the cuckoo, who leave is egg in a nest of the another bird. From this the name of the action.


As the name say is the operation of break and kill the egg created. You will free your system from the egg.

sudo eggs kill


An egg to became penguin need to be hatched! In our case we simply need to give to the egg the informations for installation and - in few minuts - (far before the fatitical 21 days) we will have a new penguin.

sudo eggs hatch

You will be prompted to various parameters like: username, password, hostname, domain, networking, installation device and type. Usually, you can accept the defaults.

Attention: Don't be scared, but be attent to that you are doing here, the operation of hatch is destructive and irreversible, and will format your disk and destroy your data to prepare the machine for the installation of your new penguin. Be sure to have backup of your data before.


  • -d --distroname <distroname>

If you dont use this option, the computer hostname will used as distroname. The image iso generated, will be called distroname-YYYY-MM-DD_HHMM-ZZ Where YYYY-MM-DD-HHMM is year, MM mount, DD day. HHMM is your local time and ZZ the difference betwen your local time and the greenwich one.

eg: host penguin will produce an iso called penguin-2017-10-22_2047_02.iso


I build and test penguins-eggs on a customized version of Proxmox VE who let me to create/destroy a lot of virtual PCs with different configurations: one or more net cards, processor, memory and so on. It is easy to have, install Debian Stretch with your preferedd GUI, I use cinnamon, and follow this howto in their site.

That's all Folks!

No need other configurations, penguins-eggs are battery included or better, as in the real, the live is inside! :-D

More informations

For other informations, look at Piero Proietti's blog, contact me, or open an issue on github.


Copyright and licenses

Copyright (c) 2017, Piero Proietti, dual licensed under the MIT or GPL Version 2 licenses.

Current Tags

  • 2.1.4                                ...           latest (2 years ago)

22 Versions

  • 2.1.4                                ...           2 years ago
  • 2.1.3                                ...           2 years ago
  • 2.1.2                                ...           2 years ago
  • 2.1.1                                ...           2 years ago
  • 2.1.0                                ...           2 years ago
  • 2.0.17                                ...           2 years ago
  • 2.0.16                                ...           2 years ago
  • 2.0.15                                ...           2 years ago
  • 2.0.14                                ...           2 years ago
  • 2.0.13                                ...           2 years ago
  • 2.0.12                                ...           2 years ago
  • 2.0.11                                ...           2 years ago
  • 2.0.10                                ...           2 years ago
  • 2.0.9                                ...           2 years ago
  • 2.0.8                                ...           2 years ago
  • 2.0.7                                ...           2 years ago
  • 2.0.6                                ...           2 years ago
  • 2.0.5                                ...           2 years ago
  • 2.0.4                                ...           2 years ago
  • 2.0.3                                ...           2 years ago
  • 2.0.2                                ...           2 years ago
  • 2.0.1                                ...           2 years ago
Maintainers (1)
Today 0
This Week 1
This Month 1
Last Day 0
Last Week 0
Last Month 1
Dependencies (12)
Dev Dependencies (15)
Dependents (0)

Copyright 2014 - 2017 © |