Most of the Debian information mentions
break=init and then says “see the /init source for more options.”  Fortunately, I can use break=init and then dig through /init myself.Here’s the possible list for Ubuntu 14.04 Trusty Tahr:
- top: after parsing commandline and setting up most variables, prior to the /scripts/init-top script
- modules: before loading modules and possibly setting up netconsole
- premount (default for breakwithout a parameter): prior to the /scripts/init-premount script
- mount: prior to /scripts/${BOOT} (which is set to "local" in my VM but comments indicate it can be otherwise under casper)
- mountroot: prior to actually mounting the root filesystem
- bottom: prior to running /scripts/init-bottom and mounting virtual filesystems within the root
- init: prior to unsetting all initramfs-related variables and invoking the real init
break=init drops to a busybox shell with the root device filesystem mounted at $rootmnt which is /root on my system.  The virtual filesystems like /proc are also mounted under there, in the device’s root directory, not the initramfs’ root.  This is actually the state I want to be in, and digging out that list of break options was entirely irrelevant.  My apologies for the unintended shaggy-dog story.From here, to run
zerofree /dev/sda1 (your device name may vary) and shut down the system correctly afterwards:- Boot with break=init
- chroot $rootmnt /bin/sh
- zerofree /dev/sda1
- exit
- sync
- poweroff
chroot into the disk first, so that zerofree can read the mount table from /proc/mounts (it doesn’t run on a writable filesystem.)  Then to clean up, I return to the initramfs where I can use its working poweroff command.I used to use
init=/bin/sh to get a shell inside the root mount, but then I didn't have a way to shut down the system cleanly.  In the image, shutdown wants to talk to init via dbus, neither of which are actually running, and it simply delivers a cryptic message like “shutdown: Unable to shutdown system”.  Recovery or single-user modes didn't work because the filesystem was already mounted read-write and enough services were up to prevent remounting it as read-only.
 
 
