Install to disk: Difference between revisions

From Alpine Linux
m (setup-alpine configures apk repositories)
m (Added internal link to Bootloaders)
(15 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Note|This document covers 2.x.x release.}}
= If using Alpine Linux 2.2.3 or later =
For 1.8.x and older please see [[Native Harddisk Install 1.6]]


== Installation ==
{{Warning|This will erase '''everything''' on your machine's harddisk. Don't blame me if someone sues you for this, your cat dies etc. You are warned.}}
Run ''setup-alpine'' to configure the keyboard, hostname and networking.


{{Cmd|setup-alpine}}
The following is meant to be an absolute newbie guide
 
* [[Burning ISOs|Burn the Alpine ISO image to a CD]]
* Put the CD into the new computer and turn on the power. Make sure the computer is capable to boot from a CD. Your manual for the computer or the BIOS can help.
* Wait for the text '''login:''' to appear, type '''root''' and press enter.
* Run the '''setup-alpine''' script
** Choose your keyboard layout. If you don't know your keyboard layout choose '''us'''. Here '''us''' was chosen.
*** Then I chose the '''us''' variant.
** Host name, which will be the name of your computer, you can just press enter if you want to use the default name
** Choose your network card, most people can just go with the default (press enter)
*** Most people will use DHCP, so press enter again, or you can enter in your static IP address
*** You will be asked if you want to do any manual network configuration, press enter for no
** Type in your root password twice.
** Choose a time zone, you can get a list by pressing '''?'''. If you want a sub zone, e.g. Africa, type in Africa and press enter, '''?''' will give you a list of sub zones in Africa.
** Press '''f''' to choose the fastest mirror.
** Choose an SSH server, this allows you to remotely manage your machine. OpenSSH is what the big distro's use, Dropbear is a tiny SSH replacement. Choose '''none''' for best security.
** Choose an NTP client, this keeps your machine's time accurate using an Internet time server. Openntpd is what the big distro's use, while Chrony is a tiny replacement.
** Choose a disk you want to install Alpine onto, as an example, '''sda''' is the first disk in your computer.
*** Now choose how you would like to use it, for this guide, choose '''sys''', this will install the entire OS onto your hard drive
*** You are given a final chance to back out, type in '''Y''' to continue
* The installation is now complete and you will be asked to reboot. Type in '''reboot''' and press enter
Take out the CD, and your computer should boot into Alpine using your hard drive.
 
=== Continue Setting up your Computer ===


Create partitions with fdisk.
* [[Alpine Linux package management]] ''(How to add/remove packages on your Alpine)''
* [[Alpine boot services]] ''(Configure a service to automatically boot at next reboot)''
* [[Setting up a ssh-server]] ''(Using ssh is a good way to administer your box remotely)''
* [[Tutorials and Howtos]] ''(Various tutorials, including how to setup a [[XFCE Setup|XFCE desktop]])''


{{Cmd|fdisk /dev/sda}}
[[Category:Installation]]


You should have 2 partitions: /dev/sda1 as "Linux" (type 83) and /dev/sda2 as "linux swap" (type 82). The /dev/sda1 must be bootable (command "a" within fdisk).
= If using Alpine Linux 2.2.2 or earlier =


Install needed programs for the setup  
A number of steps are nowadays included in the setup-disk and setup-lbu scripts, which are invoked by setup-alpine. But in these older systems, these steps have to be performed manually.


Run <code>setup-alpine</code> to configure the keyboard, hostname and networking.
{{Cmd|setup-alpine}}
Now for the manual steps. Install needed programs for the setup:
{{Cmd|apk add e2fsprogs syslinux mkinitfs}}
{{Cmd|apk add e2fsprogs syslinux mkinitfs}}


Create filesystem and swap  
Create partitions with <code>fdisk</code>.
{{Cmd|fdisk /dev/sda}}
 
Let's say you have 2 partitions: {{Path|/dev/sda1}} as "Linux" (type 83) and {{Path|/dev/sda2}} as "linux swap" (type 82). The partition containing {{Path|/boot}}---here, {{Path|/dev/sda1}}---must be marked bootable (command "a" within <code>fdisk</code>).
 
Next, create your filesystem(s) and swap:


{{Cmd|mkfs.ext4 /dev/sda1
{{Cmd|mkfs.ext4 /dev/sda1
mkswap /dev/sda2}}
mkswap /dev/sda2}}


Mount file-system
Mount the filesystem:
 
{{Cmd|mount -t ext4 /dev/sda1 /mnt}}
{{Cmd|mount -t ext4 /dev/sda1 /mnt}}


Clone the current running config created by setup-alpine (hostname, networking root password)
Clone the current running config created by <code>setup-alpine</code> (hostname, networking root password):
 
{{Cmd|<nowiki>lbu package - | tar -C /mnt -zxf -</nowiki>}}
{{Cmd|<nowiki>lbu package - | tar -C /mnt -zx</nowiki>}}
 
Install base packages on harddisk


Install base packages on the mounted disk:
{{Cmd|<nowiki>apk add --root=/mnt --initdb $(cat /etc/apk/world)</nowiki>}}
{{Cmd|<nowiki>apk add --root=/mnt --initdb $(cat /etc/apk/world)</nowiki>}}


Append the / and swap to fstab:
Append the / and swap to {{Path|/etc/fstab}}:
{{Cmd|echo -e "/dev/sda1 /    ext4  defaults 1 1" &gt;&gt; /mnt/etc/fstab
{{Cmd|echo -e "/dev/sda1 /    ext4  defaults 1 1" &gt;&gt; /mnt/etc/fstab
echo -e "/dev/sda2 none swap  sw      0 0" &gt;&gt; /mnt/etc/fstab}}
echo -e "/dev/sda2 none swap  sw      0 0" &gt;&gt; /mnt/etc/fstab}}


Configure the boot loader, extlinux. We use the provided syslinux as base.
Configure the boot loader, <code>extlinux</code>. We use the provided {{Path|syslinux.cfg}} as base.
 
{{Cmd|cp /media/cdrom/syslinux.cfg /mnt/boot/extlinux.conf
{{Cmd|cp /media/cdrom/syslinux.cf /mnt/boot/extlinux.conf
vi /mnt/boot/extlinux.conf}}
vi /mnt/boot/extlinux.conf}}


It should contain something like:  
It should contain something like:
  timeout 20
  timeout 20
  prompt 1
  prompt 1
Line 51: Line 80:
     append initrd=/boot/grsec.gz root=/dev/sda1 modules=ext4 quiet
     append initrd=/boot/grsec.gz root=/dev/sda1 modules=ext4 quiet


Install the bootloader:
Install the [[Bootloaders|bootloader]] on your {{Path|/boot}} partition:
{{Cmd|extlinux -i /mnt/boot}}
{{Cmd|extlinux -i /mnt/boot}}


Install syslinux bootloader at the beginning of the MBR so its bootable (note that its sda and not sda1)
Install the early-stage bootloader in the disk's MBR (note that it's {{Path|/dev/sda}} not {{Path|/dev/sda1}}!)
{{Cmd|<nowiki>dd if=/usr/share/syslinux/mbr.bin of=/dev/sda</nowiki>}}


{{Cmd|<nowiki>dd if=/usr/share/syslinux/mbr.bin of=/dev/sda</nowiki>}}
This also works:
{{Cmd|cat /usr/share/syslinux/mbr.bin > /dev/sda}}


Unmount, remove cdrom, and reboot. (If you can't eject, just remove it manually as the machine reboots)  
Unmount, remove cdrom, and reboot. (If you can't eject, just remove it manually as the machine reboots)  
{{Cmd|umount /mnt
{{Cmd|umount /mnt
umount /.modloop
umount /.modloop
Line 65: Line 95:
reboot}}
reboot}}


After reboot, you should be able to log in as root with the password you created in <tt>setup-alpine</tt>.
In recent versions of Alpine, the second line can be accomplished by <code>rc-service modloop stop</code>. (See [[FAQ#How_do_I_remove_the_CDROM.3F|this FAQ entry]]).
 
After reboot, you should be able to log in as root with the password you created in <code>setup-alpine</code>.
 
[[Category:Installation]]

Revision as of 00:09, 15 September 2017

If using Alpine Linux 2.2.3 or later

Warning: This will erase everything on your machine's harddisk. Don't blame me if someone sues you for this, your cat dies etc. You are warned.


The following is meant to be an absolute newbie guide

  • Burn the Alpine ISO image to a CD
  • Put the CD into the new computer and turn on the power. Make sure the computer is capable to boot from a CD. Your manual for the computer or the BIOS can help.
  • Wait for the text login: to appear, type root and press enter.
  • Run the setup-alpine script
    • Choose your keyboard layout. If you don't know your keyboard layout choose us. Here us was chosen.
      • Then I chose the us variant.
    • Host name, which will be the name of your computer, you can just press enter if you want to use the default name
    • Choose your network card, most people can just go with the default (press enter)
      • Most people will use DHCP, so press enter again, or you can enter in your static IP address
      • You will be asked if you want to do any manual network configuration, press enter for no
    • Type in your root password twice.
    • Choose a time zone, you can get a list by pressing ?. If you want a sub zone, e.g. Africa, type in Africa and press enter, ? will give you a list of sub zones in Africa.
    • Press f to choose the fastest mirror.
    • Choose an SSH server, this allows you to remotely manage your machine. OpenSSH is what the big distro's use, Dropbear is a tiny SSH replacement. Choose none for best security.
    • Choose an NTP client, this keeps your machine's time accurate using an Internet time server. Openntpd is what the big distro's use, while Chrony is a tiny replacement.
    • Choose a disk you want to install Alpine onto, as an example, sda is the first disk in your computer.
      • Now choose how you would like to use it, for this guide, choose sys, this will install the entire OS onto your hard drive
      • You are given a final chance to back out, type in Y to continue
  • The installation is now complete and you will be asked to reboot. Type in reboot and press enter

Take out the CD, and your computer should boot into Alpine using your hard drive.

Continue Setting up your Computer

If using Alpine Linux 2.2.2 or earlier

A number of steps are nowadays included in the setup-disk and setup-lbu scripts, which are invoked by setup-alpine. But in these older systems, these steps have to be performed manually.

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

setup-alpine

Now for the manual steps. Install needed programs for the setup:

apk add e2fsprogs syslinux mkinitfs

Create partitions with fdisk.

fdisk /dev/sda

Let's say you have 2 partitions: /dev/sda1 as "Linux" (type 83) and /dev/sda2 as "linux swap" (type 82). The partition containing /boot---here, /dev/sda1---must be marked bootable (command "a" within fdisk).

Next, create your filesystem(s) and swap:

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

Mount the filesystem:

mount -t ext4 /dev/sda1 /mnt

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

lbu package - | tar -C /mnt -zxf -

Install base packages on the mounted disk:

apk add --root=/mnt --initdb $(cat /etc/apk/world)

Append the / and swap to /etc/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 the provided syslinux.cfg as base.

cp /media/cdrom/syslinux.cfg /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 on your /boot partition:

extlinux -i /mnt/boot

Install the early-stage bootloader in the disk's MBR (note that it's /dev/sda not /dev/sda1!)

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

This also works:

cat /usr/share/syslinux/mbr.bin > /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

In recent versions of Alpine, the second line can be accomplished by rc-service modloop stop. (See this FAQ entry).

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