BILIBOP(7)

πŸ‘‘ bilibop(7) πŸ‘‘

hey bestie πŸ’– welcome to the manual page of the Bilibop Project β€” yes, that Bilibop, the one and only. sit down, grab a snack, we're going through all of it, no skips. πŸ“


🌸 NAME 🌸

bilibop β€” run Debian GNU/Linux from an external media πŸ’…


✨ DESCRIPTION ✨

okay so, a LOT of GNU/Linux distributions β€” at least the most popular ones β€” hand out freely downloadable .iso or .img disk images that you can copy onto a USB memory stick (sometimes with just cat(1) or dd(1), sometimes in a way that's way more extra than that) and then immediately use 'as is'. iconic behaviour. 🫢

but bestie, those operating systems are not designed to be modified. they're read-only, and even when they give you a 'persistent' feature, it's limited. on top of that, they're currently unmaintainable β€” like, rebuilding the complete image of the root filesystem is the only way to update the system or modify its settings in depth. and that's a hard or heavy task that usually can't even be done from the system itself: it needs a dedicated work space, outside of the running system, and it often needs another operating system to replace the disk image with the new one. some of those tasks can be done only by experienced users. everybody else just waits for the next release, if it ever comes. 😭

Bilibop stands for 'Bilibop Is Live Install Boot On Pendrive'. that recursive acronym is now obsolete, but the name has been kept, periodt. the bilibop project was born as an alternative to the LiveUSB systems.

so here's the glow-up: by performing a standard installation of Debian directly on a removable media β€” currently a USB key or an external HDD β€” it is possible to use it as a LiveUSB system, with the big difference that it behaves like any installed Debian OS. it can be maintained, modified, updated, or even broken by the root user at any time. in fact, without specific settings, it can be broken by an unprivileged user at any time too β€” but that's also the case of LiveUSB systems, so. πŸ’€

so, bilibop is a collection of scripts using or used by other programs (initramfs-tools(7), udev(7), or GRUB2) to help admins maintain a Debian GNU/Linux operating system installed on a removable and writable media, even if some of these scripts may also be used in other contexts. one of its main goals is to fix security issues or harden standard rules and policies, to make the system more robust in this particular situation. instead of yet another new, living fast and dying young, Debian based distribution, bilibop has been designed as a set of few debian packages. bilibop-lockfs may also be installed on a laptop or on a public computer as an alternative to fsprotect or overlayroot, and bilibop-udev (or bilibop-rules) should also be installed on a LiveUSB. no cap. πŸ”₯


πŸŽ€ BILIBOP PACKAGES πŸŽ€

bilibop

this is a meta package, depending on several other binary packages from the same bilibop source package. the group-chat admin of packages, fr fr. πŸ‘‘

bilibop-common

it mainly provides shell functions and documentation. see README.Debian in the documentation of the package for details about these functions. it also includes the drivemap(1) command. πŸ¦‹

bilibop-rules

this package provides udev rules and helper scripts. its main purpose is to fix the external drive hosting the running system, and all its partitions, as owned by the disk group instead of floppy, as done by the common udev rules applied to removable media. this is a workaround of the bug #645466. 😀 the udev rules provided by this package work even when the root filesystem is on a LUKS device, a LVM Logical Volume, a loop device or is an aufs(5) or overlay mountpoint. bilibop-rules also includes the lsbilibop(8) command, and some helper scripts in /usr/share/bilibop, that can be executed manually or with 'dpkg-reconfigure bilibop-rules'. see README.Debian in the documentation of the package for details. ✨

bilibop-udev

this package is a kind of subset of bilibop-rules, and is more suited for LiveUSB systems. it just makes that the drive hosting the running system, and all its partitions, belong to the disk group instead of floppy. its udev rules also create a symlink (/dev/bilibop) pointing to the drive name. see README.Debian in the documentation of the package for details. 🧚

bilibop-lockfs

by using an initramfs script and a mount(8) helper script, filesystems are mounted as readonly branches of a union filesystem (either aufs(5) or overlay), the corresponding writable branches being on temporary filesystems. additionally, block devices are set readonly too, avoiding low-level write access on them, even by root. all this makes the operating system unbreakable, unless with a hammer. πŸ”¨ see README.Debian in the documentation of the package for details.


🌈 INSTALLATION 🌈

Debian can be installed on a removable drive as it is on an internal one, except:

  • it is highly recommended to install a full encrypted system. otherwise, what can happen if the USB stick or the external HDD has been lost or forgotten somewhere, or even thieft ? 😭 unfortunately (but there are evident security reasons), this can not be fully preseeded.
  • due to write-cycles limits on flash memory, it is not recommended to use a swap area on them: this can dramatically decrease the lifetime of the drive. πŸͺ«
  • even if the amd64 is now the most common architecture on modern Personal Computers, installation of a x86 system will make it more versatile and work both on amd64 and i386 architectures (and even on ia32, but this needs at least a specific partition scheme).
  • take care, near the end of the installation, that the bootloader will be installed on the MBR of the drive where the system has been freshly installed: choosing the default 'install on MBR' will install it on the Master Boot Record of the first disk ! 🚨
  • taking previous recommendations into account, choose 'Expert Install' or 'Expert Graphical Install' in the installer boot menu. if you have to install Debian on several devices, don't perform an automated installation via the 'Auto Install' option in the installer boot menu. if you really need to automate this process to win time, use a preseed file instead.

πŸ’œ SETTINGS AND CONFIGURATION πŸ’œ

the main advantage of a standard installation over a Live system is that the installed one can exactly answer your needs: if the needs change, the system can be easily modified. it can be installed and configured to be used as/for:

  • daily usage (this is my case)
  • router and/or firewall for a LAN
  • ftp and/or http server (this is my case)
  • forensics and rescue system (this is may case)
  • embedded Debian repository (this is my case)
  • testing system
  • educational purposes
  • others

because an operating system running from an external device is generally used on different computers, with potentially different keyboards, architectures, monitors, and so on, it could need some special settings to be as versatile as possible. maybe the field is too large to be covered into a single manual page: see /usr/share/doc/bilibop-common/misc/* for some tips and tricks, details and suggestions about possible settings. 🫢


πŸŽ€ FILES πŸŽ€

/usr/share/bilibop-common/README.Debian
/usr/share/bilibop-common/examples/bilibop.conf
/usr/share/bilibop-common/misc/*
/usr/share/bilibop-lockfs/README.Debian
/usr/share/bilibop-lockfs/examples/bilibop.conf
/usr/share/bilibop-rules/README.Debian
/usr/share/bilibop-rules/examples/bilibop.conf

πŸ¦‹ SEE ALSO πŸ¦‹

bilibop.conf(5), drivemap(1), lsbilibop(8)


πŸ‘‘ AUTHOR πŸ‘‘

this manual page has been written by Bilibop Project <quidame@poivron.org>.


and that's the whole thing bestie πŸ’– this page ships with bilibop, dated 2015-07-14, and it is BILIBOP(7) β€” you're welcome, go forth and boot from a pendrive responsibly. πŸ’…βœ¨πŸŒΈ