Giter Site home page Giter Site logo

alpinelinux / alpine-netboot Goto Github PK

View Code? Open in Web Editor NEW
9.0 7.0 8.0 23 KB

Alpine netboot (mirror)

Home Page: https://git.alpinelinux.org/cgit/alpine-netboot/

License: MIT License

CSS 69.62% Shell 7.19% Smarty 16.08% Lua 7.11%
alpine-linux netboot ipxe

alpine-netboot's Introduction

Alpine Linux netboot

Welcome to the Alpine Linux netboot server.

This netboot server provides a boot script and image signatures to securly boot Alpine Linux over the internet. To be able to boot you will need to have a copy of the iPXE bootloader available. You can get a copy of the bootloaders by installing alpine-ipxe apk add alpine-ipxe or from this location (only x86_64).

Boot script

The default bootscript for alpine-ipxe is https://boot.alpinelinux.org/boot.ipxe which will automatically be fetched by alpine-ipxe. If you like to change this behaviour you will need to build your own version of ipxe.

Some cloud providers (ie packet.net) support the loading of custom ipxe scripts/payloads to install an operating system. You can chainload one of the ipxe bootloaders from alpine-ipxe. Loading our boot script from another bootloader will disable image verification.

Images

NOTE: since Alpine v3.8 this netboot server does not provide images anymore. You can find netboot images in the release directories on our mirrors.

Signed images

Alpine Linux images are signed and can be verified only by making use of alpine-ipxe. Using another ipxe bootloader will disable verification.

Boot options

BIOS (x86_64)

  • pxe.lkrn - Linux kernel image that can be used by a bootloader/qemu
  • pxe.pxe - PXE image for chainloading from a PXE environment
  • undionly.kpxe - PXE image with UNDI support
  • ipxe.iso - ISO image to boot from any regular system
  • ipxe.usb - disk image to write to (USB) block device

UEFI (x86_64)

UEFI (aarch64)

  • snp.efi UEFI executable

Updates

Currently we only support latest stable releases. We are working on adding montly edge snapshots.

Testing netboot

The easiest way to test is by using Qemu directly with the ipxe kernel image.

apk add qemu-system-x86_64 alpine-ipxe

qemu-system-x86_64 -m 512M -enable-kvm -kernel /usr/share/alpine-ipxe/ipxe.lkrn -curses

NOTE: you need a minimum of 256M of memory to boot alpine in network mode due to the size of our initramfs and modloop (kernel modules).

alpine-netboot's People

Contributors

clandmeter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

alpine-netboot's Issues

alpine linux netboot 3.20.2 extremely slow...

EXPECTED

upgraded ipxe to boot alpine 3.20.2
it should boot about the same time as previous alpine releases (eg 3.16)

ACTUAL

on same hardware, alpine w/3.20.2 now takes ~10-12 minutes to boot?

whereas on 3.16 the same hardware boots in ~60seconds.

no errors are seen during the boot process, it just hangs for that long and then just works.
this happens every time, but otherwise the system works fine.
i don't see any errors during boot, it just sits at the blinking cursor section ( '_') for a much, much longer time than normal.

falling back to 3.16 and it again boots extremely quickly again.

don't see any errors in dmesg either, wondering if anybody else has experienced this or can see something missed?
what might be the likely culprit or a place to look?

NOTE: the dmesg output below includes a netboot w/docker overlay and some other pkgs, but the same thing happens if you boot with the headless-ssh pkg overlay and no other pkgs.

SYSTEM INFO

# uname -a
Linux erdos 6.6.41-0-lts #1-Alpine SMP PREEMPT_DYNAMIC 2024-07-18 20:00:18 x86_64 Linux

# cat /etc/os-release 
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.20.2
PRETTY_NAME="Alpine Linux v3.20"

DMESG

very-slow-bootup-after-upgrading-alpine-linux-netboot-3.20.2.txt

alpine-netboot ipxe on x86_64 kernel panics w/console splash '--keep' argument

With alpine v3.16 and this ipxe:

console --picture ${httpurl}/data/logo.png --keep

# [menu omitted]

:alpine-64                                                                               
kernel ${httpurl}/os/alpine-netboot-3.16.0-x86_64/vmlinuz-lts modules=loop,squashfs quiet
initrd ${httpurl}/os/alpine-netboot-3.16.0-x86_64/initramfs-lts                          
boot || goto failed 

the kernel boots but then panics with this error:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

WORKAROUND

the workaround to fix this is to disable the ability to retain the splash screen beyond the boot menu.
this aparently causes some sort of conflict with alpine's netboot.

temporary fix is again to remove 'keep' argument

#console --picture ${httpurl}/data/logo.png --keep  # ipxe console keep causes kernel panics on alpine v3.16
console --picture ${httpurl}/data/logo.png

# [menu omitted]  rest of boot script is the same

:alpine-64                                                                               
kernel ${httpurl}/os/alpine-netboot-3.16.0-x86_64/vmlinuz-lts modules=loop,squashfs quiet
initrd ${httpurl}/os/alpine-netboot-3.16.0-x86_64/initramfs-lts                          
boot || goto failed 

Unfortunately since it's the console and it's a panic, scroll-up doesn't work so I was unable to collect more information.

This used to be a relatively common error but I don't recall seeing it with a non-alpine kernel in past few years.

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.