Package Details: liveroot 30-1

Git Clone URL: (read-only, click to copy)
Package Base: liveroot
Description: Initcpio hooks for non persistent boot
Upstream URL:
Licenses: GPL3
Submitter: bluerider
Maintainer: bluerider
Last Packager: bluerider
Votes: 16
Popularity: 0.000210
First Submitted: 2015-02-10 18:27 (UTC)
Last Updated: 2016-12-18 21:30 (UTC)

Latest Comments

mradi commented on 2017-09-16 09:59 (UTC)

Are you still maintaining this script?

bluerider commented on 2016-12-18 21:31 (UTC)

@Dragonlord : Using release versioning scheme now.

Dragonlord commented on 2016-12-18 10:50 (UTC)

2nd look reveals this is actually a -git package, but the package name does not reference this. I'd suggest renaming accordingly.

Dragonlord commented on 2016-12-18 10:47 (UTC)

Last Updated still says 2015-07-01 23:01 The PKGBUILD will be orphaned soon if not fixed.

bluerider commented on 2016-12-04 16:56 (UTC)

Bugs fixed.

raingloom commented on 2016-12-04 12:37 (UTC)

There is an open issue regarding a bug that can delete your entire filesystem. Well, it happened to me. The fix is even described by that author as a reply to the issue, yet it has not been fixed in half a year, even though it would only take the insertion of two characters. I'm requesting the orphan flag as the author has not made any online appearance since august. (based on github and bbs data)

bluerider commented on 2016-01-17 20:40 (UTC)

@francoism90: Writing should be faster than a SSD, reading will be the same.

francoism90 commented on 2016-01-17 19:41 (UTC)

Interesting, as I understand you can run /root from the RAM? Would this be faster then using a SSD? Yeah, it's has no protection against corruption, etc., but having enough memory you could benefit from using liveroot?

bluerider commented on 2015-04-24 03:10 (UTC)

There's now a new option in the packages branch of liveroot. It can only be accessed via the compiler and requires a pacman cache that has only up to date packages (no old packages) currently. It runs like oroot=live, but is generally faster to boot up since it installs the packages in the package cache to the overlain root.

bluerider commented on 2015-04-16 07:45 (UTC)

Fixed up rsyncing issues in compiler and oroot hook. Now uses rsync -ax --no-whole-file --inplace for better syncing. In addition, I added mkinitcpio -p linux to post_upgrade in the install script.

bluerider commented on 2015-04-09 16:58 (UTC)

Compiler now also prints the proper install hook.

bluerider commented on 2015-04-09 06:32 (UTC)

PKGBUILD now supports compiling with btrfs support. In order for this mode to work, one needs : 1) /snapshots subvolume 2) initial snapshot in /snapshots overlay_flush will produce snapshots in /snapshots/ everytime it is called.

bluerider commented on 2015-04-09 00:45 (UTC)

PKGBUILD will now ask the user if they want to use the static compiler to produce a customized oroot hook instead of the default one. The static compiler reads /proc/cmdline to generate a more concise oroot hook (only uses features one has).

bluerider commented on 2015-04-08 21:30 (UTC)

The compiler should produce code on par with the original oroot hook now.

bluerider commented on 2015-04-08 07:46 (UTC)

I've included a compiler of sorts in liveroot. It can be retrieved from the master branch of liveroot. It is a bash script that creates a particular version of oroot tailored to a system. This simplifies debugging since the code is much more straightforward. To run : # bash compiler

bluerider commented on 2015-04-08 01:08 (UTC)

Updated to use new rsync code

bluerider commented on 2015-04-07 03:27 (UTC)

I have a version of liveroot that works with btrfs but it's not pushed to master liveroot (since it only supports btrfs). It uses snapshotting and is highly experimental. It's part of a prototype-os project. You can try it by checking out the btrfs branch. The idea is that you use btrfs for root, you need the subvolume /snapshots. When you set up root, there needs to be an initial snapshot of root. You then run as oroot=live and overlay_flush will actually generate snapshots that are stored in /snapshots/.

bluerider commented on 2015-04-07 02:08 (UTC)

@justin8 : also, please continue this dicussion if you'd like on the zswap comments.

bluerider commented on 2015-04-07 01:55 (UTC)

