Alpine setup scripts

From Alpine Linux

This page summarizes the low-level behavior of the /sbin/setup-* scripts on the Alpine ISO (and in a normal Alpine install).

setup-alpine

This script accepts the following command-line switches (you can run setup-alpine -h to see a usage message).

-a
Create an overlay file: this creates a temporary directory and saves its location in ROOT; however, the script doesn't export this variable so I think this feature isn't currently functional.

-c answerfile
Create a new "answerfile", with default choices. You can edit the file and then invoke setup-alpine -f answerfile.
-f answerfile
Use an existing "answerfile", which may override some or all of the interactive prompts.

-q
Run in "quick mode." See below for details. FIXME

The script's behavior is to do the following, in order. Bracketed options represent extra configuration choices than can be supplied when running the auxiliary setup scripts manually, or by supplying an "answerfile".

  1. setup-keymap [us us]
  2. setup-hostname [-n alpine-test]
  3. setup-interfaces [-i < interfaces-file]
  4. /etc/init.d/networking --quiet start &
  5. if none of the networking interfaces were configured using dhcp, then: setup-dns [-d example.com -n "8.8.8.8 [...]"]
  6. set the root password
  7. if not in quick mode, then: setup-timezone [-z UTC | -z America/New_York | -p EST+5]
  8. enable the new hostname (/etc/init.d/hostname --quiet restart)
  9. add networking and urandom to the boot rc level, and acpid and cron to the default rc level, and start the boot and default rc services
  10. extract the fully-qualified domain name and hostname from /etc/resolv.conf and hostname, and update /etc/hosts
  11. setup-apkrepos [-r (to select a mirror randomly)]
  12. if not in quick mode, then: setup-sshd [-c openssh | dropbear | none]
  13. if not in quick mode, then: setup-ntp [-c chrony | openntpd | none]
  14. if not in quick mode, then: DEFAULT_DISK=none setup-disk -q [-m data /dev/sda]
  15. if installation mode selected during setup-disk was "data" instead of "sys", then: setup-lbu [/media/sdb1]
  16. if installation mode selected during setup-disk was "data" instead of "sys", then: setup-apkcache [/media/sdb1/cache | none]

setup-interfaces

setup-interfaces [-i < interfaces-file]

An interfaces file has the format of /etc/network/interfaces, such as:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
    hostname alpine-test

setup-timezone

setup-timezone [-z UTC | -z America/New_York | -p EST+5]

Can pre-select the timezone using either of these switches:

  • -z subfolder of /usr/share/zoneinfo
  • -p POSIX TZ format

setup-disk

DEFAULT_DISK=none setup-disk -q [-m data | sys] [mountpoint directory | /dev/sda ...]

If more than one device are supplied, a RAID array is built using them. The array will always be RAID1 for the /boot volumes, but will be RAID5 for non-boot volumes when 3 or more devices are supplied. (See also the -r switch.)

The following switches are honored:

-m data | sys
Don't prompt for installation mode

-L
Use LVM to manage partitions.

SEARCH

-q
Exit quietly if no disks are found.

-v
Verbose mode.

-r
Enable RAID1 in degraded mode, with a single disk.

-s swap size in MB
Use 0 to disable swap.
-k kernel flavor
-o apkovl file
Restore system from apkovl file.

More

setup-bootable

This is a standalone script; it's not invoked by setup-alpine but must be run manually.

Its purpose is to create media that boots into tmpfs by copying the contents of an ISO onto a USB key, CF, or similar media.

This script accepts the following arguments and command-line switches (you can run setup-bootable -h to see a usage message).

setup-bootable source [dest]

The argument source can be a directory or an ISO (will be mounted to MNT or /mnt) or a URL (will be downloaded with WGET or wget). The argument dest can be a directory mountpoint, or will default to /media/usb if not supplied.

-k
Keep alpine_dev in syslinux.cfg; otherwise, replace with UUID.

-u
Upgrade mode: keep existing syslinux.cfg and don't run syslinux

-f
Overwrite syslinux.cfg even if -u was specified.

-s
Force the running of syslinux even if -u was specified.

-v
Verbose mode

The script will ensure that source and dest are available; will copy the contents of source to dest, ensuring first that there's enough space; and unless -u was specified, will make dest bootable.

setup-cryptswap

This is a standalone script; it's not invoked by setup-alpine but must be run manually.

setup-cryptswap [partition | none]


setup-xorg-base

This is a standalone script; it's not invoked by setup-alpine but must be run manually.

Installs the following packages: xorg-server xf86-video-vesa xf86-input-evdev xf86-input-mouse xf86-input-keyboard udev.

Additional packages can be supplied as arguments to setup-xorg-base. You might need, for example, some of: xf86-input-synaptics xf86-video-something xinit.


Documentation needed

setup-gparted-desktop

Uses openbox.

This is a standalone script; it's not invoked by setup-alpine but must be run manually.

setup-mta

Uses ssmtp.

This is a standalone script; it's not invoked by setup-alpine but must be run manually.

setup-alpine-web

This is a standalone script; it's not invoked by setup-alpine but must be run manually.

setup-acf

This is a standalone script; it's not invoked by setup-alpine but must be run manually.

setup-ads

This is a standalone script; it's not invoked by setup-alpine but must be run manually.