Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Can't move working directiory to another dataset #812

@gryffcom

Description

@gryffcom

I need to move the cbsd dataset to another location in the same pool. I do this using zfs send/recv. Next, I change the path to the working directory in rc.conf, correct local.sqlite in ~cbsd/var/db and ~cbsd/vm/.
I restarted the host computer and disabled the original dataset. When I started the bhyve VM, I see that cbsd is still trying to use the old path to start the virtual machine, and therefore the virtual machine does not start in the new location.
After cbsd bstart opn for the new dataset (/var/cbsd), I get:
/usr/local/cbsd/subr/cbsdinit.subr: cannot create /cbsd/ver: No such file or directory
For cd ~cbsd, I get a message that such a directory does not exist.

What am I doing wrong or doing too much? What is my mistake?

Here is a detailed sequence of my actions.
The original VM is located in the /cbsd dataset.
The new VM is in /var/cbsd.
The name of the virtual machine being transferred is opn.

  1. sudo cbsd bstop opn
  2. sudo cbsd bls //check all VMs are stopped
  3. snapshots:
    a. sudo zfs snap aoscar/cbsd@migrate
    b. sudo zfs snap aoscar/cbsd/opn@migrate
    c. sudo zfs snap aoscar/cbsd/opn/dsk1.vhd@migrate
  4. send/receive:
    a. sudo zfs send aoscar/cbsd@migrate | sudo zfs recv aoscar/var/cbsd
    b. sudo zfs send aoscar/cbsd/opn@migrate | sudo zfs recv -u aoscar/var/cbsd/opn
    c. sudo zfs send aoscar/cbsd/opn/dsk1.vhd@migrate | sudo zfs recv aoscar/var/cbsd/opn/dsk1.vhd
  5. sudo zfs mountpoint=/var/cbsd/vm/opn aoscar/var/cbsd/opn
  6. rc.conf: cbsd_workdir="/cbsd" → cbsd_workdir="/var/cbsd"
  7. to check and correct links:
    a. sudo ls -la /var/cbsd/jails-system | grep opn
    * opn -> /cbsd/vm/opn
    b. sudo ln -sf /var/cbsd/vm/opn /var/cbsd/jails-system/opn //it doesn't work.
    c. sudo rm /var/cbsd/jails-system/opn
    d. sudo ln -s /var/cbsd/vm/opn /var/cbsd/jails-system/opn
    e. sudo ls -la /var/cbsd/vm/opn | grep dsk
    * dsk1.vhd -> /dev/zvol/aoscar/cbsd/opn/dsk1.vhd
    f. sudo ln -sf /dev/zvol/aoscar/var/cbsd/opn/dsk1.vhd /var/cbsd/vm/opn/dsk1.vhd
  8. to correct /cbsd/var/db sqlite:
    a. su
    b. cd /var/cbsd/var/db
    c. sqlite3 inv.oscar.sqlite '.dump' > x.sql
    d. edit x.sql (/cbsd → /var/cbsd)
    e. mv inv.oscar.sqlite inv.oscar.sqlite-00.bak
    f. sqlite3 inv.oscar.sqlite < x.sql
  9. to correct vm sqlite:
    a. cd /var/cbsd/vm/opn
    b. sudo sqlite3 local.sqlite '.dump' > x.sql
    c. to edit x.sql:
    * INSERT INTO pcibus VALUES(2,'virtio-blk',4,0,0,'/cbsd/vm/opn/dsk1.vhd',1); → INSERT INTO pcibus VALUES(2,'virtio-blk',4,0,0,'/var/cbsd/vm/opn/dsk1.vhd',1);
    * INSERT INTO pcibus_run VALUES(1406,'virtio-blk',4,0,0,'/cbsd/vm/opn/dsk1.vhd',1); → INSERT INTO pcibus_run VALUES(1406,'virtio-blk',4,0,0,'/var/cbsd/vm/opn/dsk1.vhd',1);
    d. mv local.sqlite local.sqlite-00.bak
    e. sqlite3 local.sqlite < x.sql
  10. to destroy snaps:
  11. sudo zfs destroy aoscar/cbsd@migrate
  12. sudo zfs destroy aoscar/cbsd/opn@migrate
  13. sudo zfs destroy aoscar/cbsd/opn/dsk1.vhd@migrate
  14. sudo zfs destroy aoscar/var/cbsd@migrate
  15. sudo zfs destroy aoscar/var/cbsd/opn@migrate
  16. sudo zfs destroy aoscar/var/cbsd/opn/dsk1.vhd@migrate
  17. restart host
  18. sudo zfs unmount aoscar/cbsd
  19. sudo cbsd bstart opn
    The result is:
    /usr/local/cbsd/subr/cbsdinit.subr: cannot create /cbsd/ver: No such file or directory
    ......
    env workdir=/var/cbsd cbsd initenv
    /usr/local/cbsd/subr/cbsdinit.subr: cannot create /cbsd/ver: No such file or directory
    /usr/local/cbsd/subr/cbsdinit.subr: cannot create /cbsd/ver: No such file or directory
    ......
