dermotbradley / create-alpine-disk-image

Create cloud-init enabled Alpine disk images for physical machines (PCs & RPIs), VMs, and Cloud servers
GNU General Public License v2.0
93 stars 11 forks source link

Some of the new definitions may be a bit too restrictive. #48

Open ShaneMcC opened 1 year ago

ShaneMcC commented 1 year ago

I'm trying to build a proxmox image that can be deployed using either virtio or scsi for the block device, which I believe to be possible if the os-device-type is set to generic (from looking at mkinitfs-functions)

However, the script firstly doesn't allow --os-device-type generic, but also then the proxmox definitions don't allow it.

Similar for --console-type - proxmox can support normal_and_serial but the script doesn't allow it. (normal console type is useful because it preserves history - the serial console discards any console history prior to you opening the console)

dermotbradley commented 1 year ago

I'm trying to build a proxmox image that can be deployed using either virtio or scsi for the block device, which I believe to be possible if the os-device-type is set to generic (from looking at mkinitfs-functions)

scsi or virtio-scsi?

As you're creating a VM disk image (whether for proxmox or another hypervisor) I am not expecting scsi to used, only virtio-blk, virtio-scsi, or nvme (as there is no virtio equivalent of nvme). Firstly scsi will be far less performant than virtio-scso. Secondly why use scsi for a VM at all? If you want scsi then why not create a physical machine image, rather than a VM image?

However, the script firstly doesn't allow --os-device-type generic, but also then the proxmox definitions don't allow it.

Yeah originally generic was only intended for use by the "generic" cloud/physical/virtual types. I have since started extending it for other situations. I have some local code changes for this that I will push shortly.

Similar for --console-type - proxmox can support normal_and_serial but the script doesn't allow it. (normal console type is useful because it preserves history - the serial console discards any console history prior to you opening the console)

I've made some changes to the proxmox definition file(s) but haven't pushed them yet. I'll add a note here when I have done so.

What would be useful info is details of what are the default Proxmox settings used for created VMs in terms of console type (i.e. serial or normal), storage driver, etc.

ShaneMcC commented 1 year ago

Yes, sorry, virtio-scsi is what I'm wanting which is the default for newly created VMs, and this is their recommended driver rather than virtio-blk. (https://pve.proxmox.com/wiki/Qemu/KVM_Virtual_Machines)

Though it does allow emulating others (It's just QEMU under the hood) and perhaps some configurations may use others or may have raw device pass through. Allowing people to always pick --os-device-type generic lets them make that choice if they want if the more opinioned options don't work.

The default display for new vms is QEMU's "std" vga card but it also has options for a variety of other cards and/or serial.

dermotbradley commented 1 year ago

Hi. I've just merged a PR where I've rewritten a lot of the "generic" handling.

I've also updated/tweaked the proxmox definitions files.

So currently virtio-scsi is defaulted to as the type of device for the rootfs but you can use "--os-device-type generic" to override this, and you can also use "--console-device-type normal_and_serial" for both console types as well (I renamed the "--console-type" option to "--console-device-type").

The default display for new vms is QEMU's "std" vga card but it also has options for a variety of other cards and/or serial.

For BIOS disk images for Proxmox the script will use VGA Text output (setting CADI_DEFAULT_CONSOLE_OUTPUT_TYPE="text") and for UEFI will use graphics output as UEFI does not support text output.