Install to disk: Difference between revisions

From Alpine Linux
Line 43: Line 43:
{{Cmd|setup-alpine}}
{{Cmd|setup-alpine}}


Now for the manual steps. Create partitions with <code>fdisk</code>.  
Now for the manual steps. Install needed programs for the setup:
{{Cmd|apk add e2fsprogs syslinux mkinitfs}}
 
Create partitions with <code>fdisk</code>.  
{{Cmd|fdisk /dev/sda}}
{{Cmd|fdisk /dev/sda}}


You should have 2 partitions: {{Path|/dev/sda1}} as "Linux" (type 83) and {{Path|/dev/sda2}} as "linux swap" (type 82). The {{Path|/dev/sda1}} must be bootable (command "a" within <code>fdisk</code>).
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>).


Install needed programs for the setup:
Next, create your filesystem(s) and swap:
{{Cmd|apk add e2fsprogs syslinux mkinitfs}}


Create filesystem and swap:
{{Cmd|mkfs.ext4 /dev/sda1
{{Cmd|mkfs.ext4 /dev/sda1
mkswap /dev/sda2}}
mkswap /dev/sda2}}


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


Clone the current running config created by <code>setup-alpine</code> (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 -zx</nowiki>}}
{{Cmd|<nowiki>lbu package - | tar -C /mnt -zxf -</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>}}


Line 72: Line 73:
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 80: Line 81:
     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 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 <code>sda</code> and not <code>sda1</code>)
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)  

Revision as of 13:06, 20 October 2012

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 my 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.