/~mem/ {#snippet tagLeft(colour: string)} * {/snippet} {#snippet okTagLeft()} {@render tagLeft('#51f051')} {/snippet} {#snippet tagRight(innerText: string, innerColour: string)} [ {innerText} ] {/snippet} {#snippet okTagRight()} {@render tagRight('ok', '#51f051')} {/snippet} {#snippet okLine(text: string, classes?: string, rightClass?: string)}
{@render okTagLeft()} {text}
{@render okTagRight()}
{/snippet} {#snippet ttyTextInnerRenderer(section: RenderBlock)} {#if section.raw}{@html section.value}{:else}{#each section.value .split('\n') .map( (l, i, a) => (i === a.length - 1 ? [0, l] : [1, l]), ) as [nl, l]}{l}{#if nl}
{/if}{/each}{/if}
{/snippet} {#snippet ttyTextMiddleRenderer( section: RenderBlock, line: TTYText & { kind: 'text' }, )} {#if section.url} {#if typeof section.url === 'string'} {#if section.url.startsWith('newtab:')} {@const url = section.url.substring(7)} {@render ttyTextInnerRenderer(section)} {:else if section.url.startsWith('currenttab:')} {@const url = section.url.substring(11)} {@render ttyTextInnerRenderer(section)} {:else} ERR: Unknown Link Format {/if} {:else} typeof section.url !== 'function' ? void 0 : section.url(line)} onkeypress={() => typeof section.url !== 'function' ? void 0 : section.url(line)} role="link" tabindex="0">{@render ttyTextInnerRenderer(section)} {/if} {:else} {@render ttyTextInnerRenderer(section)} {/if} {/snippet} {#snippet ttyText(line: TTYText)} {#if line.kind === 'text'} {#if (line.renderrestriction ?? 'everywhere') === 'everywhere' || line.renderrestriction === 'noscript' || (line.renderrestriction === 'js-only' && isScripted)} {#if line.renderrestriction === 'noscript'} {:else} {#each line.value as v}{@render ttyTextMiddleRenderer( v, line, )}{/each} {/if} {/if} {/if} {/snippet}
{#if !skipAnimation}

BdsDxe: loading Boot0002 "UEFI Misc Device" from PciRoot (0x0)/Pci(0x2,0x4)/Pci(0x0,0x0)
BdsDxe: starting Boot0002 "UEFI Misc Device" from PciRoot (0x0)/Pci(0x2,0x4)/Pci(0x0,0x0)

Bootloader Logo
Start boot option
`)}");background-size:contain;`} >

GNU GRUB  version 2.12

*Alpine Linux {versions.alpine.number}, with {versions.kernel .humanReadable}
 UEFI Firmware Setup

  Booting `Alpine Linux {versions.alpine.number}, with {versions .kernel.humanReadable}'

Loading {versions.kernel.humanReadable} ...
Loading initial ramdisk ...

  OpenRC {versions.openrc} is starting up Linux {versions.kernel.id} ({architecture})
{@render okLine('/proc/ is already mounted')} {@render okLine('Mounting /run ...')} {@render okLine('/run/openrc: creating directory')} {@render okLine('/run/lock: creating directory', 'openrc-boot-step-1')} {@render okLine('/run/lock: correcting owner', 'openrc-boot-step-1')} {@render okLine( 'Caching service dependencies ...', 'openrc-boot-step-1', )} {@render okLine( 'Remounting devtmpfs on /dev ...', 'openrc-boot-step-2', )} {@render okLine('Mounting /dev/mqueue ...', 'openrc-boot-step-3')} {@render okLine( 'Mounting security filesystem ...', 'openrc-boot-step-4', )} {@render okLine('Mounting debug filesystem ...', 'openrc-boot-step-5')} {@render okLine( 'Mounting persistent storage (pstore) filesystem ...', 'openrc-boot-step-5', )} {@render okLine( 'Mounting efivarfs filesystem ...', 'openrc-boot-step-5', )} {@render okLine('Starting busybox mdev ...', 'openrc-boot-step-6')} {@render okLine('Scanning hardware for mdev ...', 'openrc-boot-step-6')} {@render okLine('Loading hardware drivers ...', 'openrc-boot-step-7')} {@render okLine('Loading modules ...', 'openrc-boot-step-8')} {@render okLine( 'Setting system clock using the hardware clock [UTC] ...', 'openrc-boot-step-9', )} {@render okLine( 'Checking local filesystems ...', 'openrc-boot-step-10', )}
/dev/mapper/bepis: clean, {fsckFileCount}/{fsckTotalCount} files, {blocksCount}/{blocksTotal} blocks
{@render okLine( 'Remounting root filesystem read/write ...', 'openrc-boot-step-12', )} {@render okLine('Remounting filesystems ...', 'openrc-boot-step-13')} {@render okLine('Activating swap devices ...', 'openrc-boot-step-14')} {@render okLine( 'Mounting local filesystems ...', 'openrc-boot-step-15', )} {@render okLine( 'Configuring kernel parameters ...', 'openrc-boot-step-16', )} {@render okLine( 'Creating user login records ...', 'openrc-boot-step-17', )} {@render okLine('Setting hostname ...', 'openrc-boot-step-18')} {@render okLine('Setting keymap ...', 'openrc-boot-step-19')} {@render okLine('Starting networking ...', 'openrc-boot-step-20')} {@render okLine('\xa0\xa0lo ...', 'openrc-boot-step-21')} {@render okLine('\xa0\xa0eth0 ...', 'openrc-boot-step-22')}
udhcpd: started
udhcpd: broadcasting discover
udhcpd: broadcasting select for 192.168.1.{lanLeastSignificantIPPart}, server 192.168.1.1
udhcpd: lease of 192.168.1.{lanLeastSignificantIPPart} obtained from 192.168.1.1, lease time 3600
{@render okLine( 'Seeding random number generator ...', 'openrc-boot-step-26', )} {@render okLine( 'Seeding 256 bits without crediting', 'openrc-boot-step-26', )} {@render okLine( 'Saving 256 bits of creditable seed for next boot', 'openrc-boot-step-26', )} {@render okLine('Starting logbookd ...', 'openrc-boot-step-27')} {@render okLine('Starting busybox acpid ...', 'openrc-boot-step-28')} {@render okLine('Starting busybox crond ...', 'openrc-boot-step-29')} {@render okLine('Starting busybox ntpd ...', 'openrc-boot-step-29')}
Welcome to Alpine Linux {versions.alpine .number}{#if versions.alpine.isEdge} (edge){/if}
Kernel {versions.kernel.humanReadable} on an {architecture} (/dev/{tty})
{hostname} login: {#each login.username .split('') .map((v, i) => [v, i] as const) as [char, idx]}{char}{/each}
Password: _
_
{#each ttyLines.filter(((maxidx) => (_, i) => i < (maxidx === -1 ? Infinity : maxidx))(ttyLines.findIndex((v) => v.kind === 'clear'))) as line} {@render ttyText(line)} {/each}
{/if} {#if ttyLines.find((v) => v.kind === 'clear')} {@const arr = ttyLines .map((v, i) => [v, i] as const) .filter(([v]) => v.kind === 'clear') .map((v, i, a) => [v[1], a[i + 1]?.[1], i] as const)} {#each skipAnimation ? [arr[arr.length - 1]] : arr as [idx, nextIdx, clearIdx]}
{#each ttyLines.filter((v, i) => i >= idx && i < (nextIdx ?? Infinity) && (!skipAnimation || !('classes' in v) || !Array.isArray(v.classes) || !v.classes.includes('ttytext-removed-after-done'))) as line} {@render ttyText(line)} {/each}
{/each} {/if}