Installing on GPT LVM: Difference between revisions
(removed @edge/testing repository information, added sgdisk to del command.) |
mNo edit summary |
||
Line 1: | Line 1: | ||
This is updated version of this Howto [http://wiki.alpinelinux.org/wiki/Setting_up_LVM_on_GPT-labeled_disks Setting up LVM on GPT-labeled disks]. | This is an updated version of this Howto: [http://wiki.alpinelinux.org/wiki/Setting_up_LVM_on_GPT-labeled_disks Setting up LVM on GPT-labeled disks]. | ||
This document describes how to set up a system booting from a logical volume in Alpine Linux using lvm2 and GPT-labeled disks. | This document describes how to set up a system booting from a logical volume in Alpine Linux using lvm2 and GPT-labeled disks. | ||
Line 8: | Line 8: | ||
Alpine Linux ISO used in this installation: alpine-vanilla-3.7.0-x86_64.iso | Alpine Linux ISO used in this installation: alpine-vanilla-3.7.0-x86_64.iso | ||
This PC | This PC has BIOS, not UEFI (UEFI installation may differ) | ||
Tested on APU4C with Kingston mSata SSD | Tested on APU4C with 30GB Kingston mSata SSD (SMS200S3/30G). | ||
Line 16: | Line 16: | ||
We need to install some tools, as 'gptfdisk' and 'sgdisk' are part of main. | We need to install some tools, as 'gptfdisk' and 'sgdisk' are part of main. | ||
Install | Install gptfdisk. | ||
{{Cmd|apk add -U gptfdisk sgdisk}} | {{Cmd|apk add -U gptfdisk sgdisk}} | ||
Create some | Create some partitions. In my case the SSD disk is found as sda, so I will use 'sda' throughout the process. | ||
{{Cmd|gdisk /dev/sda}} | {{Cmd|gdisk /dev/sda}} | ||
# create a new empty GUID partition table (GPT) with 'o' | # create a new empty GUID partition table (GPT) with 'o' | ||
o # then 'y' to confirm | o # then 'y' to confirm | ||
# create some | # create some partitions: BIOS (needed only for GRUB2), Boot (needed by SYSLINUX), and LVM | ||
n | n | ||
1 | 1 | ||
Line 47: | Line 47: | ||
3 210944 15662270 7.4 GiB 8E00 Linux LVM | 3 210944 15662270 7.4 GiB 8E00 Linux LVM | ||
We need to set the 'legacy BIOS bootable' flag on our boot partition, which can be done in gdisk by first entering expert mode with 'x' | We need to set the 'legacy BIOS bootable' flag on our boot partition, which can be done in gdisk by first entering expert mode with 'x' then editing attributes with 'a'. It's used by SYSLINUX's GPT support to identify a partition that holds second-stage boot code. | ||
x | x | ||
a | a | ||
Line 74: | Line 74: | ||
2 (legacy BIOS bootable) | 2 (legacy BIOS bootable) | ||
Press 'Enter' to exit the expert mode and then write table to disk and exit gdisk with 'w'. | |||
You can verify the legacy_boot flag with sgdisk (also part of the gptfdisk) | You can verify the legacy_boot flag with sgdisk (also part of the gptfdisk). | ||
{{Cmd|1=sgdisk /dev/sda --attributes=1:show}} | {{Cmd|1=sgdisk /dev/sda --attributes=1:show}} | ||
Line 83: | Line 83: | ||
{{Cmd|1=sgdisk /dev/sda --attributes=3:show}} | {{Cmd|1=sgdisk /dev/sda --attributes=3:show}} | ||
Remove gptfdisk (if not needed anymore) | Remove gptfdisk (if not needed anymore). | ||
{{Cmd|apk del gptfdisk sgdisk}} | {{Cmd|apk del gptfdisk sgdisk}} | ||
=== LVM Setup === | === LVM Setup === | ||
Now we can setup LVM on the third partition created in above | Now we can setup LVM on the third partition created in the process above. | ||
{{Cmd|apk add lvm2 e2fsprogs syslinux}} | {{Cmd|apk add lvm2 e2fsprogs syslinux}} | ||
Line 103: | Line 103: | ||
2 logical volume(s) in volume group "vg00" now active | 2 logical volume(s) in volume group "vg00" now active | ||
Format new logical volume and activate swap | Format new logical volume and activate swap. | ||
{{Cmd|mkfs.ext3 /dev/sda2}} | {{Cmd|mkfs.ext3 /dev/sda2}} | ||
{{Cmd|mkfs.ext4 /dev/vg00/alpine_rootfs}} | {{Cmd|mkfs.ext4 /dev/vg00/alpine_rootfs}} | ||
{{Cmd|mkswap /dev/vg0/swap}} | {{Cmd|mkswap /dev/vg0/swap}} | ||
Mount for finishing | Mount for finishing Alpine Linux installation. | ||
{{Cmd|mount -t ext4 /dev/vg00/alpine_rootfs /mnt}} | {{Cmd|mount -t ext4 /dev/vg00/alpine_rootfs /mnt}} | ||
{{Cmd|mkdir /mnt/boot}} | {{Cmd|mkdir /mnt/boot}} | ||
Line 114: | Line 114: | ||
=== Finish installation === | === Finish installation === | ||
Run this command to finish installing | Run this command to finish installing Alpine Linux to our newly mounted partition on /mnt: | ||
{{Cmd|setup-disk -m sys /mnt}} | {{Cmd|setup-disk -m sys /mnt}} | ||
Output of setup-disk should be like this | Output of setup-disk should be like this: | ||
Installing system on /dev/vg00/alpine_rootfs: | Installing system on /dev/vg00/alpine_rootfs: | ||
/mnt/boot is device /dev/sda2 | /mnt/boot is device /dev/sda2 | ||
Line 125: | Line 125: | ||
=== Syslinux === | === Syslinux === | ||
Install the MBR | Install the MBR. | ||
{{Cmd|1=dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=/dev/sda}} | {{Cmd|1=dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=/dev/sda}} | ||
Revision as of 21:48, 26 March 2019
This is an updated version of this Howto: Setting up LVM on GPT-labeled disks.
This document describes how to set up a system booting from a logical volume in Alpine Linux using lvm2 and GPT-labeled disks.
Begin by booting from Alpine Linux installation media in the usual way. Log in as `root`, run `setup-alpine`, and answer `none` when asked to choose a disk.
Info
Alpine Linux ISO used in this installation: alpine-vanilla-3.7.0-x86_64.iso
This PC has BIOS, not UEFI (UEFI installation may differ)
Tested on APU4C with 30GB Kingston mSata SSD (SMS200S3/30G).
Partitioning
We need to install some tools, as 'gptfdisk' and 'sgdisk' are part of main.
Install gptfdisk.
apk add -U gptfdisk sgdisk
Create some partitions. In my case the SSD disk is found as sda, so I will use 'sda' throughout the process.
gdisk /dev/sda
# create a new empty GUID partition table (GPT) with 'o' o # then 'y' to confirm # create some partitions: BIOS (needed only for GRUB2), Boot (needed by SYSLINUX), and LVM n 1 <enter> +2M ef02 n 2 <enter> +100M 8300 n 3 <enter> <enter> 8e00 # print the partition table with 'p'
You should get something like this:
Number Start (sector) End (sector) Size Code Name 1 2048 6143 2.0 MiB EF02 BIOS boot partition 2 6144 210943 100.0 MiB 8300 Linux filesystem 3 210944 15662270 7.4 GiB 8E00 Linux LVM
We need to set the 'legacy BIOS bootable' flag on our boot partition, which can be done in gdisk by first entering expert mode with 'x' then editing attributes with 'a'. It's used by SYSLINUX's GPT support to identify a partition that holds second-stage boot code.
x a 2 2
It looks like this:
Command (? for help): x
Expert command (? for help): a Partition number (1-3): 2 Known attributes are: 0: system partition 1: hide from EFI 2: legacy BIOS bootable 60: read-only 62: hidden 63: do not automount
Attribute value is 0000000000000000. Set fields are: No fields set
Toggle which attribute field (0-63, 64 or <Enter> to exit): 2 Have enabled the 'legacy BIOS bootable' attribute. Attribute value is 0000000000000004. Set fields are: 2 (legacy BIOS bootable)
Press 'Enter' to exit the expert mode and then write table to disk and exit gdisk with 'w'.
You can verify the legacy_boot flag with sgdisk (also part of the gptfdisk).
sgdisk /dev/sda --attributes=1:show
sgdisk /dev/sda --attributes=2:show
2:2:1 (legacy BIOS bootable)
sgdisk /dev/sda --attributes=3:show
Remove gptfdisk (if not needed anymore).
apk del gptfdisk sgdisk
LVM Setup
Now we can setup LVM on the third partition created in the process above.
apk add lvm2 e2fsprogs syslinux
pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created
vgcreate vg00 /dev/sda3
Volume group "vg00" successfully created
lvcreate -n alpine_rootfs -L4G vg00
Logical volume "alpine_rootfs" created
lvcreate -n swap -C y -L 512M vg00
Logical volume "swap" created
rc-update add lvm
* service lvm added to runlevel default
vgchange -ay
2 logical volume(s) in volume group "vg00" now active
Format new logical volume and activate swap.
mkfs.ext3 /dev/sda2
mkfs.ext4 /dev/vg00/alpine_rootfs
mkswap /dev/vg0/swap
Mount for finishing Alpine Linux installation.
mount -t ext4 /dev/vg00/alpine_rootfs /mnt
mkdir /mnt/boot
mount -t ext3 /dev/sda2 /mnt/boot
Finish installation
Run this command to finish installing Alpine Linux to our newly mounted partition on /mnt:
setup-disk -m sys /mnt
Output of setup-disk should be like this:
Installing system on /dev/vg00/alpine_rootfs: /mnt/boot is device /dev/sda2 /boot is device /dev/sda2 You might need fix the MBR to be able to boot
Syslinux
Install the MBR.
dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=/dev/sda
Reboot and enjoy your new Alpine Linux installation!