bhyve How to duplicate a disk image?

Hi,

Was wondering if backing up or duplicating a disk0.img file is as easy as copying it into a new VM folder? Are there any snafus that could arise?

Thank you

Extra points: Can I also copy the UUID into a new conf file so Windows license will transfer as well?

Thanks
 
SSH keys generated on bootup of new install.
Cloning will be trouble. Regen keys for fix.
ssh-keygen

Two other things I can't remember right this minute.
 
SSH keys generated on bootup of new install.
Cloning will be trouble. Regen keys for fix.
ssh-keygen

Two other things I can't remember right this minute.


I don't understand what ssh keys have to do with it. Thanks.

Forgot to metion using Bhyve.
 
If you do not plan to start a new vm at the same time as the old one, then nothing needs to be done - just copy disk.img to another directory and edit path to it (in bhyve cmd line). Otherwise, create new tap interface for the new machine, change the port through which vncviewer will access the new vm, edit the list of passed thru devices that you plan to use in the new vm, edit vm name (in bhyve cmd line), start new vm and change hostname inside it. Restart new vm, and go to your microsoft personal account from the host. If synchronization with the cloud is enabled on the vm, you will see your new vm in your microsoft personal account. After that slmgr /xpr running inside vm must show registered Windows copy.

Edit. I don't use vm(8) , I use bhyve(8) directly.
 
Thing is I would like to at times duplicate the Windows VM by typing something like 'VM create -t uefi mynewvm' and copying the disk0.img file into the folder that is created using the same conf file because I don't want to buy a new Windows license each time.

Thanks
 
Yes, I understand. I have two FreeBSD hosts. Each of them has two Windows VMs. Three of them are copies of the first. I always have two Windows VMs running at the same time. I did it in the way described above.
For example, here are the startup scripts for two VMs:
Bash:
sudo bhyve -c 8,sockets=2,cores=2,threads=2 -m 16G -H -w -S \
  -s 0,hostbridge \
  -s 3,ahci-cd,/neat/iso/Win10_21H1_Russian_x64.iso \
  -s 4,ahci-hd,/neat/bsd/vms/w10.img \
  -s 5,virtio-net,tap0 \
  -s 7,passthru,216/0/0 \
  -s 29,fbuf,tcp=0.0.0.0:5900,w=1920,h=1200,wait \
  -s 30,xhci,tablet \
  -s 31,lpc \
  -l com1,stdio \
  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \
  w10
Bash:
sudo bhyve -c 8,sockets=2,cores=2,threads=2 -m 16G -H -w -S \
  -s 0,hostbridge \
  -s 3,ahci-cd,/quid/iso/Win10_21H1_Russian_x64.iso \
  -s 4,ahci-hd,/quid/bsd/vms2/w10_2.img \
  -s 5,virtio-net,tap1 \
  -s 7,passthru,134/0/0 \
  -s 29,fbuf,tcp=0.0.0.0:5901,w=1920,h=1200,wait \
  -s 30,xhci,tablet \
  -s 31,lpc \
  -l com1,stdio \
  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \
  w10_2
I entered the license only once, when installing the first VM.
But I don't know how to automate the duplication process using vm-bhyve.

two_win_vm.jpg
 
Oh, I just found out that my license allows me to have up to 10 Windows machines (I read this in my personal account on the microsoft site). But how could this happen?
 
If your VM is Windows read here especially if it's joined in AD

Thats for a fresh install. What I have is copy of an existing Windows 2016 Essentials bare bones server that I virtualized from a Macrium backup. The first time it loaded up in Bhyve the Windows license deactivated so I got another though I didn't spend a lot on it so not too bothered by its loss when it all went up in smoke. I'm hoping that after creating a new blank VM and copying the disk0.img file into the new directory for that VM and replacing the UUID and MAC address info from the original server.conf file Windows will reactivate again.

Thanks
 
FTR: duplicating a vm is a perfect use case for zfs clones.