@justin8: I already did offer, the maintainer didn't seem receptive to the idea. This package is certainly not a duplicate of zramswap by the way. As I stated, it operates entirely differently. Zramswap doesn't even use zramctl, it just operates directly on /sys/block/*. I repeat zramswap and zswap are not the same packages, do not share any source code (I wrote zswap from the ground up because zramswap was inadequate when it came to liveroot). Read the source code for both and you should be able to see the massive differences. However, zswap can provide everything that zramswap did and more.

justin8 commented on 2015-04-07 01:46 (UTC)

Sounds good, but you should probably get it merged in to the zramswap name but using your package since it does sound superior in every way, and a little less hacky. They are after all almost duplicates of each other.

bluerider commented on 2015-04-07 01:24 (UTC)

@justin8 : Also, the name zswap is kind of a bad choice on my side. The kernel technically has another feature called zswap which does something else but still create a swap device in ram. The kernel zswap needs a backing device.

bluerider commented on 2015-04-07 01:22 (UTC)

1) uses zramctl 2) allows the existence of zram devices beforehand 3) removes only swap zram devices when called to stop 4) suppports effcient swap reset 5) allows different parameters for each zram module. Look closely at zramswap's code; it thinks it's supposed to always start at /dev/zram0 (meaning no zram devices beforehand). It doesn't properly reset swap devices with swapon -f. When zram is told to stop, it's going to stop all zram devices since it thinks it's the only manager of zram devices (and they are all swap).

justin8 commented on 2015-04-07 00:45 (UTC)

Wait.. what is the difference between zswap and zramswap then?

bluerider commented on 2015-04-06 22:10 (UTC)

Updated to accept the cryptkey situation where it's : <fs>|<fstype>|<path>

bluerider commented on 2015-04-06 17:44 (UTC)

The zswap package is now available at : <> The reason why swap functionality was removed from liveroot is because it interfered with the zramswap package in the AUR (that package does have other issues as listed in the comments by me). In addition, one couldn't control the swap device without fiddling around. Hence, the swap functionality was split into the zswap script which can be activated by systemd/rc.d.

bluerider commented on 2015-04-06 17:37 (UTC)

A similar swap functionality can be found at : <> I'll be uploading the package soon, but I'm having strange 644, 755 upload issues with the AUR.

bluerider commented on 2015-04-06 16:58 (UTC)

Updated to remove zram swap support from liveroot. In addition, /dev/zram1 is no longer hardcoded as the oroot device. Instead we now use whichever free zram block device we find.

bluerider commented on 2015-04-05 01:54 (UTC)

Please file bugs in the github tracker if possible. It's just easier for me to document the issues. In addition, your zram0 issue is weird. Liveroot is always supposed to have at least 2 zram devices. In addition, liveroot sets up a nice swap partition on /dev/zram0. Can you get me an output of what's happening in your case?

KairiTech commented on 2015-04-05 01:43 (UTC)

Thank you so much for creating this hook. I have been doing something similar but in a much more complex way with a few extras. Your hook is so much better. The zram # issue is mentioned in your comments but my system only creates zram0 so I changed your hook to reference that instead of zram1 and it works perfectly. In my method, to speed up the loading to RAM I created a root filesystem archive with: tar --xattrs --acls --exclude={/rootfs.tar.gz,/boot/*,/var/cache/pacman/pkg/*,/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found} -vzcf /rootfs.tar.gz / and extracted it with: tar --xattrs --acls -xf /tmp/real_root/rootfs.tar.gz -C /new_root/ and this made the load into RAM at least 10X faster. Very noticeable if Arch is installed to a USB drive. I also use remote LUKS headers and keys in /boot on a removable USB stick so I add the --header= and --key-file= options to overlay_flush and that worked perfectly too.

Barthalion commented on 2015-03-29 15:40 (UTC)

Just dropping by to thank you for your excellent work on this. Cheers!

bluerider commented on 2015-03-27 15:12 (UTC)

Updated to simplify overlay_flush. LVM2 is supported on oroot=compressed and oroot=raw.

bluerider commented on 2015-03-27 12:54 (UTC)

Updated to resolve mount options for encrypted devices using names.

bluerider commented on 2015-03-25 23:48 (UTC)

Updated to add polling for root device to fix udev lvm issue.

bluerider commented on 2015-03-25 06:38 (UTC)

Updated to offer better encrypt handling

bluerider commented on 2015-03-25 05:42 (UTC)

Updated to reflect zramctl changes in util-linux vs. community package

bluerider commented on 2015-03-24 17:52 (UTC)

Updated since zramctl now belongs to util-linux

bluerider commented on 2015-03-23 00:59 (UTC)

I am very happy to introduce the next iteration of liveroot. There is now /usr/bin/overlay_flush which allows one to flush an overlain root to the real backing root! This means one can now work entirely in an oroot mode and write their changes back to disk!

bluerider commented on 2015-03-21 16:21 (UTC)

Updated to add oroot=live and fix up zram # devices issue.

bluerider commented on 2015-03-19 05:38 (UTC)

Updated to stop init from fscking overlain root

bluerider commented on 2015-03-18 01:45 (UTC)

Updated to fix resolution of UUID for root (previous commit failed to fix it). Also updated some configuration files for a better explanation on how to use oroot.

bluerider commented on 2015-03-17 21:18 (UTC)

Updated to resolve UUID for root.

bluerider commented on 2015-03-17 12:56 (UTC)

Updated to add example templates and post install information.

bluerider commented on 2015-03-11 06:04 (UTC)

Updated to respect "quiet" option in kernel cmdline. In addition, oroot now passes a mounting function to "mount_handler" in init instead of mounting on its own.

bluerider commented on 2015-03-05 19:05 (UTC)

Updated to fix rounding error in awk + zramctl

bluerider commented on 2015-02-15 21:20 (UTC)

Merged croot and oroot functionality together. Please see the at my github page to see how to use the new oroot.

bluerider commented on 2015-02-13 04:09 (UTC)

Updated to fix an issue where /dev/mapper/<name> was being executed. Would fail before due to no executable privileges.