Dualbooting

From Alpine Linux
Revision as of 03:45, 5 March 2012 by Dubiousjim (talk | contribs) (line wrapping)

General

Assume you have a box where you run Ubuntu (or your favourite distro).
Now you would like to be able to boot either Ubuntu or Alpine.

Prepare your hardware

You will need a partition for your Alpine installation.
If you don't already have one free, you need to create a primary partition with enough space for your Alpine installation.
(The tools you use for managing your partitions might differ, so you need to figure out your self how to use them)

Make notes of what partition you will use for your Alpine installation.
(Note: In this example we are going to install Alpine on /dev/sda3)

Installing Alpine on HDD

Now the fun begins... it's time to install Alpine.
Boot on CD using latest Alpine Standard iso from Downloads.

Format and mount HDD partition

First we want to format your partition. We will need some tools for doing the formatting (we remove them when formatting is done).

apk add e2fsprogs mkfs.ext3 /dev/sda3 apk del e2fsprogs

Warning: Make sure you format the right partition! The /dev/sda3 is only a example.


Mount the newly formatted partition:

mount -t ext3 /dev/sda3 /mnt

Basic setup

Next, do some basic setup for your Alpine system.

In Alpine 2.2.3 or newer, type:

setup-timezone setup-alpine -q setup-sshd setup-ntp


In Alpine 2.2.2 or earlier, just type:

setup-alpine

Install Alpine

Now it's time to put our files on the partition.

If using Alpine Linux 2.2.3 or higher, just type:

setup-disk -m sys /mnt

If using an earlier version of Alpine Linux, you'll need to install the files and bootloader manually, as described below.

Installing files manually

Tip: If using Alpine Linux 2.2.0 or higher, replace /var/lib/apk/world in the last line with /etc/apk/world

lbu package /tmp/tmp.apkovl.tar.gz cd /mnt tar -xzf /tmp/tmp.apkovl.tar.gz apk add --root /mnt --initdb --repositories-file /etc/apk/repositores --keys-dir \ /etc/apk/keys $(cat /var/lib/apk/world) acct linux-grsec alpine-base

Your system is now on /dev/sda3. Next thing is to be able to boot on it.

Installing bootloader manually

On your system you already have a bootloader of some kind.
The bootloaders vary, so you need to figure out how to make it boot your Alpine distro.
Hopefully you get some ideas by looking at the following example below.

In my case I have Grub2 so I will describe what I did to boot Alpine.

Reboot your system (start Ubuntu).

Start a 'terminal' (ALT-F2 + "terminal" + [Run])

Take notes of the UUID of the partition you are planning to use:

sudo blkid /dev/sda3

Start editing grub2 configuration

gksudo gedit /etc/grub.d/40_custom

I edited the file so it looks something like this:

#!/bin/sh
exec tail -n +3 $0
echo "Adding Alpine" >&2
cat << EOF
menuentry "Alpine Linux" {
 set root=(hd0,3)
 linux /boot/vmlinuz-grsec root=UUID=8de6973a-4a8c-40ed-b710-c4e2b42d6b7a modules=sd-mod,usb-storage,ext3 quiet
 initrd /boot/initramfs-grsec
}
EOF

(Note: The UUID-value mentioned above '8de6973a-4a8c-40ed-b710-c4e2b42d6b7a' should be replaced with the UUID you got when running your 'blkid' command.) We need to tell grub2 that the config has changed

update-grub2

Now it's time to test.
Reboot your box.
(Note: You might need to press SHIFT when booting up your box in order to see the grub-menu.)