~ % zfs list
NAME                                            USED  AVAIL  REFER  MOUNTPOINT
aoscar                                         64.1G  34.7G    96K  none
aoscar/ROOT                                    6.75G  34.7G    96K  none
aoscar/ROOT/14.2-RELEASE-p2_2025-05-19_045015   152K  34.7G  2.91G  /
aoscar/ROOT/14.2R-p1                           4.12M  34.7G  1.71G  /
aoscar/ROOT/14.2R-p2                           6.74G  34.7G  3.01G  /
aoscar/cbsd                                    23.3G  34.7G  7.32G  /cbsd
aoscar/cbsd/fbsd15                              160K  34.7G    96K  /cbsd/jails-data/fbsd15-data
aoscar/cbsd/fw                                  160K  34.7G    96K  /cbsd/jails-data/fw-data
aoscar/cbsd/opn                                16.0G  34.7G   480K  /cbsd/vm/opn
aoscar/cbsd/opn/dsk1.vhd                       7.04G  43.7G  6.37G  -
aoscar/home                                     801M  34.7G   796M  /home
aoscar/tmp                                      620K  34.7G   620K  /tmp
aoscar/usr                                     8.16G  34.7G    96K  /usr
aoscar/usr/fbsd15                              1.44G  34.7G    96K  /usr/fbsd15
aoscar/usr/fbsd15/dsk1.vhd                     1.44G  34.7G  1.37G  -
aoscar/usr/fw                                  6.73G  34.7G    96K  /usr/fw
aoscar/usr/fw/dsk1.vhd                         6.73G  34.7G  6.40G  -
aoscar/usr/ports                                 96K  34.7G    96K  /usr/ports
aoscar/usr/src                                   96K  34.7G    96K  /usr/src
aoscar/var                                     25.0G  34.7G    96K  /var
aoscar/var/audit                                 96K  34.7G    96K  /var/audit
aoscar/var/cbsd                                13.7G  34.7G  7.32G  /var/cbsd
aoscar/var/cbsd/opn                            6.37G  34.7G   472K  /var/cbsd/vm/opn
aoscar/var/cbsd/opn/dsk1.vhd                   6.37G  34.7G  6.37G  -
aoscar/var/crash                                 96K  34.7G    96K  /var/crash
aoscar/var/log                                 11.3G  34.7G  11.3G  /var/log
aoscar/var/mail                                 612K  34.7G   164K  /var/mail
aoscar/var/tmp                                   96K  34.7G    96K  /var/tmp
~ % zfs mount
aoscar/ROOT/14.2R-p2            /
aoscar/home                     /home
aoscar/tmp                      /tmp
aoscar/var/log                  /var/log
aoscar/usr/ports                /usr/ports
aoscar/usr/src                  /usr/src
aoscar/var/audit                /var/audit
aoscar/cbsd                     /cbsd
aoscar/var/cbsd                 /var/cbsd
aoscar/var/tmp                  /var/tmp
aoscar/var/crash                /var/crash
aoscar/var/mail                 /var/mail
aoscar/cbsd/opn                 /cbsd/vm/opn
aoscar/var/cbsd/opn             /var/cbsd/vm/opn
aoscar/cbsd/fw                  /cbsd/jails-data/fw-data
aoscar/cbsd/fbsd15              /cbsd/jails-data/fbsd15-data

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions