[GH-ISSUE #30] AlpineLinux Support #1555

Closed
opened 2026-03-01 18:34:20 +03:00 by kerem · 26 comments
Owner

Originally created by @zQueal on GitHub (Jan 13, 2016).
Original GitHub issue: https://github.com/netbootxyz/netboot.xyz/issues/30

For anyone who doesn't know, Alpine Linux is tiny. The standard vanilla iso is 81MB with the extended iso a measly 360MB installed.

It would make a really great addition to netboot. They offer a public download repository here.

Originally created by @zQueal on GitHub (Jan 13, 2016). Original GitHub issue: https://github.com/netbootxyz/netboot.xyz/issues/30 For anyone who doesn't know, Alpine Linux is tiny. The standard vanilla iso is 81MB with the extended iso a measly 360MB installed. It would make a really great addition to netboot. They offer a public download repository [here](http://dl-3.alpinelinux.org/alpine/).
kerem 2026-03-01 18:34:20 +03:00
Author
Owner

@antonym commented on GitHub (Jan 14, 2016):

I gave this a try tonight but unfortunately Alpine Linux ISOs do not play nicely with memdisk which is what I need in order to boot. You can read more about the issue here and a potential way to fix it. It might be worth opening the ticket with them and seeing in they are willing to implement the above item.

The way I usually validate an ISO works or not is pulling up the iPXE command shell and running:

kernel http://boot.netboot.xyz/memdisk iso raw
initrd http://URL.to/ISO
boot

If it works, it'll usually start the install or load up all of the way. If it fails, it'll usually fail early after being unable to load the rootfs image.

The ISOs can be cracked open and hosted somewhere to boot, but that introduces a lot of other issues. (tampering, bandwidth, space, etc). I'd much rather pull from the provider of the operating system or a trusted mirror if at all possible and leave netboot.xyz as a router to those operating systems.

<!-- gh-comment-id:171483789 --> @antonym commented on GitHub (Jan 14, 2016): I gave this a try tonight but unfortunately Alpine Linux ISOs do not play nicely with memdisk which is what I need in order to boot. You can read more about the issue [here](https://www.reversengineered.com/2016/01/07/booting-linux-isos-with-memdisk-and-ipxe/) and a potential way to fix it. It might be worth opening the ticket with them and seeing in they are willing to implement the above item. The way I usually validate an ISO works or not is pulling up the iPXE command shell and running: kernel http://boot.netboot.xyz/memdisk iso raw initrd http://URL.to/ISO boot If it works, it'll usually start the install or load up all of the way. If it fails, it'll usually fail early after being unable to load the rootfs image. The ISOs can be cracked open and hosted somewhere to boot, but that introduces a lot of other issues. (tampering, bandwidth, space, etc). I'd much rather pull from the provider of the operating system or a trusted mirror if at all possible and leave netboot.xyz as a router to those operating systems.
Author
Owner

@antonym commented on GitHub (Jan 14, 2016):

Looks like some others have tried as well, might be a good place to start. http://lists.alpinelinux.org/alpine-devel/3292.html

<!-- gh-comment-id:171499085 --> @antonym commented on GitHub (Jan 14, 2016): Looks like some others have tried as well, might be a good place to start. http://lists.alpinelinux.org/alpine-devel/3292.html
Author
Owner

@zQueal commented on GitHub (Jan 14, 2016):

I've been trying to get some involvement via the Alpine official IRC, but there's been no movement in more than 4 hours despite over 300 connected clients. Not entirely sure this is going to happen. It's far outside my skillset.

<!-- gh-comment-id:171519448 --> @zQueal commented on GitHub (Jan 14, 2016): I've been trying to get some involvement via the Alpine official IRC, but there's been no movement in more than 4 hours despite over 300 connected clients. Not entirely sure this is going to happen. It's far outside my skillset.
Author
Owner

@andyshinn commented on GitHub (Jan 20, 2016):

Alpine Linux also has a bug tracker at https://bugs.alpinelinux.org/ and a couple mailing lists I would try as well: http://lists.alpinelinux.org/.

<!-- gh-comment-id:173036353 --> @andyshinn commented on GitHub (Jan 20, 2016): Alpine Linux also has a bug tracker at https://bugs.alpinelinux.org/ and a couple mailing lists I would try as well: http://lists.alpinelinux.org/.
Author
Owner

@zQueal commented on GitHub (Jan 20, 2016):

Andy, thanks!

I've opened a thread on their internal forums.

<!-- gh-comment-id:173080536 --> @zQueal commented on GitHub (Jan 20, 2016): Andy, thanks! I've opened a thread on their [internal forums](http://forum.alpinelinux.org/forum/installation/netbootxyz-compatability).
Author
Owner

@antonym commented on GitHub (Jan 20, 2016):

Thanks, guess we just wait and see. If we can get a working image, it'll be really easy to get it going.

<!-- gh-comment-id:173083556 --> @antonym commented on GitHub (Jan 20, 2016): Thanks, guess we just wait and see. If we can get a working image, it'll be really easy to get it going.
Author
Owner

@bfritz commented on GitHub (Jan 20, 2016):

@zQueal @antonym If I read a recent IRC chat correctly, @ncopa has some experimental changes to enable pxe boot that might land in Alpine Linux 3.3.2. They may not be sufficient to pxe boot an ISO though.

<!-- gh-comment-id:173084076 --> @bfritz commented on GitHub (Jan 20, 2016): @zQueal @antonym If I read a recent [IRC chat](http://irclogger.com/.alpine-devel/2016-01-18#1453099968) correctly, @ncopa has some experimental changes to enable pxe boot that might land in Alpine Linux 3.3.2. They may not be sufficient to pxe boot an ISO though.
Author
Owner

@zQueal commented on GitHub (Jan 20, 2016):

@bfritz Hey, that's great news! At least it's a step in the right direction! Thanks for the update.

<!-- gh-comment-id:173086769 --> @zQueal commented on GitHub (Jan 20, 2016): @bfritz Hey, that's great news! At least it's a step in the right direction! Thanks for the update.
Author
Owner

@Ttech commented on GitHub (Feb 18, 2016):

http://wiki.alpinelinux.org/wiki/PXE_boot is the instructions on how to boot it any reason this wouldn't work?

<!-- gh-comment-id:185540562 --> @Ttech commented on GitHub (Feb 18, 2016): http://wiki.alpinelinux.org/wiki/PXE_boot is the instructions on how to boot it any reason this wouldn't work?
Author
Owner

@antonym commented on GitHub (Nov 7, 2016):

Reopening because I would like to see Alpine support at some point, I may poke around on it if I get some time.

<!-- gh-comment-id:258871319 --> @antonym commented on GitHub (Nov 7, 2016): Reopening because I would like to see Alpine support at some point, I may poke around on it if I get some time.
Author
Owner

@IxDay commented on GitHub (Feb 1, 2017):

Ok managed to found a solution to create a bootable image for alpine through IPXE, here are the steps:

  • clone the alpine-iso git repo
  • cd to the directory and create the following two files:
    • alpine-pxe.packages which will be empty (those packages are installed in the iso not in the initrd)
    • alpine-pxe.conf.mk with the following content:
      ALPINE_NAME   := alpine-pxe
      KERNEL_FLAVOR := grsec
      INITFS_FEATURES := ata base bootchart squashfs ext4 usb virtio network dhcp
      MODLOOP_EXTRA :=
      
      some options may not be needed, I did not had the time to check this correctly, virtio and network are needed according to the wiki
  • create the image following the instructions here and pass your new profile: make PROFILE=alpine-pxe
  • start a simple http server in isotmp.alpine-pxe/isofs/boot/ the ipxe boot will need the two following files:
    • initramfs-grsec
    • vmlinuz-grsec
  • create your ipxe script with an adaptation of the following to your own url
    #!ipxe
    
    dhcp
    
    set base-url http://192.168.122.0:5050
    set kernel-params ip=dhcp modules=loop,squashfs,usb-storage nomodeset
    
    kernel ${base-url}/vmlinuz-grsec ${kernel-params}
    initrd ${base-url}/initramfs-grsec
    
    boot
    
    Here again I am not sure that all the options are needed, still have to perform some tests.
  • start your network boot!
<!-- gh-comment-id:276722892 --> @IxDay commented on GitHub (Feb 1, 2017): Ok managed to found a solution to create a bootable image for alpine through IPXE, here are the steps: - clone the [alpine-iso git repo](http://git.alpinelinux.org/cgit/alpine-iso/) - cd to the directory and create the following two files: - `alpine-pxe.packages` which will be empty (those packages are installed in the iso not in the initrd) - `alpine-pxe.conf.mk` with the following content: ``` ALPINE_NAME := alpine-pxe KERNEL_FLAVOR := grsec INITFS_FEATURES := ata base bootchart squashfs ext4 usb virtio network dhcp MODLOOP_EXTRA := ``` some options may not be needed, I did not had the time to check this correctly, `virtio` and `network` are needed according to [the wiki](https://wiki.alpinelinux.org/wiki/PXE_boot#Using_pxelinux_instead_of_gPXE) - create the image following the instructions [here](https://wiki.alpinelinux.org/wiki/How_to_make_a_custom_ISO_image) and pass your new profile: `make PROFILE=alpine-pxe` - start a simple http server in `isotmp.alpine-pxe/isofs/boot/` the ipxe boot will need the two following files: - `initramfs-grsec` - `vmlinuz-grsec` - create your ipxe script with an adaptation of the following to your own url ``` #!ipxe dhcp set base-url http://192.168.122.0:5050 set kernel-params ip=dhcp modules=loop,squashfs,usb-storage nomodeset kernel ${base-url}/vmlinuz-grsec ${kernel-params} initrd ${base-url}/initramfs-grsec boot ``` Here again I am not sure that all the options are needed, still have to perform some tests. - start your network boot!
Author
Owner

@Ttech commented on GitHub (May 10, 2017):

I'd love to see this added in as well since Alpine is such a easy to use lightweight distro.

<!-- gh-comment-id:300502788 --> @Ttech commented on GitHub (May 10, 2017): I'd love to see this added in as well since Alpine is such a easy to use lightweight distro.
Author
Owner

@jjzazuet commented on GitHub (Nov 30, 2017):

Hi. Chiming in to see if Alpine is now offering kernel+initrd bundles, or if we still need to follow @IxDay 's instructions. Thanks!

<!-- gh-comment-id:348062195 --> @jjzazuet commented on GitHub (Nov 30, 2017): Hi. Chiming in to see if Alpine is now offering kernel+initrd bundles, or if we still need to follow @IxDay 's instructions. Thanks!
Author
Owner

@antonym commented on GitHub (Nov 30, 2017):

I hadn't heard any updates, but I'd still be all for it if Alpine Linux would provide a hosted version of those files so they could be retrieved. I could spin and host them myself, but generally would prefer if the provider provided the files uncompressed on their mirror so that they could be loaded by anyone directly as it's generally more trustworthy. I'd also like to start getting away from ISOs where possible as the methods to load them in iPXE just aren't ideal. If anyone knows any Alpine Linux maintainers, please ping them to this thread.

<!-- gh-comment-id:348065924 --> @antonym commented on GitHub (Nov 30, 2017): I hadn't heard any updates, but I'd still be all for it if Alpine Linux would provide a hosted version of those files so they could be retrieved. I could spin and host them myself, but generally would prefer if the provider provided the files uncompressed on their mirror so that they could be loaded by anyone directly as it's generally more trustworthy. I'd also like to start getting away from ISOs where possible as the methods to load them in iPXE just aren't ideal. If anyone knows any Alpine Linux maintainers, please ping them to this thread.
Author
Owner

@Red5d commented on GitHub (Dec 17, 2017):

There's now a PXE booting guide for Alpine which mentions using gpxe scripts and booting over HTTP: https://wiki.alpinelinux.org/wiki/PXE_boot

<!-- gh-comment-id:352279802 --> @Red5d commented on GitHub (Dec 17, 2017): There's now a PXE booting guide for Alpine which mentions using gpxe scripts and booting over HTTP: https://wiki.alpinelinux.org/wiki/PXE_boot
Author
Owner

@antonym commented on GitHub (Dec 17, 2017):

Yeah, the issue of adding support isn't about how to do it but we need to have the files hosted as part of the release so the ISO doesn't have to be extracted and hosted at another source. It would be ideal if the files that worked for PXE support would be hosted by the projects directly so that they could be pulled from the primary and trusted source.

If those are present somewhere already on an official Alpine Linux mirror, please point me to them and I can get support added.

<!-- gh-comment-id:352282672 --> @antonym commented on GitHub (Dec 17, 2017): Yeah, the issue of adding support isn't about how to do it but we need to have the files hosted as part of the release so the ISO doesn't have to be extracted and hosted at another source. It would be ideal if the files that worked for PXE support would be hosted by the projects directly so that they could be pulled from the primary and trusted source. If those are present somewhere already on an official Alpine Linux mirror, please point me to them and I can get support added.
Author
Owner

@dunielpls commented on GitHub (Dec 18, 2017):

I run mirrors and I am on Alpine's infrastructure team. I will get back to you shortly @antonym

<!-- gh-comment-id:352380983 --> @dunielpls commented on GitHub (Dec 18, 2017): I run mirrors and I am on Alpine's infrastructure team. I will get back to you shortly @antonym
Author
Owner

@antonym commented on GitHub (Mar 16, 2018):

Merged in some experimental Alpine Linux support, hopefully we can get an official build at some point but this should be a good starting point to play around with and use.

<!-- gh-comment-id:373866233 --> @antonym commented on GitHub (Mar 16, 2018): Merged in some experimental Alpine Linux support, hopefully we can get an official build at some point but this should be a good starting point to play around with and use.
Author
Owner

@nekocentral commented on GitHub (Jun 26, 2018):

As of today Alpine linux 3.8 has a official Netboot image, do you think it can be implemented as the main alpine image?

<!-- gh-comment-id:400376595 --> @nekocentral commented on GitHub (Jun 26, 2018): As of today Alpine linux 3.8 has a official Netboot image, do you think it can be implemented as the main alpine image?
Author
Owner

@antonym commented on GitHub (Jun 26, 2018):

That's great news but unfortunately, their release is tar.gz up so it's not something iPXE can pull directly from their servers and use. Do they have the releases extracted somewhere and hosted on their official servers? I don't typically host the bits myself and rely on the distribution to provide a place to retrieve from their official mirrors.

<!-- gh-comment-id:400378556 --> @antonym commented on GitHub (Jun 26, 2018): That's great news but unfortunately, their release is tar.gz up so it's not something iPXE can pull directly from their servers and use. Do they have the releases extracted somewhere and hosted on their official servers? I don't typically host the bits myself and rely on the distribution to provide a place to retrieve from their official mirrors.
Author
Owner

@nekocentral commented on GitHub (Jun 26, 2018):

I know that a mate of he hosts a mirror of alpine, i can ask him if he can do an extracted folder of the tar

<!-- gh-comment-id:400379532 --> @nekocentral commented on GitHub (Jun 26, 2018): I know that a mate of he hosts a mirror of alpine, i can ask him if he can do an extracted folder of the tar
Author
Owner

@antonym commented on GitHub (Jun 26, 2018):

The expermental images are currently hosted by one of the developers but I'd like to see if the project would be willing to provide those images extracted for use by anyone in official capacity without having to download the tarball directly.

<!-- gh-comment-id:400380230 --> @antonym commented on GitHub (Jun 26, 2018): The expermental images are currently hosted by one of the developers but I'd like to see if the project would be willing to provide those images extracted for use by anyone in official capacity without having to download the tarball directly.
Author
Owner

@nekocentral commented on GitHub (Jun 26, 2018):

Looks like an extracted package is live on the actaul CDN's
http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/x86_64/netboot/

<!-- gh-comment-id:400380691 --> @nekocentral commented on GitHub (Jun 26, 2018): Looks like an extracted package is live on the actaul CDN's http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/x86_64/netboot/
Author
Owner

@antonym commented on GitHub (Jun 26, 2018):

Perfect, we can use that then, thanks for the heads up!

<!-- gh-comment-id:400382722 --> @antonym commented on GitHub (Jun 26, 2018): Perfect, we can use that then, thanks for the heads up!
Author
Owner

@nekocentral commented on GitHub (Jun 26, 2018):

No problem

<!-- gh-comment-id:400383333 --> @nekocentral commented on GitHub (Jun 26, 2018): No problem
Author
Owner

@antonym commented on GitHub (Jun 30, 2018):

Alpine Linux updated to netboot images, dropped experimental tag and added signature checking:

https://github.com/antonym/netboot.xyz/pull/246

Please kick the tires and thanks everyone for getting us this far!

<!-- gh-comment-id:401552267 --> @antonym commented on GitHub (Jun 30, 2018): Alpine Linux updated to netboot images, dropped experimental tag and added signature checking: https://github.com/antonym/netboot.xyz/pull/246 Please kick the tires and thanks everyone for getting us this far!
Sign in to join this conversation.
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/netboot.xyz#1555
No description provided.