- Entrails Linux
- Is small enough to be a trivial network transfer
- Requires very little resources to run
- Provides tools useful for doing data recovery or data forensics
- Can act as a number of different network devices (bridge, router, etc)
- Is able to do all of these things equally as well remotely
In many of these cases, existing so-called rescue distributions and Live CDs do a reasonable job at fulfilling many of these requirements. After a few remote diagnostic sessions at 3am, it becomes clear that there's a market for something a little more specialised. Entrails Linux, or Entrails for short, aims to one day fulfill all of these requirements.
Entrails makes it easier to sift through the entrails of fallen systems. Entrails is easy to send to someone remotely or to boot remotely. With minimal console interaction, Entrails may be brought up on a system to a state where the real work can begin.
Simply write the image to a USB stick, hard disk, CD or DVD and boot it. You can even PXE boot the image directly or pull the kernel and initrd off the image and PXE boot those using something like PXELinux.
The default root password is entrails.
By default, no state is kept at all. See the state command for more info.
It is possible to add a state partition to the image by appending some more blocks to the image and then creating a partition and filesystem that uses those blocks:
$ dd if=/dev/zero bs=1024k count=20 >> entrails-0.6.8-i586.img $ parted entrails-0.6.8-i586.img (parted) mkpartfs ....
This is unlikely to work when the image is written to CD media however.
See the state entrails subcommand further down for ideas about automatically mounting this partition under /state. If mounted, ssh host keys are stored on this persistent storage, as well as optional configuration.
http://buildroot.uclibc.org/). It contains most of the packages in the following areas:
- Filesystem and partition manipulation
- Network topology manipulation, such as iproute2, *tables and a few other tunnelling tools
- Network service tools, such as lighttpd, nbd and openssh
At some point, an exhaustive list, including version numbers, should be included in this document. The generation of that list has yet to be automated.
By default, sshd is the only service started by default.
The entrails command has a builtin help quick-reference:
hardware command: detect=<pci|usb|virt|all> class=<XX> httpd command: <start|stop> root=<directory> mdns command: <start|stop> mount command: vol=all|vol... nbd command: port=<port> file=<file> net command: if=<interface> addr=<addr|dhcp> vc=<vendorclass> ntp command: <start|stop> server=<server> password command: user=<user> pass=<pass> uts command: hostname=<hostname> state command: fslabel=<fslabel> fstype=<fstype> configfile=<filename>
With each of these commands being documented below.
It is possible to specify a particular (hexadecimal) PCI class of devices to match against for those that want specific control.
entrails hardware detect=pci class=02
entrails httpd root=/mnt start
entrails mdns start
entrails mount vol=all
entrails nbd port=5000 file=/dev/sda
entrails net if=eth0 addr=dhcp
entrails ntp start server=pool.ntp.org
entrails password user=default pass=entrails
entrails uts hostname=entrails
The configfile option is the path (from the root of the volume) to a text file containing entrails commands (for example, uts hostname=entrails.
entrails state fslabel=el-state fstype=exfat configfile=el.cfg
entrails="uts hostname=entrails,net if=eth0 addr=dhcp,nbd disk=/dev/sda port=5000,mdns start"
- Set the hostname to 'entrails'
- Bring up eth0 using DHCP
- Export /dev/sda as a network block device on TCP port 5000
- Start the Avahi service, which will answer to entrails.entrails
- Enhancements to the net entrails command
- Add a CGI front end to the entrails command
- Add complete package list to this document
- Add services to advertise using MDNS/avahi