Dualbooting: Difference between revisions

From Alpine Linux
(simplified steps. commented out the extlinux section. rephrased the warning message.)
Line 1: Line 1:
 
{{Warning|This Dualboot manual is intended for experienced users. You will have to manually edit partitions on your harddisk. Take adequate backup of important data before proceeding further.  
{{Warning|This Dualboot manual is intended for experienced users. You will have to figure out your bootloader and manually edit partitions on your disk. A script to make installation of Alpine to a free space on a disk alongside another operating system as simple and straightforward as to a full disk with setup-alpine is yet to be written. If you doubt you can do it, it may be better for you to buy an external drive, use a VM for a second OS or choose another distro.}}
If you want to avoid partitioing your existing hard disk, it may be better for you to buy an additional disk, or use a [[Tutorials_and_Howtos#Virtualization|virtualization]] for a second OS}}


It's assumed you have a box where you already run another operating system, and would like to be able to dual boot either the installed system or Alpine Linux.  
It's assumed you have a box where you already run another operating system, and would like to be able to dual boot either the installed system or Alpine Linux.  
{{Note|If you are interested in installing Alpine Linux in a virtual machine/containers refer [[Tutorials_and_Howtos#Virtualization|virtualization]] and [[:Category:Virtualization]].}}


== Basic setup ==
== Basic setup ==
Line 21: Line 19:
== Format the partition ==
== Format the partition ==


First format your partition. The above [[Setting_up_disks_manually#Manual_partitioning]] would have installed the necessary tool. If not, install the necessary tools for doing the formatting.  
First format your partition. During the above [[#Create_a_Partition|partioning]] step, you would have installed the necessary formatting tool {{pkg|e2fsprogs|repo=main}}. If not, install the tool for formatting the partition.
 
{{Cmd|# apk add e2fsprogs}}


{{Warning|Make sure you format the right partition! The {{Path|/dev/sdXY}} is only a example. If you choose the wrong partition, your data will be gone. Make a backup first if you are unsure.}}
{{Warning|Make sure you format the right partition! The {{Path|/dev/sdXY}} is only a example. If you choose the wrong partition, your data will be gone. Make a backup first if you are unsure.}}


{{Cmd|# apk add e2fsprogs}}
{{Cmd|# mkfs.ext4 /dev/sdXY}}
{{Cmd|# mkfs.ext4 /dev/sdXY}}


== Mount the partition ==
== Mount the partition ==
Mount the newly formatted partition. After mounting, the partition will be available at {{Path|/mnt}}.
Mount the newly formatted partition. After mounting, the partition will be available at {{Path|/mnt}}.
{{Cmd|# mount -t ext4 /dev/sdXY /mnt}}
{{Cmd|# mount -t ext4 /dev/sdXY /mnt}}


== Install Alpine on the mounted partition ==
== Install Alpine on the mounted partition ==


Now it's time to copy the prepared system to the prepared partition(s) that were mounted below /mnt.
Now install Alpine Linux using the [[Alpine_setup_scripts#setup-disk|setup-disk]] script to the formatted partition(s) that was mounted on /mnt.


{{Cmd|# setup-disk -m sys /mnt}}
{{Cmd|# setup-disk -m sys /mnt}}


See [[Alpine_setup_scripts#setup-disk|setup-disk]] for more details on the working of the command.
The above command would have installed [[Bootloaders#GRUB|grub]] and {{pkg|grub-efi|repo=main}} and no further configuration should be required. 
 
Your dual boot installation can be considered complete. You be should be able to dual boot once you  [[Installation#Reboot|reboot]].
 
If you face any difficulty, refer [[#Configure_bootloader|configure bootloader]] section.  
   
   
<!---
<!---
Line 58: Line 62:
== Configure bootloader ==
== Configure bootloader ==


The previous step would have installed [[Bootloaders#GRUB|grub]] and {{pkg|grub-efi|repo=main}} and you should be able to dual boot now. No further configuration should be required.
There are different [[Bootloaders|bootloaders]] to get a boot menu that allows selecting the operating system to boot. It is easiest to simply install and use [[Bootloaders#rEFInd|rEFInd]] boot manager for dual boot between Alpine Linux and Windows.  
 
There are different [[Bootloaders|bootloaders]] to get a boot menu that allows selecting the operating system to boot. It is easiest on (U)EFI based hardware platforms, where one may simply install and use [[Bootloaders#rEFInd|rEFInd]] boot manager.


Otherwise, one may adjust the bootloader that has already been installed (by the other operating system)Because bootloaders vary, you'll need to figure out how to make yours boot your Alpine install.
Otherwise, one may adjust the bootloader that has already been installed by the other operating system.   


Hopefully you can get some ideas from the following example, adjusting Grub2 to boot Alpine:
=== Dual/Multiboot with Linux ===
The following example is given to give you some ideas for adjusting [[Bootloaders#GRUB|grub]] to boot Alpine.


Reboot your system ''(start Ubuntu)''.
Reboot your system ''(start Ubuntu)''.
Line 93: Line 96:
{{Note|You might need to press SHIFT when booting your box in order to see the grub-menu.}}
{{Note|You might need to press SHIFT when booting your box in order to see the grub-menu.}}


== Windows ==
=== Dualboot with Windows ===
For Windows partitions to be detected with grub, you need `os-prober` and `grub-mount` installed at the time grub-mkconfig runs.
For Windows partitions to be detected with grub, you need `os-prober` and `grub-mount` installed at the time grub-mkconfig runs.



Revision as of 17:02, 8 September 2024

Warning: This Dualboot manual is intended for experienced users. You will have to manually edit partitions on your harddisk. Take adequate backup of important data before proceeding further. If you want to avoid partitioing your existing hard disk, it may be better for you to buy an additional disk, or use a virtualization for a second OS


It's assumed you have a box where you already run another operating system, and would like to be able to dual boot either the installed system or Alpine Linux.

Basic setup

Follow the Installation steps until the Base configuration. i.e set up Alpine without installing to a disk.

Create a Partition

To dual boot, Alpine needs a separate partition where it can be installed to. If you don't already have one free, refer Manual partitioning, to create a new Partition.

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

Note: If you are using btrfs filesystem, there is no need to create a partition. Refer btrfs tutorial

.

Format the partition

First format your partition. During the above partioning step, you would have installed the necessary formatting tool e2fsprogs. If not, install the tool for formatting the partition.

# apk add e2fsprogs

Warning: Make sure you format the right partition! The /dev/sdXY is only a example. If you choose the wrong partition, your data will be gone. Make a backup first if you are unsure.


# mkfs.ext4 /dev/sdXY

Mount the partition

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

# mount -t ext4 /dev/sdXY /mnt

Install Alpine on the mounted partition

Now install Alpine Linux using the setup-disk script to the formatted partition(s) that was mounted on /mnt.

# setup-disk -m sys /mnt

The above command would have installed grub and grub-efi and no further configuration should be required.

Your dual boot installation can be considered complete. You be should be able to dual boot once you reboot.

If you face any difficulty, refer configure bootloader section.


Configure bootloader

There are different bootloaders to get a boot menu that allows selecting the operating system to boot. It is easiest to simply install and use rEFInd boot manager for dual boot between Alpine Linux and Windows.

Otherwise, one may adjust the bootloader that has already been installed by the other operating system.

Dual/Multiboot with Linux

The following example is given to give you some ideas for adjusting grub 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:

# blkid /dev/sdXY

Start editing the grub2 configuration

# gedit /etc/grub.d/40_custom

I edited the file to look something like this:

Contents of /etc/grub.d/40_custom

#!/bin/sh echo "Adding Alpine" >&2 cat << EOF menuentry "Alpine Linux" { set root=(hd0,3) linux /boot/vmlinuz-lts root=UUID=8de6973a-4a8c-40ed-b710-c4e2b42d6b7a modules=sd-mod,usb-storage,ext4 quiet initrd /boot/initramfs-lts } EOF
Note: The root, linux, initrd, and UUID values mentioned above should be replaced with those of your system, e.g. the UUID you got when running the 'blkid' command.

Finally the configuration changes need to be applied to the grub2 bootloader:

update-grub

Now it's time to test. Reboot your box.

Note: You might need to press SHIFT when booting your box in order to see the grub-menu.

Dualboot with Windows

For Windows partitions to be detected with grub, you need `os-prober` and `grub-mount` installed at the time grub-mkconfig runs.

Note: The following needs to be tested

To upgrade the grub installation, the efi directory must be mounted in /boot/efi/. To know in which partition the efi is, we must examine the partition table, so if your main disk is /dev/sda then.

# fdisk -l /dev/sda

Device             Start        End   Sectors   Size Type
/dev/sda1           2048     309247    307200   150M EFI System

# mkdir /boot/efi

# mount /dev/sda1 /boot/efi/

# apk add efibootmgr

(If your system supports UEFI. Most PC's from 2010, support UEFI)

Install grub

# grub-install –root-directory=/mnt

After grub re-installation, unmount efi partition:

# umount /boot/efi/

References