I had once seriously broken my root dataset.
Here is how i fixed it:
- Boot with an usb stick
- Did an altroot import of the zpool of this dataset , "zpool import -f -R /mnt/altroot nomadbsd-zroot "
- Make mount directory "mkdir /mnt/test"
- Performed a legacy mount of / on it, ie "mount -t zfs nomadbsd-zroot/ROOT/default /mnt/test"
- Made a backup of etc , "cp -vfR /mnt/test/etc directory /mnt/test/etc_old"
- Performed a "chflags -R noschg /mnt/test"
-Grabbed base.txz , kernel.txz from:
-Untarred these files into the mounted /mnt/test, ie "cd /mnt/test ; tar xvfz base.txz ; tar xvfz kernel.txz
-After it my system rebooted normally.
-then i did "pkg update -f" to reinstall all packages
This method works even if you did by accident
I don't now if it's clear what i want to achieve & how.Code:rm -fR /usr/local rm -fR /usr/bin rm -fR /bin
# zpool import -f -R /mnt/zroot zroot
# mkdir /mnt/test
# mount -t zfs zroot/ROOT/31-03-2022-b /mnt/test
# cp -vfR /mnt/test/etc directory /mnt/test/etc_old
# cp: /mnt/test/etc_old is not a directory
# mkdir /mnt/test/etc_old
# cp -vfR /mnt/test/etc directory /mnt/test/etc_old
......
/mnt/test/etc/X111 -> /mnt/test/etc_old/etc/X111
---> cp: directory: No such file or directory
=> 40 1953525095 da4 GPT (932G)
40 532480 1 efi (260M)
532520 1024 2 freebsd-boot (512K)
533544 984 - free - (492K)
534528 4194304 3 freebsd-swap (2.0G)
4728832 1948794880 4 freebsd-zfs (929G)
1953523712 1423 - free - (712K)
=> 40 976773095 ada0 GPT (466G)
40 532480 1 efi (260M)
532520 1024 2 freebsd-boot (512K)
533544 984 - free - (492K)
534528 4194304 3 freebsd-swap (2.0G)
4728832 972044288 4 freebsd-zfs (464G)
976773120 15 - free - (7.5K)
# zpool import -f -R /mnt/zroot2 zroot2
ok
marietto@marietto:/mnt/zroot2 # ls
boot dev tmp usr var zroot zroot2
marietto@marietto:/mnt/zroot2 # cd zroot2
marietto@marietto:/mnt/zroot2/zroot2 # ls
Data Informations backup-freebsd-zfs