GithubHelp home page GithubHelp logo

Comments (7)

jirutka avatar jirutka commented on June 3, 2024

This script supports only Syslinux and images without partitions for simplicity.

What cloud providers require specific bootloader to be used? Did you verified that image with Syslinux really doesn't work here?

from alpine-make-vm-image.

zacksiri avatar zacksiri commented on June 3, 2024

I tried it on google compute engine, they seem to need grub. Yes I can verify syslinux doesn’t work, I created an image by hand using the iso and qemu, set it up to use grub / mbr and it worked great.

from alpine-make-vm-image.

hufman avatar hufman commented on June 3, 2024

I encountered a problem with using these disk images with my libvirt+qemu installation. It seems that the hypervisor's SeaBIOS can only boot from a harddrive image if there is an MBR partition table. It does work if I configure my VM to use the disk image as a "cdrom", which is still somehow writable but not intuitive.

I added support with PR #11 to build an MBR partition, which seems to work for me but I am welcome to review and feedback!

from alpine-make-vm-image.

olljanat avatar olljanat commented on June 3, 2024

@jirutka so what is your decission? Will MBR + Grub supported to be accepted to this tool if someone comes with PR or are we forced to start maintaining fork with those features? (I can see that #11 have been there for a while waiting for review).

Also nowadays Google Cloud, Azure and Amazon EC2 supports UEFI + Grub combination which why I think that this tool should have support for three modes: Syslinux without partitions (current/default), BIOS + MBR + GRUB and UEFI + GPT + GRUB.

I'm planning to start utilize this tool and can also contribute to it as it after all quite good baseline but honestly I'm bit disappointed to see that this issue have been open here already three year without any decission...

EDIT: Alternative solution would be move all functions to separate file which would allow people to create customized version of alpine-make-vm-image but still use most of the logic from here. I opened #24 for that discussion.

from alpine-make-vm-image.

jirutka avatar jirutka commented on June 3, 2024

Partitions are completely unnecessary in VMs, it doesn’t make any sense to use them in this environment (maybe except UEFI?). I know that there are some cloud providers with a broken setup that foolishly require a partition table – the users should first complain there, not require adding an unnecessary feature into this script.

However, I’m a realist, so I’m not against adding support for GPT (MBR is obsolete) but only as an alternative to the current approach (i.e. a new CLI option), not as a replacement.

About UEFI – I’d like to add support for UEFI, but preferably using Syslinux, not bloated GRUB. However, I don’t have enough experience with UEFI in VMs environment and don’t have a good enough motivation to invest my time into it right now. However, if you prepare a pull request that will respect the spirit of this project (simplicity), I’ll gladly accept it.

from alpine-make-vm-image.

olljanat avatar olljanat commented on June 3, 2024

Partitions are completely unnecessary in VMs, it doesn’t make any sense to use them in this environment (maybe except UEFI?).

Yes, UEFI needs partitions (or maybe it would be possible to have UEFI firmware on separate disk).

About UEFI – I’d like to add support for UEFI, but preferably using Syslinux, not bloated GRUB.

As far I know Syslinux UEFI support it very limited and have a lof ot drawbacks. That is probably reason why also alpine-virt iso file uses GRUB when VM is booted on UEFI mode.

Alternatively it should be possible boot Linux kernel directly from UEFI by using EFI Stub feature.

However, I don’t have enough experience with UEFI in VMs environment and don’t have a good enough motivation to invest my time into it right now. However, if you prepare a pull request that will respect the spirit of this project (simplicity), I’ll gladly accept it.

Ok. Good to know but it started to feel that scope of this tool is too narrow for my needs (I want to be able to create disk images which works on both VMs and bare metal) and as both my proposals (#24 and #26) about how to make possible to use those functions on other tools was rejected then I probably will just copy useful part of this code and create my own version it.

from alpine-make-vm-image.

jirutka avatar jirutka commented on June 3, 2024

That is probably reason why also alpine-virt iso file uses GRUB when VM is booted on UEFI mode.

I think that it’s mainly for historical reasons (but not sure) – Syslinux added support for UEFI quite late.

Alternatively it should be possible boot Linux kernel directly from UEFI by using EFI Stub feature.

👍

…as both my proposals (#24 and #26) about how to make possible to use those functions on other tools was rejected…

The first proposal completely ignored the preferred way of using this script described in the Readme, so it would introduce an unwanted breaking change for the users. The second proposal would break the script on some shells (e.g. Bash); moreover, it even didn’t make sense.

Maybe it will be better if you just describe what exactly do you need and write some examples of how to deal with UEFI, and if it will make sense and wouldn’t add too much complexity to the script, I will implement it.

from alpine-make-vm-image.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.