Trident Beta 3: FreeBSD 11.2 chroot to Trident possible?


I screwed up my package management on Trident Beta 3 so I don’t get a display manager and also no text console after boot. I also have FreeBSD 11.2 installed and thought that I could fix this problem using a chroot from FreeBSD 11.2 to Trident. So I booted it and imported “tank” to /mnt and tried a chroot to /mnt

chroot /mnt /usr/local/bin/bash

and got an error message that /usr/local/bin/bash doesn’t exist. Actually

find /mnt -name bash

shows no results. So where is it?


why not install into another BE?

you’d keep youre ~/HOME directory intact


Yes, that would be an option. But I’m just wondering: where are big parts of the Trident installation? There is no /bin, no /usr/bin altough I imported the whole “tank” using

zpool import -f tank -R /mnt


zfs list and look at the mountpoints.
there it a tank/ROOT with mount point / but nothing for a mount point of /usr/local, so that means /usr/local is under tank/ROOT.
That is the TrueOS dataset schema at least.
You did zpool import -f tank, did you already have a tank zpool? What does ls -ltr /mnt show?
My TrueOS (I’m assuming Trident would be the same /similar) has:
zfs list
tank 33.2G 188G 88K none
tank/ROOT 17.6G 188G 88K none
tank/ROOT/12.0-CURRENT-up-20180316_031802 304K 188G 5.63G /
tank/ROOT/12.0-CURRENT-up-20180325_093028 304K 188G 5.24G /
tank/ROOT/12.0-CURRENT-up-20180609_051435 17.6G 188G 5.36G /
tank/ROOT/initial 216K 188G 3.65G /mnt
tank/tmp 376K 188G 376K /tmp
tank/usr 15.6G 188G 88K none
tank/usr/home 15.6G 188G 88K /usr/home
tank/usr/home/username 15.6G 188G 15.6G /usr/home/username
tank/usr/obj 88K 188G 88K /usr/obj
tank/var 6.16M 188G 88K none
tank/var/audit 88K 188G 88K /var/audit
tank/var/log 5.78M 188G 5.78M /var/log
tank/var/mail 112K 188G 112K /var/mail
tank/var/tmp 96K 188G 96K /var/tmp

so you may need to poke around a bit more for where things are mounted. zfs list should tell you.

Also, the Trident or TrueOS (FreeBSD 12 ABI) /usr/local/bin/bash isn't 
likely to run on top of the FreeBSD 11 kernel.
The OP is better off following your suggestion to install a new Trident BE
even if he manages to mount the right ZFS datasets in the right places.



ZFS is still a bit confusing for me :wink:
After booting FreeBSD 11.2 and importing tank:

ls -ltr /mnt
total 21
drwxr-xr-x   2 root  wheel  512 Sep  5 19:33 mnt
drwxr-xr-x   8 root  wheel  512 Sep  5 19:33 usr
drwxr-xr-x   6 root  wheel  512 Sep  5 19:33 var
drwxrwxrwt  16 root  wheel   32 Oct  6 21:36 tmp

zfs list
NAME                                        USED  AVAIL  REFER  MOUNTPOINT
tank                                       11.0G  35.5G    88K  none
tank/ROOT                                  8.40G  35.5G    88K  none
tank/ROOT/12.0-CURRENT-up-20181006_191147  8.39G  35.5G  5.22G  /mnt
tank/ROOT/initial                          9.66M  35.5G  4.49G  /mnt/mnt
tank/tmp                                    188K  35.5G   188K  /mnt/tmp
tank/usr                                   2.56G  35.5G    88K  none
tank/usr/home                              2.55G  35.5G  2.55G  /mnt/usr/home
tank/usr/jails                               88K  35.5G    88K  /mnt/usr/jails
tank/usr/obj                                 88K  35.5G    88K  /mnt/usr/obj
tank/usr/ports                               88K  35.5G    88K  /mnt/usr/ports
tank/usr/src                                 88K  35.5G    88K  /mnt/usr/src
tank/var                                   1.18M  35.5G    88K  none
tank/var/audit                               88K  35.5G    88K  /mnt/var/audit
tank/var/log                                828K  35.5G   828K  /mnt/var/log
tank/var/mail                               112K  35.5G   112K  /mnt/var/mail
tank/var/tmp                                 96K  35.5G    96K  /mnt/var/tmp

find /mnt -name bash: no results

zpool import -f tank/usr -R /mnt/usr/                      

cannot import 'tank/usr': no such pool available                                

So I can’t import a subdirectory of a pool. But why wasn’t /bin, /usr/bin, /usr/local etc imported?


Well, at least a chroot from Trident to FreeBSD 11.2 works.

The OP already chose to make a fresh install of Trident, using a backup of the home directory :wink:

FreeBSD 11 binaries should just work under TrueOS and Trident
which are running on top of FreeBSD 12. Backwards but not forwards
ABI compatibility.

TrueOS/Trident recovery still needs work in the cases
where the bootloader doesn't let you select from previous

I think that's only an issue when booting via Rod Smith's rEFInd.
I believe GRUB and BSD bootloader allow you to select a BE.


I use the BSD boot loader installed by FreeBSD and updated by Trident. Well I still have to learn about using BEs efficiently.


On my sample of 1 UEFI system (dedicated TrueOS install), rEFI allows you to select what “next loader” to run. On this system, it goes to the FreeBSD bootloader that allows you to select BEs.


Confirmed using VirtualBox guest with EFI emulation enabled.

Also confirmed on real hardware, though I had to add this setting 
to /boot/loader.conf.local for the BSD Loader to display on screen: