Dualbooting: Difference between revisions

From Alpine Linux
(Reorganize)
m (Added warning that it does not work with the recent Alpine versions)
(18 intermediate revisions by 8 users not shown)
Line 1: Line 1:
= General =
{{Warning|The information on this page is outdated and does not work with the recent versions of Alpine Linux}}


Assume you have a box where you run Ubuntu ''(or your favourite distro)''.<BR>
Assume you have a box where you run Ubuntu or your favourite distro. Now you would like to be able to boot either your already installed system or Alpine.
Now you would like to be able to boot either Ubuntu or Alpine.


= Prepare your hardware =
= Prepare your hardware =
You will need a partition for your Alpine installation.<BR>
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. <tt>fdisk</tt> can help.
If you don't already have one free, you need to create a primary partition with enough space for your Alpine installation.<BR>
''(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.<BR>
Make notes of what partition you will use for your Alpine installation. In this example we are going to install Alpine on '''/dev/sda3'''.
''('''Note:''' In this example we are going to install Alpine on '''/dev/sda3''')''


= Installing Alpine on HDD =
= Installing Alpine on HDD =


Now the fun begins... it's time to install Alpine.<BR>
Now it's time to install Alpine. Boot your system with a CD containing the latest Alpine Standard from [http://alpinelinux.org/downloads Downloads].
Boot on CD using latest Alpine Standard iso from [http://alpinelinux.org/downloads Downloads].


== Format HDD-partition ==
== Format and mount HDD partition ==


First we want to format your partition.<br />
First format your partition. We will need some tools for doing the formatting. After you are done those tools can be removed.
We will need some tools for doing the formatting ''(we remove them when formatting is done)''.
 
apk add e2fsprogs
{{Cmd|apk add e2fsprogs
mkfs.ext3 /dev/sda3
mkfs.ext3 /dev/sda3
apk del e2fsprogs
apk del e2fsprogs}}
''('''Note:''' Remember to make sure you format the right partition!!! The '/dev/sda3' is only a example.)''
 
{{Warning|Make sure you format the right partition! The {{Path|/dev/sda3}} is only a example. If you choose the wrong partition your data will be gone. Make a backup first when you are unsure.}}
 
Mount the newly formatted partition. After the mounting the partition will be available at {{Path|/mnt}}.
{{Cmd|mount -t ext3 /dev/sda3 /mnt}}


== Basic setup ==
== Basic setup ==
Line 31: Line 30:


In Alpine 2.2.3 or newer, type:
In Alpine 2.2.3 or newer, type:
setup-timezone
{{Cmd|setup-timezone
setup-alpine -q
setup-alpine -q
setup-sshd
setup-sshd
setup-ntp
setup-ntp}}
 
See [[setup-alpine]] for more details. (If you omit the <code>-q</code> flag to <code>setup-alpine</code>, you'll be prompted "Which disks yous you like to use?" Answer "none", and also answer "none" to the remaining prompts, about storing configs and an apk cache directory.)


<!-- If the "answerfile" functionality of setup-alpine is changed to permit specifying "-m none" for setup-disk, this sequence could be expressed more concisely.-->
<!-- If the "answerfile" functionality of setup-alpine is changed to permit specifying "-m none" for setup-disk, this sequence could be expressed more concisely.-->


In Alpine 2.2.2 or earlier, just type:
== Install Alpine ==
setup-alpine
 
Now it's time to put our files on the partition.
 
If using Alpine Linux 2.2.3 or higher, just type:
{{Cmd|setup-disk -m sys /mnt}}
 
{{Tip|If you use extlinux and you didn't create a separate boot partition ({{Path|/boot}} is on the root partition {{Path|/}}), you might need to update the path to vmlinuz in {{Path|/boot/extlinux.conf}}, eg.:
<pre>[...]
LABEL hardened
  MENU DEFAULT
  MENU LABEL Linux hardened
  LINUX /boot/vmlinuz-hardened
  INITRD /boot/initramfs-hardened
[...]</pre>
}}


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


We start by mounting the newly formatted partition ''(mounting it on /mnt/)''.
=== Installing files manually ===
mount -t ext3 /dev/sda3 /mnt


Now it's time to put our files on the partition.
{{Tip|If using a version of Alpine Linux older than 2.2.0, replace {{Path|/etc/apk/world}} in the last line with {{Path|/var/lib/apk/world}}}}
{{Tip|If using Alpine Linux 2.2.0 or higher, replace /var/lib/apk/world in line 4 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.
{{Cmd|lbu package - {{!}} tar -C /mnt -xzf -
apk add --root /mnt --initdb --repositories-file /etc/apk/repositories --keys-dir \
  /etc/apk/keys $(cat /etc/apk/world) acct linux-hardened alpine-base}}


== Bootloader ==
Your system is now on {{Path|/dev/sda3}}. Next thing is to be able to boot on it.


On your system you already have a bootloader of some kind.<BR>
=== Installing bootloader manually ===
The bootloaders varies, so you need to figure out how to make it boot your Alpine distro.<BR>
Hopefully you get some ideas by looking at the [[#Grub2|Grub2]] example below.


=== Grub2 ===
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.
In my case I have Grub2 so I will describe what I did to boot Alpine.
Line 67: Line 76:
Reboot your system ''(start Ubuntu)''.
Reboot your system ''(start Ubuntu)''.


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


Take notes of the UUID of the partition you are planning to use
Take notes of the UUID of the partition you are planning to use:
sudo blkid /dev/sda3
{{Cmd|sudo blkid /dev/sda3}}


Start editing grub2 configuration  
Start editing grub2 configuration  
gksudo gedit /etc/grub.d/40_custom
{{Cmd|gksudo gedit /etc/grub.d/40_custom}}


I edited the file so it looks something like this:
I edited the file so it looks something like this:
<PRE>#!/bin/sh
<pre>#!/bin/sh
exec tail -n +3 $0
echo "Adding Alpine" >&2
echo "Adding Alpine" >&2
cat << EOF
cat << EOF
menuentry "Alpine Linux" {
menuentry "Alpine Linux" {
  set root=(hd0,3)
  set root=(hd0,3)
  linux /boot/vmlinuz-grsec root=UUID=8de6973a-4a8c-40ed-b710-c4e2b42d6b7a modules=sd-mod,usb-storage,ext3 quiet
  linux /boot/vmlinuz-hardened root=UUID=8de6973a-4a8c-40ed-b710-c4e2b42d6b7a modules=sd-mod,usb-storage,ext3 quiet
  initrd /boot/initramfs-grsec
  initrd /boot/initramfs-hardened
}
}
EOF</PRE>
EOF</pre>
''('''Note:''' The UUID-value mentioned above '8de6973a-4a8c-40ed-b710-c4e2b42d6b7a' should be replaced with the UUID you got when running your 'blkid' command.)
{{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
We need to tell grub2 that the config has changed
update-grub2
{{Cmd|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.}}


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

Revision as of 23:31, 27 January 2019

Warning: The information on this page is outdated and does not work with the recent versions of Alpine Linux


Assume you have a box where you run Ubuntu or your favourite distro. Now you would like to be able to boot either your already installed system 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. fdisk can help.

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

Installing Alpine on HDD

Now it's time to install Alpine. Boot your system with a CD containing the latest Alpine Standard from Downloads.

Format and mount HDD partition

First format your partition. We will need some tools for doing the formatting. After you are done those tools can be removed.

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. If you choose the wrong partition your data will be gone. Make a backup first when you are unsure.


Mount the newly formatted partition. After the mounting the partition will be available at /mnt.

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

See setup-alpine for more details. (If you omit the -q flag to setup-alpine, you'll be prompted "Which disks yous you like to use?" Answer "none", and also answer "none" to the remaining prompts, about storing configs and an apk cache directory.)


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

Tip: If you use extlinux and you didn't create a separate boot partition (/boot is on the root partition /), you might need to update the path to vmlinuz in /boot/extlinux.conf, eg.:
[...]
LABEL hardened
  MENU DEFAULT
  MENU LABEL Linux hardened
  LINUX /boot/vmlinuz-hardened
  INITRD /boot/initramfs-hardened
[...]

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 a version of Alpine Linux older than 2.2.0, replace /etc/apk/world in the last line with /var/lib/apk/world

lbu package - | tar -C /mnt -xzf - apk add --root /mnt --initdb --repositories-file /etc/apk/repositories --keys-dir \ /etc/apk/keys $(cat /etc/apk/world) acct linux-hardened 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
echo "Adding Alpine" >&2
cat << EOF
menuentry "Alpine Linux" {
 set root=(hd0,3)
 linux /boot/vmlinuz-hardened root=UUID=8de6973a-4a8c-40ed-b710-c4e2b42d6b7a modules=sd-mod,usb-storage,ext3 quiet
 initrd /boot/initramfs-hardened
}
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.