Using Disk Utility app create an APFS volume on your external disk. Make sure that your external disk use GUID partition scheme. It’s also important that created APFS volume size is equal or bigger than the source system volume. Let's name the external disk volume as BackupClone
Activate on-disk ownership on your disk volume with the help of vsdbutil tool. Copy/paste the string below into Terminal, change BackupClone part to your external disk volume name and press return:
sudo vsdbutil -a /Volumes/BackupClone
Create full copy of the source system volume on BackupClone volume with the help of rsync tool:
sudo rsync -xrlptgoEvHS --progress --delete / /Volumes/BackupClone
Now we need to make our clone bootable. To do this we need to create a new Preboot volume in APFS container that includes BackupClone and copy system files from source Preboot volume in there.
Check the current situation with all your volumes:
diskutil list
As a result we see that MyDisk (disk1s1) is the source, and BackupClone (disk3s1) is our clone copy destination
Create Preboot volume in APFS container disk3 that includes BackupClone:
diskutil apfs addVolume disk3 apfs Preboot -role B
In the new Preboot volume let's create a folder, name the folder exactly as UUID of your volume BackupClone (disk3s1).
UUID can be obtained with diskutil:
diskutil info disk3s1 | grep "Volume UUID"
Copy/paste this UUID to create a folder on Preboot volume:
mkdir /Volumes/Preboot/A579A99E-9795-4086-890E-04E2112D1E78
Now mount the source Preboot volume:
diskutil mount disk1s2
Obtain UUID of the source volume and copy system files from source volume to external Preboot volume:
diskutil info disk1s1 | grep "Volume UUID"
Copy files using rsync tool:
sudo rsync -xrlptgoEvHS --progress --delete /Volumes/Preboot\ 1/CD9E8D34-F576-3F9B-AF7C-217C860721F4/ /Volumes/Preboot/A579A99E-9795-4086-890E-04E2112D1E78
Unmount Preboot volumes one by one:
diskutil unmount disk1s2
diskutil unmount disk3s2
Specify the path to boot files folder on your clone volume:
sudo bless --folder/Volumes/BackupClone/System/Library/CoreServices --bootefi
Update dyld's shared cache on clone volume using update_dyld_shared_cache tool:
sudo update_dyld_shared_cache -root /Volumes/BackupClone -force
In System Preferences open Startup Disk tab, then select BackupClone and press Restart button. Your computer will restart and boot up from created BackupClone volume.
Now you successfully created a bootable clone of your APFS disk volume. The next time you need to boot up your Mac from the clone, connect the external drive and start your Mac holding Option (Alt) key, until boot disk selection appears.