Dualbooting: Difference between revisions
m (Added warning that it does not work with the recent Alpine versions) |
(general warning => problem hint) |
||
Line 1: | Line 1: | ||
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. | 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. | ||
Line 24: | Line 23: | ||
Mount the newly formatted partition. After the mounting the partition will be available at {{Path|/mnt}}. | Mount the newly formatted partition. After the mounting the partition will be available at {{Path|/mnt}}. | ||
{{Cmd|mount -t ext3 /dev/sda3 /mnt}} | {{Cmd|mount -t ext3 /dev/sda3 /mnt}} | ||
== Basic setup == | == Basic setup == | ||
This sets up alpine without installing to any disk, yet. | |||
To do this, either run {{Cmd|setup-alpine}}, and when to prompted "Which disks do you like to use?" make sure to answer "none", and also answer "none" to the remaining prompts, about storing configs and the apk cache directory. | |||
Alternatively, run this command selection: | |||
{{Cmd|setup-timezone | {{Cmd|setup-timezone | ||
setup-alpine -q | setup-alpine -q | ||
Line 35: | Line 37: | ||
setup-ntp}} | setup-ntp}} | ||
See [[setup-alpine]] for more details. | See [[setup-alpine]] for more details. | ||
<!-- 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.--> | ||
== Install Alpine == | == Install Alpine == | ||
Now it's time to | Now it's time to copy the prepared system to the prepared partition(s) that where mounted below /mnt. | ||
=== In Alpine 2.2.3 or newer === | |||
{{Cmd|setup-disk -m sys /mnt}} | {{Cmd|setup-disk -m sys /mnt}} | ||
{{Tip|If you use extlinux and | {{Tip|If you use extlinux (default) and didn't create a separate boot partition, i.e. ({{Path|/boot}} resides on the root partition {{Path|/}}), you might need to adjust the paths to the boot files in {{Path|/boot/extlinux.conf}}, eg.: | ||
<pre>[...] | <pre>[...] | ||
LABEL hardened | LABEL hardened | ||
MENU DEFAULT | MENU DEFAULT | ||
MENU LABEL Linux hardened | MENU LABEL Linux hardened | ||
LINUX /boot/vmlinuz- | LINUX /boot/vmlinuz-lts | ||
INITRD /boot/initramfs- | INITRD /boot/initramfs-lts | ||
[...]</pre> | [...]</pre> | ||
Check that the <code>LINUX</code> and <code>INITRD</code> paths actually pint to the files shipped in your Alpine Linux release. | |||
}} | }} | ||
=== | === With older Alpine versions up to 2.2.3 === | ||
If using an earlier version of Alpine Linux, you'll need to install the files and [[Bootloaders|bootloader]] manually. | |||
{{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 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}}}} | ||
Line 68: | Line 77: | ||
Your system is now on {{Path|/dev/sda3}}. Next thing is to be able to boot on it. | Your system is now on {{Path|/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. | 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. |
Revision as of 09:06, 7 May 2021
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
Mount the newly formatted partition. After the mounting the partition will be available at /mnt.
mount -t ext3 /dev/sda3 /mnt
Basic setup
This sets up alpine without installing to any disk, yet.
To do this, either run
setup-alpine
, and when to prompted "Which disks do you like to use?" make sure to answer "none", and also answer "none" to the remaining prompts, about storing configs and the apk cache directory.
Alternatively, run this command selection:
setup-timezone setup-alpine -q setup-sshd setup-ntp
See setup-alpine for more details.
Install Alpine
Now it's time to copy the prepared system to the prepared partition(s) that where mounted below /mnt.
In Alpine 2.2.3 or newer
setup-disk -m sys /mnt
[...] LABEL hardened MENU DEFAULT MENU LABEL Linux hardened LINUX /boot/vmlinuz-lts INITRD /boot/initramfs-lts [...]
Check that the LINUX
and INITRD
paths actually pint to the files shipped in your Alpine Linux release.
With older Alpine versions up to 2.2.3
If using an earlier version of Alpine Linux, you'll need to install the files and bootloader manually.
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
We need to tell grub2 that the config has changed
update-grub2
Now it's time to test. Reboot your box.