To perform bootstrapping, you must be familiar with the process of creating a VHD and must know about storage accounts and containers in Azure, and how to attach the VHD to a virtual machine.
Bootstrap the firewall in Azure
Create the VHD. Use the Azure documentation for the commands required to complete the process of creating a VHD. On the Azure portal, deploy a Linux virtual machine. In the Linux virtual machine, Create the top-level directory structure for the bootstrap package. and Add content within each folder. You can leave a folder empty, but you must have all the four folders. Attach a data disk less than 39 GB to the Linux virtual machine. Connect to the console or CLI of the Linux virtual machine. Partition the disk and format the file system as ext3. Make a directory for the new file system and mount the disk to the Linux virtual machine. Copy the contents of the bootstrap package you created in step 2 to the disk. Unmount the disk. Detach the disk. Store the disk as a page blob within the same storage account that you will use for the VM-Series firewall.
Customize the ARM template to point to the VHD so that the firewall can access the disk on first boot. For example, you need to add the following object in the virtualMachine resource in the Template file: "storageProfile": { "imageReference": { "publisher": "[parameters('imagePublisher')]", "offer": "[parameters('imageOffer')]", "sku": "[parameters('imageSku')]", "version": "latest" }, "dataDisks": [ { "name": "datadisk1", "diskSizeGB": "[parameters('BootstrapUriSizeGB')]", "lun": 0, "vhd": { "uri": "[parameters('BootstrapUri')]" }, "caching": "ReadOnly", "createOption": "Attach" } ], "osDisk": { "name": "osdisk", "vhd": { "uri": "[concat('http://', parameters('storageAccountName'), '.blob.core.windows.net/vhds/', parameters('vmName'), '-', parameters('imageOffer'), '-', parameters('imageSku'), '.vhd')]" }, "caching": "ReadWrite", "createOption": "FromImage" } },
Verify Bootstrap Completion.

Related Documentation