Hi Nowaker, I am the one with the images, not Yamakaky:-) On Sun, Sep 14, 2014 at 11:15 PM, Nowaker <enwukaer@xxxxxxxxx> wrote: > What are these significant changes more than just the pacman database > that would make users go through trouble? In #41863 I see three parts: > > - move /var/lib/pacman/local/ to /usr > - move the default pacman.conf and mirrorlist to /usr/share > - provide tmpfiles.d to copy those files to /etc > > If I'm not mistaken, /usr/share and tmpfiles.d are really trivial and > wouldn't affect users in any way. That'd be a few additional files > somewhere in the filesystem without any effect on existing machines. Or > I'm wrong? Nope, these two are really minor tasks. I do not think it makes sense to split these up. >> I then store the store the physical machine images in ostree (I am >> currently changing that to the subvolume approach systemd recently > suggested). > > Yamakaky, can you please provide some more info on this? > > And generally, could you show me your workflow - the shell commands in > particular? That would explain things better than thousands of words. :-) I have everything in a git repo, and that repo can basically recreate (almost) all my machines from scratch -- minus the home directories and a couple of server files I do backups off. I think you will understand that I do not want that repository public:-) If there is interest I can put "splitting the actual scripts from the system configuration" onto my todo list. Basically (almost) all my machines are created from scratch each night. The simplified version is this: For each machine: 1) Create a temp directory T 2) mount a new usr:something:new-snapshot btrfs subvolume on $T/usr 3) Run pacstrap to install all packages defined for that system into $T, making sure the package DB ends in $T/usr/lib/pacman/db 4) Apply any configuration changes (create users, whatever) 5) Move $T/etc to $T/usr/share/factory/etc 6) Copy kernel and initrd to $T/usr/somewhere Now the new arch snapshot is ready to be used:-). I only need to copy that on the target machine it is intended for (using btrfs send/receive, but that is still untested), copy the kernel/initrd from that snapshot into /boot and create a new boot loader entry for the root:my-arch:foo root subvolume I already have on that machine with the new usr:something:new-snapshot subvol as its /usr. Reboot. As part of every reboot something like a "factory reset" happens (I wipe /etc and copy the stuff in the factory directory during early boot), so that /etc is always in the state it was intended to be. To get back to an earlier usr-snapshot I just reboot again and select one of the older bootloader entries. Does that help? Actually the process currently still involves ostree to store/distribute and install directory images. I did describe the process I am currently moving to, even though it is not yet fully tested. It is a lot simpler to describe. PS: Yeap, my base systems are pretty static: I do want my basic setup to always work. The mutable parts of my system are the chroots I develop in. I can create those with the exact same system as my base systems, but I can also just run pacman in there to add more stuff. Best Regards, Tobias