workstation-ostree-config/README-install-inside.md
2017-11-20 10:21:51 -05:00

2.8 KiB

Installing inside an existing system

A really neat feature of OSTree is that you can parallel install inside your existing OS. Let's try that, we first make sure we have the ostree packages:

yum -y install ostree ostree-grub2

Next, we add /ostree/repo to the filesystem:

ostree admin init-fs /

Add a remote which points to the Fedora Rawhide content:

ostree remote add --set=gpg-verify=false fedora-ws-rawhide https://kojipkgs.fedoraproject.org/compose/ostree/rawhide/

Pull down the content (you can interrupt and restart this):

ostree --repo=/ostree/repo pull fedora-ws-rawhide:fedora/rawhide/x86_64/workstation

Initialize an "os" for this, which acts as a state root.

ostree admin os-init fedora

For EFI systems: currently ostree uses the presence of /boot/grub2/grub.cfg to detect a BIOS system, but that can be present on systems booted with EFI as well. If you boot with EFI (/sys/firmware/efi exists), then you need to move /boot/grub2/grub.cfg aside:

mv /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

Since this file is not used on a EFI system, this won't break the operation of your current system. While you are at it, back up your existing grub config:

cp /boot/efi/EFI/fedora/grub.cfg /boot/efi/EFI/fedora/grub.cfg.bak

Deploy; we use enforcing=0 to avoid SELinux issues for now, and --karg=rghb=0 to avoid a hang with Plymouth (these aren't needed if deploying Fedora 26 currently).

ostree admin deploy --os=fedora --karg-proc-cmdline --karg=enforcing=0 --karg=rhgb=0 fedora-ws-rawhide:fedora/rawhide/x86_64/workstation

To initialize this root, you'll need to copy over your /etc/fstab, /etc/locale.conf, /etc/default/grub at least, along with the ostree remote that we added:

for i in /etc/fstab /etc/default/grub /etc/locale.conf /etc/ostree/remotes.d/fedora-ws-rawhide.conf ; do cp $i /ostree/deploy/fedora/deploy/$checksum.0/$i; done

If you have a separate /home mount point, you'll need to change that fstab copy to refer to /var/home. If you don't have a separate /home mount point, then you need to make sure that a symlink will be created:

echo 'L /var/home - - - - ../sysroot/home' > /ostree/deploy/fedora/deploy/$checksum.0/etc/tmpfiles.d/00rpm-ostree.conf

You'll also need to copy your user entry from /etc/passwd, /etc/group, and /etc/shadow into the new /etc/, and add yourself to the wheel group in /etc/group. Don't copy just copy these files literally, however, since the system users and groups won't be the same.

For BIOS systems: while ostree regenerated the bootloader configuration, it writes config into /boot/loader/grub.cfg. On a current grubby system, you'll need to copy that version over:

cp /boot/loader/grub.cfg /boot/grub2/grub.cfg