Want to try something or upgrade a production VM? Clone it, spin it up in another VLAN (so it won't freak out if it sees itself and in case of windows just nuke its license), run all tests or updates and if you kept e.g. databases on another image you can even just switch out the updated C: image (possibly via zfs promote) and with a single reboot update the windows VM in a matter of a single "quick" reboot instead of waiting for that degenerated update process to finish (and fail on every second attempt even on the exact same image...).
 
sko

I used VM-Bhyve ‘VM Clone …’ command to clone my Server VM from Server 2016 to upgraded in place Server 2019 and all that did was create a clone off of a snapshot which ultimately freaked out when I spun up its parent image at same time causing irreversible damage to each VM. Not sure if ZFS clone command is similar or not but want independent clones that are not entangled. In any case forgot to mention using OEM Windows license fwiw.

Thanks for help.
 
sko

I used VM-Bhyve ‘VM Clone …’ command to clone my Server VM from Server 2016 to upgraded in place Server 2019 and all that did was create a clone off of a snapshot which ultimately freaked out when I spun up its parent image at same time causing irreversible damage to each VM. Not sure if ZFS clone command is similar or not but want independent clones that are not entangled. In any case forgot to mention using OEM Windows license fwiw.

Thanks for help.
Windows is always absolute BS when it comes to simple things like moving a VM. I currently also have to deal with such a degenerate piece of junk that decided it deactivates the license (and won't reactivate) after just getting some more CPU cores... Another Windows VM that has been migrated from KVM just won't boot at all - it had undergone the same procedure as the others (and of course every one had different errors) but this one just doesn't boot... It's just frustrating how much time has to be completely wasted time and time again on such crap if ANY other (real) OS will just happily boot on any hypervisor or hardware and can be moved around as you need...


But what I was referring to: with ZFS such clones are very quick, don't cost much space and can be rolled back easily if something goes wrong (even more so with automatic snapshots running in the background). Some of that also 'works' with file-backed images and COW-formats, but ZFS is much more effective in those regards.
I don't know if this is still the case, but back when I was locked in on using qcow-images and/or LVM for VMs (must be ~10 years now) the snapshot mechanism for *both* would just freeze the original file or volume, start to copy it and write any changes to a temporary file/volume - for disk images that change relatively quick (e.g. databases), this took forever and more than once filled the entire volume group, resulting in a hard stop any VM on that VG. One had to manually stop the cloning process, hoping it will succeed in recovering/submitting the temporary data (more than once this didn't work...) and then reboot the whole host...
This was one of my main selling points several years ago, for throwing LVM and file images out the window and replace everything with ZFS (and dumping linux for smartOS and FreeBSD...)

As for the original problem of cloning Windows VMs from a "master"-image: Sysprep is the only way this can work. Install everything you might need as Administrator (otherwise sysprep won't work!), wipe any system-specifics with sysprep and shut down. This is now your master-image and you don't want to boot that one up, because you'd have to run sysprep again. This image can now be cloned for new VMs and/or to upgrade + sysprep a newer image. Always keep that sysprepped master image at hand, because windows will always tailor itself to the "new" hardware at first start (i.e. even a newer hypervisor-version can cause that thing to freak out and get into a bluescreen-loop...). If you want/need to have an already activated image at hand to clone VMs from, use a separate clone for that.
I've used that process to distribute Windows 7 VMs to FreeBSD clients for ~2 years. The clients received an already activated (via volume license) and not re-syspreped master-image and then cloned that for each user that spun up a VM. Updates/changes were distributed via incremental zfs send|recv of snapshots of the master image, after which the user-clones were nuked and re-cloned (there was never any valuable user-data on the VMs, they were only used to run some proprietary software).
This worked reasonably well and if a single Windows VM decided to act up despite being identical to any others that worked fine, it just got nuked and re-cloned. So not having to deal with those typical windows problems was a relief - but the completely braindamaged windows activation process failed from time to time. So if you want to do this at scale, you might want to 'find a way around that'...
 
  • Thanks
Reactions: _al
So run Sysprep on your Windows VM before you clone it so that each Windows VM won’t trip up on itself but wonder should each VM have different Windows activation product keys as well after once reactivated? Furthermore after the Sysprep I suppose you have to promote its last snapshot so the disk0.img file is brought up to date and ready for backup, clone, or whatever?

Thanks again.
 
Asked Chatgpt:

What is best way to clone a Windows guest running under a Bhyve Host?

To clone a Windows guest running under a Bhyve host, you can follow these general steps:
  1. Shut down the Windows guest machine that you want to clone.
  2. Create a new disk image file for the cloned machine using the 'qemu-img' command. For example, to create a new 20GB image file named 'cloned-windows.img', use the following command:
    cssCopy code
    $ qemu-img create -f qcow2 cloned-windows.img 20G
    Note: You can adjust the size of the new disk image file as needed.
  3. Copy the original disk image file to the new disk image file. For example, if the original disk image file is named 'windows.img', use the following command:
    shellCopy code
    $ cp windows.img cloned-windows.img
  4. Start the cloned machine using the new disk image file. For example, to start the cloned machine using the 'cloned-windows.img' file, use the following command:
    cssCopy code
    $ bhyve -c 2 -m 4G -H -P -A \ -s 0:0,hostbridge \ -s 1:0,lpc \ -s 2:0,virtio-net,tap0 \ -s 3:0,ahci-hd,cloned-windows.img \ -s 31,lpc -l com1,stdio \ windows-clone
    Note: You may need to adjust the command to match the specifics of your Bhyve host configuration.
  5. Once the cloned machine is up and running, you may need to reactivate Windows to avoid any licensing issues.
By following these steps, you should be able to clone a Windows guest running under a Bhyve host.

Do I need to run Sysprep prior cloning?

Yes, it is recommended to run Sysprep prior to cloning a Windows virtual machine, especially if you plan to use the cloned machine in a production environment.
Sysprep is a Windows system preparation tool that removes all unique system information, such as security identifiers (SIDs) and hardware-related information, from the Windows installation. By running Sysprep, you essentially "generalize" the Windows installation, making it suitable for cloning to multiple machines.
If you do not run Sysprep prior to cloning a Windows virtual machine, you may encounter issues with duplicate SIDs and other system-related information, which can cause problems with networking, software activation, and other system functions.
To run Sysprep, you can follow these steps:
  1. Log in to the Windows virtual machine that you want to clone.
  2. Open a Command Prompt window as an administrator.
  3. Navigate to the Sysprep directory by typing the following command:
    bashCopy code
    cd C:\Windows\System32\Sysprep
  4. Double-click the 'Sysprep.exe' file to open the System Preparation Tool.
  5. In the System Preparation Tool window, select the 'Generalize' option, and choose 'Shutdown' in the 'Shutdown Options' section.
  6. Click 'OK' to start the Sysprep process.
Once the Sysprep process is complete, you can then clone the Windows virtual machine using the method of your choice.

Do I need to promote the image after Sysprep is done?

No, you do not need to promote the image after Sysprep is done. In fact, promoting the image is not necessary and may even cause problems if you plan to use the cloned image on multiple machines.
When you run Sysprep on a Windows virtual machine, it removes all unique system information, such as the computer name, security identifiers (SIDs), and other machine-specific data. This prepares the machine for cloning and allows you to create multiple virtual machines that are identical except for their unique settings and configurations.
After running Sysprep and shutting down the machine, you can then clone the virtual machine's hard disk image and use it to create new virtual machines. When you start each new virtual machine, it will automatically prompt you to enter the machine name, network settings, and other unique information.
It's important to note that if you plan to use the cloned image in a production environment, you may need to activate Windows and install any necessary drivers and software on each new virtual machine. However, you should not need to promote the image, as Sysprep has already prepared the image for cloning.

Can you please detail the steps again command at a time?

Sure! Here are the detailed steps for running Sysprep on a Windows virtual machine, command by command:
  1. Log in to the Windows virtual machine that you want to clone.
  2. Open a Command Prompt window as an administrator. To do this, right-click on the 'Start' menu button and choose 'Command Prompt (Admin)'.
  3. Navigate to the Sysprep directory by typing the following command:
    bashCopy code
    cd C:\Windows\System32\Sysprep
    This command changes the current directory to the Sysprep directory, which is where the Sysprep executable is located.
  4. Double-click the 'Sysprep.exe' file to open the System Preparation Tool. You can do this by typing the following command:
    Copy code
    Sysprep.exe
    This command runs the Sysprep executable and opens the System Preparation Tool.
  5. In the System Preparation Tool window, select the 'Generalize' option. This tells Sysprep to remove all system-specific information from the Windows installation.
  6. Choose 'Shutdown' in the 'Shutdown Options' section. This tells Sysprep to shut down the virtual machine after the Sysprep process is complete.
  7. Click 'OK' to start the Sysprep process. This begins the Sysprep process and prepares the virtual machine for cloning.
Once the Sysprep process is complete, the virtual machine will shut down automatically. You can then clone the virtual machine's hard disk image and use it to create new virtual machines. When you start each new virtual machine, it will prompt you to enter the machine name, network settings, and other unique information.

Does this work in FreeBSD host?


No, the steps I provided for running Sysprep are specific to Windows virtual machines. Since you are running the virtual machines under a Bhyve host, which is a virtualization solution for FreeBSD, you will need to use a different approach to prepare a Windows virtual machine for cloning.
One possible approach is to use the 'bsd-cloudinit' package, which is a tool for configuring and initializing virtual machines in a cloud environment. This package includes a 'cloudinit' script that can be used to prepare a Windows virtual machine for cloning.
Here are the high-level steps for using 'bsd-cloudinit' to prepare a Windows virtual machine for cloning:
  1. Install the 'bsd-cloudinit' package on your FreeBSD host. You can do this by running the following command:
    Copy code
    pkg install bsd-cloudinit
  2. Create a configuration file for the virtual machine. The configuration file should specify the details of the virtual machine, including the operating system, disk image, and other settings. You can use the 'vm-bhyve' tool to create the configuration file. For example, the following command creates a configuration file for a Windows 10 virtual machine:
    luaCopy code
    vm-bhyve create -s 4G -c 4 -t win10 -d /path/to/disk.img win10
  3. Edit the configuration file to include the 'cloudinit' script. Add the following lines to the configuration file:
    makefileCopy code
    loader="cloud-init"cloudinit_file="/path/to/cloudinit-script"
    Replace '/path/to/cloudinit-script' with the path to the cloudinit script you will create in the next step.
  4. Create a cloudinit script to prepare the Windows virtual machine for cloning. The cloudinit script should perform the same tasks as Sysprep, such as removing system-specific information and preparing the virtual machine for cloning. Here is an example cloudinit script that you can use as a starting point:
    arduinoCopy code
    #cloud-config sysprep: 'true' shutdown:'true'
    This script tells 'bsd-cloudinit' to run the Sysprep process and shut down the virtual machine after the process is complete.
  5. Start the virtual machine using the 'vm-bhyve' tool. For example, the following command starts the Windows 10 virtual machine:
    sqlCopy code
    vm-bhyve start win10
    When the virtual machine starts, 'bsd-cloudinit' will run the cloudinit script, which will prepare the virtual machine for cloning.
Once the virtual machine is shut down, you can then clone the virtual machine's hard disk image and use it to create new virtual machines. When you start each new virtual machine, it will prompt you to enter the machine name, network settings, and other unique information.

Can you please email me these instructions?

As an AI language model, I don't have access to email. However, you can easily copy and paste these instructions into a text editor or word processing software and save it for future reference. You can also bookmark this page or take a screenshot of these instructions for easy access later on.

So using cloudinit is best way to clone my FreeBSD Bhyve vm?

Using 'bsd-cloudinit' is a good way to prepare a Windows virtual machine for cloning under a FreeBSD Bhyve host. However, the best way to clone a virtual machine depends on your specific use case and requirements.
If you only need to clone a virtual machine once or twice, using 'bsd-cloudinit' or Sysprep may be sufficient. However, if you need to clone virtual machines frequently, or if you need to automate the cloning process, you may want to consider using other tools or methods, such as scripting or templates.
For example, you can create a virtual machine template that contains the base configuration of the virtual machine, such as the operating system, installed software, and basic settings. You can then use this template to quickly create new virtual machines with the same configuration, without having to go through the process of cloning and configuring each virtual machine manually.
Ultimately, the best way to clone a virtual machine depends on your specific requirements, including the frequency of cloning, the number of virtual machines you need to create, and the level of automation you require.

How about making a backup of my vm?

Making a backup of your FreeBSD Bhyve virtual machine is also an important task that can help you protect your data and ensure business continuity. There are several ways to make a backup of a Bhyve virtual machine, depending on your specific requirements.
One way to make a backup of a Bhyve virtual machine is to use the 'vm-bhyve' tool, which provides built-in support for backing up and restoring virtual machines. You can use the 'vm-bhyve' tool to take a snapshot of the virtual machine's disk image, which can then be used to restore the virtual machine to a previous state if necessary.
Here are the steps to create a backup of a Bhyve virtual machine using the 'vm-bhyve' tool:
  1. Stop the virtual machine. You can do this by running the following command:
    arduinoCopy code
    vm-bhyve stop <vmname>
    Replace '<vmname>' with the name of the virtual machine you want to back up.
  2. Take a snapshot of the virtual machine's disk image. You can do this by running the following command:
    phpCopy code
    vm-bhyve snapshot <vmname>
    This command will create a snapshot of the virtual machine's disk image and save it to the snapshots directory under the virtual machine's directory.
  3. Start the virtual machine again. You can do this by running the following command:
    phpCopy code
    vm-bhyve start <vmname>
    This will start the virtual machine and allow it to continue running.
To restore a virtual machine from a backup, you can use the 'vm-bhyve' tool to create a new virtual machine using the snapshot you created. Here are the steps to restore a virtual machine from a backup:
  1. Create a new virtual machine using the 'vm-bhyve' tool. You can do this by running the following command:
    phpCopy code
    vm-bhyve create -s <size> -c <cpus> -t <template> -d /path/to/snapshot <newvmname>
    Replace '<size>' with the size of the virtual machine's disk image, '<cpus>' with the number of virtual CPUs to allocate to the virtual machine, '<template>' with the template to use for the virtual machine, '/path/to/snapshot' with the path to the snapshot you want to use, and '<newvmname>' with the name of the new virtual machine.
  2. Start the new virtual machine. You can do this by running the following command:
    phpCopy code
    vm-bhyve start <newvmname>
    This will start the new virtual machine using the snapshot you created.
These steps will allow you to create backups of your Bhyve virtual machines and restore them if necessary. However, keep in mind that backups should be part of a larger disaster recovery plan that includes regular testing, off-site storage, and other measures to ensure business continuity in the event of a disaster or data loss.

I want to backup to a usb external hard drive. Is this possible?



Yes, you can backup your FreeBSD Bhyve virtual machine to an external USB hard drive. You can mount the USB drive on your FreeBSD host system and then use the 'vm-bhyve' tool to create a backup of your virtual machine on the USB drive.
Here are the steps to backup your Bhyve virtual machine to an external USB hard drive:
  1. Connect the USB drive to your FreeBSD host system. FreeBSD should automatically detect the USB drive and create a device file for it, such as '/dev/da0'.
  2. Mount the USB drive. You can do this by running the following command:
    bashCopy code
    mount /dev/da0 /mnt
    This will mount the USB drive on the '/mnt' directory.
  3. Stop the virtual machine. You can do this by running the following command:
    arduinoCopy code
    vm-bhyve stop <vmname>
    Replace '<vmname>' with the name of the virtual machine you want to backup.
  4. Create a backup of the virtual machine's disk image. You can do this by running the following command:
    javascriptCopy code
    vm-bhyve backup <vmname> /mnt/backup.img
    This will create a backup of the virtual machine's disk image and save it to the 'backup.img' file on the USB drive.
  5. Start the virtual machine again. You can do this by running the following command:
    phpCopy code
    vm-bhyve start <vmname>
    This will start the virtual machine and allow it to continue running.
  6. Unmount the USB drive. You can do this by running the following command:
    bashCopy code
    umount /mnt
    This will unmount the USB drive from the '/mnt' directory.
After completing these steps, you should have a backup of your Bhyve virtual machine on the USB drive. You can use this backup to restore the virtual machine to a previous state if necessary. Remember to regularly test your backups and store them in a secure location to ensure that you can recover your data in the event of a disaster or data loss.

You forgot to mention how to restore backup from usb drive?



You're right, my apologies. Here are the steps to restore a backup of a Bhyve virtual machine from an external USB hard drive:
  1. Connect the USB drive containing the backup of the virtual machine to your FreeBSD host system.
  2. Mount the USB drive. You can do this by running the following command:
    bashCopy code
    mount /dev/da0 /mnt
    Replace '/dev/da0' with the appropriate device file for your USB drive, and '/mnt' with the directory where you want to mount the drive.
  3. Stop the virtual machine. You can do this by running the following command:
    arduinoCopy code
    vm-bhyve stop <vmname>
    Replace '<vmname>' with the name of the virtual machine you want to restore from the backup.
  4. Restore the virtual machine's disk image from the backup. You can do this by running the following command:
    javascriptCopy code
    vm-bhyve restore <vmname> /mnt/backup.img
    Replace '<vmname>' with the name of the virtual machine you want to restore, and '/mnt/backup.img' with the path to the backup file on the USB drive.
  5. Start the virtual machine again. You can do this by running the following command:
    phpCopy code
    vm-bhyve start <vmname>
    This will start the virtual machine and allow it to continue running.
  6. Unmount the USB drive. You can do this by running the following command:
    bashCopy code
    umount /mnt
    This will unmount the USB drive from the '/mnt' directory.
After completing these steps, your Bhyve virtual machine should be restored from the backup on the USB drive. Remember to test the restored virtual machine to ensure that it is working properly, and to make regular backups to ensure that you can recover your data in the event of a disaster or data loss.

So this will backup the last snapshot taken or just the original disk.img image?



The vm-bhyve backup command creates a backup of the entire virtual machine disk image, including any snapshots that may be associated with it. So if you have taken snapshots of the virtual machine, the backup will include the latest state of the virtual machine's disk image and all of its snapshots at the time the backup was taken.
Note that the backup created by vm-bhyve backup is a full backup, meaning it contains a complete copy of the virtual machine's disk image, and it may take a long time to complete depending on the size of the disk image. Subsequent backups using this method will also create a full backup.
If you only want to backup the original disk image without any snapshots, you can simply make a copy of the disk image file. You can do this by running the following command:
bashCopy code
cp /path/to/vm/disk.img /mnt/backup.img
Replace '/path/to/vm/disk.img' with the path to the virtual machine's disk image file, and '/mnt/backup.img' with the path to the backup file on the USB drive. This will create a copy of the disk image file on the USB drive, which you can use to restore the virtual machine to its original state. However, keep in mind that this method will not backup any snapshots, so you may lose any changes made to the virtual machine after the snapshot was taken.

So I don’t need to use qemu to create backup.img?



No, you don't need to use QEMU to create a backup of a Bhyve virtual machine's disk image. The vm-bhyve backup command creates a backup of the virtual machine's disk image, including any snapshots that may be associated with it, and stores it in a compressed file format. This command uses the zfs send command to create a backup of the virtual machine's ZFS dataset, which contains the disk image and any snapshots.
The vm-bhyve backup command is a convenient way to create backups of Bhyve virtual machines, as it automates the backup process and creates a compressed backup file that can be easily stored and transferred. However, keep in mind that this method requires that the virtual machine's disk image be stored on a ZFS dataset, so if your virtual machine is not using ZFS, you may need to use a different backup method.

How come you suggested using qemu in the start of our conversation?



I apologize for any confusion I may have caused. I did not suggest using QEMU to create a backup of a Bhyve virtual machine's disk image. Instead, I provided instructions on how to use QEMU to clone a Windows guest running under a Bhyve host, as per your initial question.
Regarding backups, there are several ways to create backups of Bhyve virtual machines, including using the vm-bhyve backup command that I mentioned earlier. This command creates a compressed backup of the virtual machine's ZFS dataset, including the disk image and any snapshots. You can then store this backup file on an external USB hard drive or other storage device.
Alternatively, you can manually copy the virtual machine's disk image file to an external USB hard drive or other storage device, but keep in mind that this method will not backup any snapshots associated with the virtual machine.

Could I have used the DD command instead?



Yes, you can use the dd command to create a backup of a Bhyve virtual machine's disk image. The dd command creates a bit-for-bit copy of the source disk, which can be useful for creating an exact copy of the virtual machine's disk image.
To use dd to create a backup of a Bhyve virtual machine's disk image, you can run the following command:
bashCopy code
dd if=/dev/zvol/zroot/bhyve/vm1/disk0 bs=1m | gzip > /mnt/usb/backups/vm1.img.gz
In this example, replace /dev/zvol/zroot/bhyve/vm1/disk0 with the path to the virtual machine's disk image file, and replace /mnt/usb/backups/vm1.img.gz with the path to the backup file on the USB drive. This command will create a compressed backup of the virtual machine's disk image and write it to the specified file on the USB drive.
Keep in mind that the dd command can be slow for large disk images, and it will create a backup of the entire disk image, including any unused blocks. Therefore, it's generally recommended to use a more efficient backup tool such as vm-bhyve backup to create backups of Bhyve virtual machines.

How do I copy our entire conversation to clipboard?
 
  • Like
Reactions: _al
ChatGpt was totally off base in regards to 'VM-Bhyve backup' command. Could not find any such thing.
 
Back
Top