FreePBX on Azure -- UDF Filesystem Support


(Mark Moore) #1

Not sure if this is the right place to post this question, but according to Microsoft, “kernel support for mounting UDF file systems is required” for custom VM images running on Azure.[1]

When I list the available filesystems on a squeaky clean install of FreePBX 15, it’s pretty clear UDF is not in the list:

$ cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   ramfs
nodev   bdev
nodev   proc
nodev   cgroup
nodev   cpuset
nodev   tmpfs
nodev   devtmpfs
nodev   debugfs
nodev   securityfs
nodev   sockfs
nodev   dax
nodev   bpf
nodev   pipefs
nodev   configfs
nodev   devpts
nodev   hugetlbfs
nodev   autofs
nodev   pstore
nodev   mqueue
        xfs
        ext3
        ext2
        ext4

So, my question is: Does anyone know how to add “kernel support for mounting UDF file systems” to an existing linux system?

FWIW, here is the content of my /proc/ Linux version 3.10.0-1127.19.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Aug 25 17:23:54 UTC 2020

[1] https://docs.microsoft.com/en-us/azure/virtual-machines/linux/create-upload-generic


(Simon Telephonics) #2

It is supported.

To be clear, it has been supported since kernel 2.4 to some extent and since 2.6 fully. https://en.wikipedia.org/wiki/Universal_Disk_Format (see table)

I run FreePBX on Azure and have had no issues provisioning new images.


(Mark Moore) #3

@billsimon, is your Azure FreePBX Ubuntu based?

If UDF is supported, why isn’t it showing in the /proc/filesystems file?


(Simon Telephonics) #4

No, it is FreePBX Distro (SangomaOS 7).

Because you don’t have any hardware or virtual hardware that would otherwise use it.

You can force the issue by loading the module:

$ sudo modprobe udf
$ cat /proc/filesystems | grep udf
	udf

When the Azure image boots, it detects a virtual CDROM device which causes this module to be loaded automatically.


(Mark Moore) #5

Thank you @billsimon That was very helpful and gives me some hope.

Was there any other prep you needed to do to get your VHD to boot? I uploaded my VHD using the Azure Storage Explorer. I’m assuming you did something similar.

If you still have the clean install image on VHD, is there any way you might share it?


(Simon Telephonics) #6

Here are the important things to do, from my sparse notes:

  • install with a single-partition root (no LVM)… I did this using boot options from the ISO
  • add the following kernel parameters to the grub boot (enables the Azure serial console): console=ttyS0 earlyprintk=ttyS0 rootdelay=300
  • yum install WALinuxAgent (Azure management agent)
  • if you’re going to make a template of it, deprovision with waagent -deprovision+user before uploading