Alpine setup scripts
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".
setup-keymap
[us us]setup-hostname
[-n alpine-test]- setup-interfaces [-i < interfaces-file]
/etc/init.d/networking --quiet start &
- if none of the networking interfaces were configured using dhcp, then:
setup-dns
[-d example.com -n "8.8.8.8 [...]"] - set the root password
- if not in quick mode, then: setup-timezone [-z UTC | -z America/New_York | -p EST+5]
- enable the new hostname (
/etc/init.d/hostname --quiet restart
) - add
networking
andurandom
to the boot rc level, andacpid
andcron
to the default rc level, and start the boot and default rc services - extract the fully-qualified domain name and hostname from /etc/resolv.conf and
hostname
, and update /etc/hosts setup-apkrepos
[-r (to select a mirror randomly)]- if not in quick mode, then:
setup-sshd
[-c openssh | dropbear | none] - if not in quick mode, then:
setup-ntp
[-c chrony | openntpd | none] - if not in quick mode, then:
DEFAULT_DISK=none
setup-disk-q
[-m data /dev/sda] - if installation mode selected during setup-disk was "data" instead of "sys", then:
setup-lbu
[/media/sdb1] - 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 ...]
This script accepts the following command-line switches:
- -k kernel flavor
- -o apkovl file
- Restore system from apkovl file
- -m data | sys
- Don't prompt for installation mode. With -m data, the supplied devices are formatted using ext4 to use as a /var volume.
- -r
- Use RAID1 with a single disk (degraded mode)
- -L
- Create partitions inside LVM
- -s swap size in MB
- Use 0 to disable swap
- -q
- Exit quietly if no disks are found
- -v
- Verbose mode
The script also honors the following environment variables:
BOOT_SIZE
- Size of the boot partition in MB; defaults to 100. Only used if -m sys is specified or interactively selected.
SWAP_SIZE
- Size of the swap volume in MB; set to 0 to disable swap. If not specified, will default to twice RAM, up to 4096, but won't be more than 1/3 the size of the smallest disk, and if less than 64 will just be 0. Only used if -m sys is specified or interactively selected.
ROOTFS
- Filesystem to use for the / volume; defaults to ext4. Only used if -m sys is specified or interactively selected. Supported filesystems are: ext2 ext3 ext4 btrfs.
BOOTFS
- Filesystem to use for the /boot volume; defaults to ext4. Only used if -m sys is specified or interactively selected. Supported filesystems are: ext2 ext3 ext4 btrfs.
MBR
- Path of MBR binary code, defaults to /usr/share/syslinux/mbr.bin.
Partitioning
If you have complex partitioning needs, you can partition, format, and mount your volumes manually, then just supply the root mountpoint to setup-disk
. Doing so implicitly behaves as though -m sys had also been specified.
RAID
If more than one device are supplied, a RAID array is built using them. The array will always be RAID1 (and --metadata=0.90) for the /boot volumes, but will be RAID5 for non-boot volumes when 3 or more devices are supplied. (See also the -r switch.)
LVM
LVM groups and volumes created by the script will have the following names:
- volume group: vg0
- swap volume: lv_swap (only created when swap size > 0)
- root volume: lv_root (only created when -m sys is specified or interactively selected)
- var volume: lv_var (only created when -m data is specified or interactively selected); also these volumes are currently always formatted as ext4.
The lv_var or lv_root volumes are created to occupy all remaining space in the volume group.
If you need to change any of these settings, you can use vgrename
, lvrename
, lvreduce
or lvresize
.
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.