[GH-ISSUE #248] Add support for creating cloud-init iso with the Joliet extension enabled #65

Open
opened 2026-03-03 15:29:58 +03:00 by kerem · 0 comments
Owner

Originally created by @rgl on GitHub (Feb 26, 2026).
Original GitHub issue: https://github.com/luthermonson/go-proxmox/issues/248

The current VirtualMachine.CloudInit/makeCloudInitISO function creates an ISO with Rock Ridge extension enabled, and that works fine for non-Windows machines, but for Windows, the ISO must also use the Joliet extension, otherwise, the - characters are converted to _, which means that on Windows, the user-data filename appears as USER_DATA, which means cloudbase-init (a cloud-init alternative for Windows) will not find it (by default).

Unfortunately, the used go-diskfs library does not support that extension, so we have to use an external tool like xorriso as:

xorriso \
  -as genisoimage \
  -output cloud_init_data_path \
  -volid cidata \
  -joliet \
  -rock \
  tmp/cidata

I will soon submit a PR to prefer using xorriso (when found on the PATH), otherwise, fallback to use the go-diskfs library.

Originally created by @rgl on GitHub (Feb 26, 2026). Original GitHub issue: https://github.com/luthermonson/go-proxmox/issues/248 The current [`VirtualMachine.CloudInit/makeCloudInitISO` function creates an ISO with Rock Ridge extension enabled](https://github.com/luthermonson/go-proxmox/blob/v0.4.0/virtual_machine.go#L237), and that works fine for non-Windows machines, but for Windows, the ISO must also use the Joliet extension, otherwise, the `-` characters are converted to `_`, which means that on Windows, the `user-data` filename appears as `USER_DATA`, which means [cloudbase-init](https://github.com/cloudbase/cloudbase-init) (a cloud-init alternative for Windows) will not find it (by default). Unfortunately, the used [go-diskfs library does not support that extension](https://github.com/diskfs/go-diskfs/issues/73), so we have to use an external tool like xorriso as: ```bash xorriso \ -as genisoimage \ -output cloud_init_data_path \ -volid cidata \ -joliet \ -rock \ tmp/cidata ``` I will soon submit a PR to prefer using xorriso (when found on the PATH), otherwise, fallback to use the go-diskfs library.
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/go-proxmox#65
No description provided.