CASPER(7)

πŸ“¦
version 26.10.2 Β· 2 versions
, in ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

🌸 NAME 🌸

casper β€” a hook for initramfs-tools to boot live systems. That's the whole job, bestie. And yeah, this is the CASPER(7) page β€” section 7, the hook corner of the manual πŸ’–


✨ SYNOPSIS ✨

BOOT=casper As kernel parameter boot prompt.

πŸ¦‹ DESCRIPTION πŸ¦‹

So. casper is a hook for initramfs-tools, and what it does is generate an initramfs that's actually capable of booting live systems β€” the kind that make-live spits out. That includes the Debian-Live isos, netboot tarballs, usb stick images, and Ubuntu live cds. Iconic lineup honestly πŸŽ€

At boot time it goes looking for a (read-only) media that has a /casper directory on it, and inside that directory lives a root filesystem (often a compressed squashfs, no cap). If it finds one? It builds you a writable environment using overlay, so your debian-like system has somewhere to actually live and boot from. Slay πŸ’…


πŸ”₯ RECOGNIZED BOOT OPTIONS πŸ”₯

okay this is the big one, grab a snack πŸ“

  • casper-getty β€” this turns on a special "serial" login shell. It's experimental, so like, be aware.
  • xdebconf β€” uses xdebconfigurator, if it's present on the rootfs, to configure X instead of doing the standard procedure. Also experimental, also a vibe.
  • fsck.mode=skip β€” lets you skip the file system check on boot. Living dangerously, love that for you.
  • hostname=HOSTNAME, userfullname=USERFULLNAME, username=USERNAME β€” these parameters let you override the values that got read from the config file. Yes, all three, they're a little trio 🫢
  • {keyb|kbd-chooser/method}=KEYBOARD, {klayout|console-setup/layoutcode|keyboard-configuration/layoutcode}=LAYOUT, {kvariant|console-setup/variantcode|keyboard-configuration/variantcode}=VARIANT, {kmodel|console-setup/modelcode|keyboard-configuration/modelcode}=CODE, koptions=OPTIONS β€” configures the running keyboard exactly as specified. And if this one misses? casper just behaves as if "keyb=us" was specified. It will be interfered from "locale=" if locale is only 2 lowercase letters, as a special case. You could also specify console layout, variant, code, and options β€” and nope, there are no defaults for those.
  • ip=IFACE,ADDRESS,NETMASK,GATEWAY[:IFACE,ADDRESS,NETMASK,GATEWAY]* β€” lets you specify the name(s) and the options of the interface(s) that should be configured at boot time. Do not specify this if you want to use dhcp β€” because dhcp is the default, and this would be fighting it.
  • ip[=frommedia] β€” if this variable is set, dhcp and static configuration are just straight up skipped, and the system will use the (must be) media-preconfigured /etc/network/interfaces instead.
  • {live-media|bootfrom}=DEVICE β€” specify either of these two equivalent forms and casper will first try to find this device for the /casper directory, where the read-only root filesystem is supposed to reside. If it didn't find anything usable there, it goes back to the normal scan for block devices. No hard feelings ✨
  • live-media-offset=BYTES β€” this is how you tell casper that your image starts at offset BYTES in the device you specified above (or the one it autodiscovered). Useful for hiding a debian-live iso or image inside another iso or image, so you can create "clean" images. Sneaky, lowkey genius 🧚
  • live-media-path=PATH β€” sets the path to the live filesystem on the medium. By default it's set to /casper, and you should not change that unless you've customized your media accordingly. Periodt.
  • layerfs-path=PATH β€” sets the path to the leaf layer of an overlay-compatible multi-layer live filesystem on the medium. By default it's not set, multi layer is disabled, and it falls back to casper's default behaviour. A relative path uses "live-mediate-path" as its root directory. And heads up: all the layer images of the same hierarchy must be in the same directory.
  • locale=LOCALE | debian-installer/locale=LOCALE | debian-installer/language="LANG β€” configures the running locale as specified. If it's not present, the live-media rootfs's configured locale gets used; if that one also misses, casper behaves as if "locale=en_US.UTF-8" was specified. If only 2 lowercase letters are specified (like "it"), the "maybe wanted" locale is generated (like it:IT.UTF-8) β€” and in that case, if "keyb=" is also unspecified, it gets set with those same 2 lowercase letters (keyb=it). If debian-installer/language is set, it'll choose the appropriate locale corresponding to that language (it,fr,us,...).
  • debian-installer/driver-update= β€” adds a ubiquity hook to install driver-updates to the target system.
  • netboot[=nfs|cifs|url] β€” tells casper to perform a network mount. The parameter "nfsroot=" (with optional "nfsopts=") should specify where the location of the root filesystem is. With no args, it'll try cifs first, and if that fails, nfs. If the url method is chosen, the "iso-url=" parameter should point to the location of the .iso that'll be downloaded and mounted. Note: "iso-url=" on the commandline alone, by default, sets the "netboot=url" method too.
  • iso-url|url=URL β€” tells casper the download location of the installer ISO. The ISO gets downloaded and mounted. Networking is required for this option to work, and you can configure that with the "ip=" option. Also note: setting this option will also set the "netboot=url" method. Two for one πŸ’…
  • persistent β€” casper will look for persistent and snapshot partitions or files labeled "casper-rw", "home-rw", and files called "casper-sn*", "home-sn*", and will try to, in order: mount the first as /cow, mount the second in /home, and just copy the contents of the latter into appropriate locations (snapshots). Snapshots will be tried to be updated on reboot/shutdown. Go look at casper-snapshot(1) for more informations πŸŽ€
  • nopersistent β€” disables that whole "persistent" feature from above. Useful if the bootloader (like syslinux) has been installed with persistent enabled.
  • persistent-path=PATH β€” casper will look for persistency files in the root directory of a partition. With this parameter, the path can be configured so you can have multiple directories on the same partition to store persistency files. Multitasking queen πŸ‘‘
  • serialtty=tty β€” redirect output to the tty of your choice, for debugging purposes in live sessions.
  • showmounts|show-cow β€” makes casper show on / the ro filesystems (mostly compressed) on /casper. Not enabled by default, because it could lead to problems with applications like "mono" which store binary paths on installation. So, y'know, drama 😭
  • textonly|automatic-ubiquity|only-ubiquity|noninteractive β€” starts up to text-mode shell prompts, disabling the graphical user interface. Old school, no GUI, we respect it.
  • todisk=DEVICE β€” add this parameter and casper will try to copy the entire read-only media to the specified device before mounting the root filesystem. It probably needs a lot of free space, just saying. Subsequent boots should then skip this step and just specify the "live-media=DEVICE" boot parameter with the same DEVICE you used this time.
  • toram β€” add this parameter and casper will try to copy the whole read-only media to the computer's RAM before mounting the root filesystem. This could need a lot of ram, according to the space used by the read-only media. RAM is not infinite bestie 🌈
  • {preseed/file|file}=FILE β€” a path to a file present on the rootfs, which could be used to preseed the debconf database.
  • preseed/allow-network=true β€” brings up the network while running preseed/early_command.
  • package/question=VALUE β€” all debian installed packages could be preseeded from the command-line that way. Beware of blank spaces β€” they will interfere with parsing, so use a preseed file in this case. fr fr.
  • uuid=UUID β€” checks that the discovered medium matches UUID rather than the default UUID embedded in the initramfs.
  • ignore_uuid β€” do not check that any UUID embedded in the initramfs matches the discovered medium. casper may be told to generate a UUID by setting CASPER_GENERATE_UUID=1 when building the initramfs.
  • noprompt β€” do not prompt to eject the CD on reboot. Rude but efficient.
  • access=[v1|v2|v3|m1|m2] β€” adding this parameter tunes the graphic configuration to different accessibility needs. access=v1 for Lesser Visual Impairment, access=v2 for Moderate Visual Impairment, access=v3 for Blindness, access=m1 for Minor motor difficulties, and access=m2 for Motor difficulties with pointing devices.
  • braille=ask β€” adding this parameter enables graphic configuration for screen reader.
  • xforcevesa β€” creates a basic xorg.conf to force VESA mode only, which could help if no suitable video driver is available. The backup plan we all deserve πŸ’œ

πŸ“ FILES πŸ“

  • /etc/casper.conf β€” some variables can be configured via this config file.

πŸ’€ BUGS πŸ’€

casper works fully on amd64, i386 and ppc, and it should also run on other archs. (Yes, this is filed under BUGS. The arch flex is the bug, apparently. We love a confident king πŸ‘‘)


🌈 HOMEPAGE 🌈

Debian Live project http://live.debian.net/


🫢 SEE ALSO 🫢

casper-snapshot(1), initramfs-tools(8), make-live(8), make-live.conf(5)


⭐ AUTHOR ⭐

casper was written by Tollef Fog Heen <tfheen@canonical.com>, Matt Zimmerman <mdz@canonical.com>, and Marco Amadori <marco.amadori@gmail.com>.

This manual page was written by Marco Amadori <marco.amadori@gmail.com>, for the Debian project (but may be used by others).


and that's the whole page bestie πŸŽ€ this one's version 1.69, dated Thu, 28 Sep 2006 β€” yes, 2006, she's a vintage icon and she still boots πŸ’–βœ¨

πŸ“¦ where this page comes from