Install to disk

From Alpine Linux
Revision as of 12:25, 30 August 2011 by Forth (talk | contribs) (update to ext4 and various misc from real life)
Note: This document covers 1.9.x release.

For 1.8.x and older please see Native Harddisk Install 1.6

Installation

Run setup-alpine to configure the keyboard, hostname and networking.

setup-alpine

Create partitions with fdisk.

fdisk /dev/sda

You should have 2 partitions: /dev/sda1 as "Linux" (type 83) and /dev/sda2 as "linux swap" (type 82). The /dev/sda1 should be bootable.

Install needed programs for the setup

apk add e2fsprogs syslinux mkinitfs

Create filesystem and swap

mkfs.ext4 /dev/sda1 mkswap /dev/sda2

Mount file-system

mount -t ext4 /dev/sda1 /mnt

Clone the current running config created by setup-alpine (hostname, networking root password)

lbu package - | tar -C /mnt -zx

Install base packages on harddisk

apk add --root=/mnt --initdb apk-tools alpine-baselayout alpine-conf linux-grsec busybox-initscripts acct

Create the repositories list. In this example we use the cdrom as repository:

mkdir -p /mnt/etc/apk echo "/media/cdrom/packages/core" >> /mnt/etc/apk/repositories echo "/media/cdrom/packages/extra" >> /mnt/etc/apk/repositories

Append the / and swap to fstab:

echo -e "/dev/sda1 / ext4 defaults 1 1" >> /mnt/etc/fstab echo -e "/dev/sda2 none swap sw 0 0" >> /mnt/etc/fstab

Configure the boot loader, extlinux. We use sthe provided syslinux as base.

cp /media/cdrom/syslinux.cf /mnt/boot/extlinux.conf vi /mnt/boot/extlinux.conf

It should contain something like:

timeout 20
prompt 1
default grsec
label grsec
    kernel /boot/grsec
    append initrd=/boot/grsec.gz root=/dev/sda1 modules=ext4 quiet

Install the bootloader:

extlinux -i /mnt/boot

Fix the MBR so its bootable (note that its sda and not sda1)

dd if=/usr/share/syslinux/mbr.bin of=/dev/sda

Unmount, remove cdrom, and reboot. (If you can't eject, just remove it manually as the machine reboots)

umount /mnt umount /.modloop eject reboot

After reboot, you should be able to log in as root with the password you created in setup-alpine.