Příprava LVM pro instalaci Linuxu

23 Nov 2021 - bobac

Experimentuji z Arch Linuxem. Hlavní důvod je, že se zdá, že Arch je cesta, jak pochopit, relativně do detailů, jak některé věci, které před námi “velké” distribuce jako Debian, Ubuntu, či třeba Fedora tají tím, že je tak nějak udělají za nás. V následujcím postu se pokusím popsat, co je třeba udělat k rozběhnutí Linuxu na LVM s GPT diskem a EFI.

Partitions

Vyrobil jsem si GPT disk se 3 partition:

/dev/sda1 - EFI System - 512MB
/dev/sda2 - Linux Swap - 2*RAM
/dev/sda3 - Linux LVM - 220GB

Swap

  1. vytvoření swapu: mkswap /dev/sda2
  2. zapnutí swapu: swapon /dev/sda2
  3. ověření, že swap swappuje - free

Formátování EFI partition

EFI naformátujeme jako FAT32 pomocí mkfs.fat -F 32 /dev/sda1

LVM

Zjištění, jaké LVM capable partition máme k dispozici

Bylo by hezké, kdyby tam byly i ty naše nově vytvořené:-)

lvmdiskscan

Vytvoření LVM Physical Volume

pvcreate DEVICE kde DEVICE může být disk nebo partition. POZOR! je to destruktivní akce:

# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

Ověření: pvdisplay

  "/dev/sda3" is a new physical volume of "220.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda3
  VG Name
  PV Size               220.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               Dhjl3L-fHD3-Yic2-R3s9-e1Op-mPka-FCGgwF

Sumář lze také získat pomocí pvscan:

  PV /dev/sda3                      lvm2 [220.00 GiB]
  Total: 1 [220.00 GiB] / in use: 0 [0   ] / in no VG: 1 [220.00 GiB]

Vytvoření volume group

vgcreate lvm_root /dev/partition

V našem případě:

root@archiso ~ # vgcreate vg_arch /dev/sda3
  Volume group "vg_arch" successfully created

Ověření, že VG existují pomocí vgdisplay. Výstup vypadá takhle:

  --- Volume group ---
  VG Name               vg_arch
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <220.00 GiB
  PE Size               4.00 MiB
  Total PE              56319
  Alloc PE / Size       0 / 0
  Free  PE / Size       56319 / <220.00 GiB
  VG UUID               Mu8Gq9-3v9O-TL3F-RKZC-Z31D-TzOY-GUG9LZ

Rozšiřování volume group

Již existující volume group je možné rozšířit o další zařízení, např: vgextend vg_arch /dev/sdb1

Vytvoření logical volumes

Vytvoříme 30GB lvm_root (/) a 80% zbytku použijeme na lvm_home (/home):

# lvcreate -L 30G vg_arch -n lvm_root
  Logical volume "lvm_root" created.
# lvcreate -l 80%FREE vg_arch -n lvm_home
  Logical volume "lvm_home" created.

Ověříme pomocí lvdisplay:

  --- Logical volume ---
  LV Path                /dev/vg_arch/lvm_root
  LV Name                lvm_root
  VG Name                vg_arch
  LV UUID                5qKjyS-4Rik-t61M-yXpV-yLke-yBoU-fkylRd
  LV Write Access        read/write
  LV Creation host, time archiso, 2021-11-23 13:01:37 +0000
  LV Status              available
  # open                 0
  LV Size                30.00 GiB
  Current LE             7680
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:1

  --- Logical volume ---
  LV Path                /dev/vg_arch/lvm_home
  LV Name                lvm_home
  VG Name                vg_arch
  LV UUID                RKPFXX-59Eh-8PhI-PsAb-zuC0-HNXQ-xP4zhn
  LV Write Access        read/write
  LV Creation host, time archiso, 2021-11-23 13:04:09 +0000
  LV Status              available
  # open                 0
  LV Size                <152.00 GiB
  Current LE             38911
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:2

Naformátování a mountování LV

Logical volumes jsou k dispozici v /dev/vg_arch:

# ls /dev/vg_arch
lvm_home  lvm_root

Pokud nejsou vidět (u mě ano), mělo by pomoci nahrání kernel modulu a jejich zpřístupnění:

modprobe dm_mod
vgscan
vgchange -ay

Naformátování a mountování

mkfs.<fstype> /dev/<volume_group>/<logical_volume>
mount /dev/<volue_group>/<logical_volume> /<mountpoint>

Takže v našem případě:

mkfs.ext4 /dev/vg_arch/lvm_root
mount /dev/vg_arch/lvm_root /mnt

mkdir /mnt/home
mkfs.ext4 /dev/vg_arch/lvm_home
mount /dev/vg_arch/lvm_home /mnt/home

Příště

Co s EFI bootem a tak… Snad. Asi. možná.