Repair existing ostree or completely remove and start again

I’m stuck with a broken dual-boot environment. I have Fedora 29 installed and working well. I had created an ostree and booted Silverblue on it with some success. At some point when cleaning up my system I deleted something in /ostree/deploy and it got all messed up. I ended up completely deleting my /ostree directory and doing again…

ostree admin init-fs /
ostree --repo=/ostree/repo pull atomic:fedora/$(lsb_release -sr)/x86_64/silverblue
ostree admin os-init fedora

but now I get with nearly every command:

error: Parsing deployment 0 in stateroot ‘fedora’: readlinkat: No such file or directory

with the os-init command or status or whatever.

I’m guessing there is somewhere besides /ostree where something is stored. Maybe in /var. I haven’t found it. I’d very much like to create a new /ostree and take a look at this technology. Any insight as to how I can fix this would be greatly appreciated.

Try the command rpm-ostree status, it should display the deployments in the order they are presented at boot with the current one highlighted with a dot.
You may also want to take a read at this location>https://ostree.readthedocs.io/en/latest/manual/adapting-existing/ it seems to be relevant to your particular situation at this time.

Thank you, but this doesn’t seem relevant at all. I’m not running in a SB environment, but in standard Fedora-29. I see

rpm-ostree status

error: This system was not booted via libostree; cannot operate

so it appears rpm-ostree is only usable inside a containerized OS.

The link appears to be also dealing with rpm-ostree functionality.

Some additional things I’ve tried:

ostree fsck

Validating refs…
Validating refs in collections…
Enumerating objects…
Verifying content integrity of 1 commit objects…
fsck objects (105604/105604) [=============] 100%

ostree refs

atomic:fedora/29/x86_64/silverblue

ostree prune

Total objects: 105604
No unreachable objects

ostree ls atomic:fedora/29/x86_64/silverblue

d00755 0 0      0 /
l00777 0 0      0 /bin -> usr/bin
l00777 0 0      0 /home -> var/home
l00777 0 0      0 /lib -> usr/lib
l00777 0 0      0 /lib64 -> usr/lib64
l00777 0 0      0 /media -> run/media
l00777 0 0      0 /mnt -> var/mnt
l00777 0 0      0 /opt -> var/opt
l00777 0 0      0 /ostree -> sysroot/ostree
l00777 0 0      0 /root -> var/roothome
l00777 0 0      0 /sbin -> usr/sbin
l00777 0 0      0 /srv -> var/srv
d00755 0 0      0 /boot
d00755 0 0      0 /dev
d00755 0 0      0 /proc
d00755 0 0      0 /run
d00755 0 0      0 /sys
d00755 0 0      0 /sysroot
d01777 0 0      0 /tmp
d00755 0 0      0 /usr
d00755 0 0      0 /var

seems my repo is ok. But then

ostree admin cleanup

error: Parsing deployment 0 in stateroot ‘fedora’: readlinkat: No such file or directory

ostree admin status

error: Parsing deployment 0 in stateroot ‘fedora’: readlinkat: No such file or directory

I see,
Even so, that link is for ostree, which is the underlying technology of rpm-ostree, and there are other manuals there which may be more relevant to you in this case. But, that doesn’t answer the question you posted. IMHO, I would just blow it away and start over, unless there is a compelling reason to diagnose the problem.

That’s exactly what I tried to do and got into this predicament. I deleted the /ostree directory completely. That doesn’t seem to be enough, however. I guess something else is still hanging around. Maybe for podman or runc?

I don’t see anything for podman images as root.

I have a fully functional and necessary fedora-29 install on this system, so won’t be wiping that.

Likely something in /boot still causing issues. See workarounds in Issue #26: rpm-ostreed service won't start - teamsilverblue - Pagure.io and ostree init fails with readlinkat error · Issue #1459 · ostreedev/ostree · GitHub.

1 Like

Certainly not! I was referring to the Silverblue install specifically, and just installing over it in it’s current location with automatic partitioning initially, then tweak it prior to install if/as needed.
But I see @jlebon has answered.

SOLVED:

Thank you both for your feedback. I had an old grub conf file in /boot/loader/entries.

rm /boot/loader/entries/ostree-1-fedora.conf

and error is gone. That message is so cryptic I’m amazed you could point me to /boot from it.

I’m on my way again to recovery.

ostree admin os-init fedora
ostree/deploy/fedora initialized as OSTree root