Hi, sorry for the big delay, i had stayed away from messing with system for awhile..
I updated the scripts, but as they are the latest, they work as before, i assume they do the check for updates..
But based on the conversation above, fact is i really don’t need these anymore, as the issues there was before with zfs seems to be resolved, so i will just upgrade as normal for now..
Anyways thanks to @glb and other for all the help and effort!
This does not work with zfs. Not for me anyway. The offline transaction fails to find the ‘disks’ and mount them (any zfs partitions I’ve specified in my /etc/fstab), despite the kernel module loading fine.
Hello, i’ve been away from messing with system, so sorry i didn’t notice tyour message. I trust you resolved your issues?
Reason i write to this thread is i’m preparing now to upgrade to f43 on my root on ZFS system.
First i will do it in a VM clone of my actual system.
Running a KVM virtual machine that is as close as possible to the configuration of my main system has proven invaluable, especially when running a non-standard setup. like root on ZFS.
Testing things can require a lot of reboots, and doing that on the main system would be unbearably painful, when you have multiple live news feeds and millions of web pages open on desktop.. So now i won’t do anything without testing it on the VM first.
In addition to that i use zfsbootmenu, so i will always have a snapshot of my root before doing anything, that i can easily roll back to if anything breaks. Invaluable if i need my desktop for something else, and can’t afford it being down.
So, will report here about any issues regarding root on ZFS.
paging @glb here if he wishes to add any input ( hi and nice to see you btw, happy holidays )
Right.. I wonder if i should try to skip the offline upgrade method. So upgrade commands on a updated system with all apps closed should be:
systemctl isolate multi-user.target
dnf system-upgrade --releasever=43
rpmconf -a
I will try this and also the standard dnf system-upgrade download --releasever=43 on the VM and see which is better, as i also want to see errors, and possibly control the global config stuff manually..
(one example is the sshd_config file which has a low number for max login attempts, i have more than 6 ssh keys loaded in ssh agent, so i must increase the limit manually every damn time on every system or ssh login fails.. sigh.. )
so BAD idea. This might be a bug the package maintainers would like to know, so anyone knowledgeable enough could report this bug?
Also: running clean-rpm-gpg-pubkey seems to exit with a ZFS repo related issue:
# clean-rpm-gpg-pubkey
Downloading file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-43-x86_64 for:
Fedora 43 - x86_64 (/etc/yum.repos.d/fedora.repo)
Fedora 43 openh264 (From Cisco) - x86_64 (/etc/yum.repos.d/fedora-cisco-openh264.repo)
Fedora 43 openh264 (From Cisco) - x86_64 - Debug (/etc/yum.repos.d/fedora-cisco-openh264.repo)
Fedora 43 openh264 (From Cisco) - x86_64 - Source (/etc/yum.repos.d/fedora-cisco-openh264.repo)
Fedora 43 - x86_64 - Debug (/etc/yum.repos.d/fedora.repo)
Fedora 43 - Source (/etc/yum.repos.d/fedora.repo)
Fedora 43 - x86_64 - Updates (/etc/yum.repos.d/fedora-updates.repo)
Fedora 43 - x86_64 - Updates - Debug (/etc/yum.repos.d/fedora-updates.repo)
Fedora 43 - Updates Source (/etc/yum.repos.d/fedora-updates.repo)
Fedora 43 - x86_64 - Test Updates (/etc/yum.repos.d/fedora-updates-testing.repo)
Fedora 43 - x86_64 - Test Updates Debug (/etc/yum.repos.d/fedora-updates-testing.repo)
Fedora 43 - Test Updates Source (/etc/yum.repos.d/fedora-updates-testing.repo)
Downloading file:///etc/pki/rpm-gpg/RPM-GPG-KEY-openzfs-fedora-43 for:
ZFS on Linux for Fedora 43 (/etc/yum.repos.d/zfs.repo)
ZFS on Linux for Fedora 43 - Source (/etc/yum.repos.d/zfs.repo)
ZFS on Linux for Fedora 43 - Testing (/etc/yum.repos.d/zfs.repo)
ZFS on Linux for Fedora 43 - Testing Source (/etc/yum.repos.d/zfs.repo)
curl: (37) Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-openzfs-fedora-43
Could not execute curl
And finally for some reason the rescue kernel had not been generated, even though dracut-config-rescue was installed. Don’t know if this is an issue, or important at all.. I did generate it as per the guide..
So, just some notes from the upgrade on Fedora root on ZFS system.. seems like a pretty easy process..
I’ve hit that error as well. I work around it by setting IdentitiesOnly yes and IdentityFile ~/.ssh/my-server-NN-ssh-key in my ~/.ssh/config under a Host ... section so that “server-nn” will use the right key on the first try rather than trying a bunch of incorrect keys and getting locked out. E.g. :
Host node-??
PreferredAuthentications publickey
IdentitiesOnly yes
IdentityFile ~/.ssh/%n
User phong
I’ve never tried to use that script, but if you want to do that, I’d try adding -x zfs\* to the dnf remove ... command. Personally though, I think it is probably better to leave a few older kernels+initramfs installed as fallback options in case you mangle your primary kernel+initramfs with some random driver update or something in the future.
I’m not sure what is happening there. It’s another command that I’ve never used. FWIW, that file does exist on my system:
$ ls -al /etc/pki/rpm-gpg/RPM-GPG-KEY-openzfs-fedora-43
lrwxrwxrwx. 1 root root 24 Nov 11 18:00 /etc/pki/rpm-gpg/RPM-GPG-KEY-openzfs-fedora-43 -> RPM-GPG-KEY-openzfs-2022
Do you have a file like the following on your system?:
Personally I’d rely on the fallback kernels rather than trying to keep the rescue kernel updated. One reason being that there is no guarantee that the rescue kernel actually works since it likely has never been used. The fallback kernels are just the previous “known good” kernels that you had used previously.
Good info, that is on the client from which i connect right? Might try to implement that.
Yeah, previously i’ve ran it without issues on the test VM (just to test all the commands in the guide) but i do leave older kernels on my main system. Still, it’s in the guide, and from memory it didn’t remove zfs before, so i assume it’s a bug..
yeah, same as above, and i do always have snapshots to rollback to using zfsbootmanager, so i actually never even rely on older kernels or rescue kernels, if an update results in a unbootable system, i rollback the whole root including /boot, and leave it to another day, i’m too old to try to rescue my system, i need my desktop 24/7
Nope, I’ve still never found a proper solution. My workaround is to comment out all of my ZFS related entries in /etc/fstab - thankfully I have nothing critical there (at least, critical for the OS/upgrade operation).
To be fair, there is a system for notifying users about “significant” changes. It’s the Fedora Changes which begin as change proposals posted to this forum. But there is a lot that seems to slip under that “significant” threshold.
i see a future where all system and user configuration settings are maintained in a giant extremely complicated file, like the microsoft windows registry, and is maintained and edited using AI.
In that case AI would have realized the user has fstab entries needed early in boot process, and conserved them automatically
A user should be able to open AI chat on the desktop, and say:
Since i upgraded my system, some of my partitions fail to mount. fix it. And also, everytime i open my budget spreadsheet, i want it to open on my right side screen, maximized, and scrolled down to line 47. Make it so.
And the system should do all this. that’s what i want. a true AI OS.
Technology has an increasingly large impact over society. We should have agency over the technology that impacts our lives. Open source is how we provide that agency. We’re now in a time period with a new disruptive technology (generative AI) that – regardless if you think it is real or not, is having real impact on computing. Fedora and other open source projects need to be able to provide the benefits of this new technology, the open source way and using open source software. Small, local models that are easy for our users to deploy on their own systems using open source tooling will provide them the ability to benefit AI’s strengths without having to sacrifice the privacy of their data.
But IMHO, the old “Garbage in, garbage out” rule still reigns supreme. Such a system would probably work best if its inputs were limited to the system’s man pages and I wouldn’t expect much. Just my 2¢.
@unused-hardhat I have not tried (or heard of) zfsprops, I’ve only ever used /etc/fstab as this seems to be the Linux way. I’ll look into it.
@glb I’ll look into this too, but it would seem to me that fstab is getting included since the contents of that file affect whether or not my system upgrade succeeds
Well, the situation might be a little more complicated than that.
Looking at /usr/lib/dracut/dracut-functions.sh:
# find_block_device <mountpoint>
# Prints the major and minor number of the block device
# for a given mountpoint.
# Unless $use_fstab is set to "yes" the functions
# uses /proc/self/mountinfo as the primary source of the
# information and only falls back to /etc/fstab, if the mountpoint
# is not found there.
# Example:
# $ find_block_device /usr
# 8:4
find_block_device() {
local _dev _majmin _find_mpt
_find_mpt="$1"
if [[ $use_fstab != yes ]]; then
[[ -d $_find_mpt/. ]]
findmnt -e -v -n -o 'MAJ:MIN,SOURCE' --target "$_find_mpt" | {
while read -r _majmin _dev || [ -n "$_dev" ]; do
if [[ -b $_dev ]]; then
if ! [[ $_majmin ]] || [[ $_majmin == 0:* ]]; then
_majmin=$(get_maj_min "$_dev")
fi
if [[ $_majmin ]]; then
printf "%s\n" "$_majmin"
else
printf "%s\n" "$_dev"
fi
return 0
fi
if [[ $_dev == *:* ]]; then
printf "%s\n" "$_dev"
return 0
fi
done
return 1
} && return 0
fi
# fall back to /etc/fstab
[[ ! -f "$dracutsysrootdir"/etc/fstab ]] && return 1
findmnt -e --fstab -v -n -o 'MAJ:MIN,SOURCE' --target "$_find_mpt" | {
while read -r _majmin _dev || [ -n "$_dev" ]; do
if ! [[ $_dev ]]; then
_dev="$_majmin"
unset _majmin
fi
if [[ -b $_dev ]]; then
[[ $_majmin ]] || _majmin=$(get_maj_min "$_dev")
if [[ $_majmin ]]; then
printf "%s\n" "$_majmin"
else
printf "%s\n" "$_dev"
fi
return 0
fi
if [[ $_dev == *:* ]]; then
printf "%s\n" "$_dev"
return 0
fi
done
return 1
} && return 0
return 1
}
It is quite possible that the failure (return 1) is happening in that first if block when use_fstab is not set to yes. I don’t know where that find_block_device function is being called from (or indeed that that is the actual problem), but ZFS pools tend to be backed by more than one block device and I doubt that this code is designed to work with them. Glancing at it just now, I’m not sure that use_fstab would help much either. You might be better off going with Unused-Hardhat’s previous suggestion.
Scratch all that. You’re right, if changing the contents of the file affects the update, then that probably isn’t the problem. Sorry, I don’t know what is going on. Personally, I never use the offline updater. I have no confidence in it.