Все об Arch Linux

Arch Linux будет тем, что вы из него сделаете!

Установка Arch с LVM: зачем и как

LVM (Logical Volume Manager) — это прослойка между диском и файловой системой, которая превращает жёсткие разделы в гибкие «виртуальные» тома. Их можно объединять, расширять и сжимать на лету, а ещё делать мгновенные снапшоты для отката. Установка Arch с LVM почти не отличается от обычной: добавляется один пакет, пара команд для создания томов и одна строка в mkinitcpio. Разберём по шагам.

Зачем нужен LVM

Обычные разделы — это навсегда. Создал корень на 50 ГБ, через год он заполнился — и начинается цирк: перенос данных, переразметка, переустановка. LVM решает это раз и навсегда:

  • Resize на лету. Том можно расширить прямо на работающей системе, не перезагружаясь. Файловая система ext4 растёт онлайн.
  • Объединение дисков. Несколько физических дисков складываются в одну группу томов, а логические тома распределяются по ним как угодно.
  • Снапшоты. Мгновенная «фотография» тома для отката перед обновлением или экспериментом.
  • Независимость от порядка разделов. Тому не важно, где физически лежат его данные — в начале диска, в конце или на другом диске.

Плата за это — чуть более сложная установка и initramfs, который должен уметь поднимать LVM до монтирования корня. Но это один раз.

Как разметить диск под LVM

Разметка упрощается: вместо кучи разделов под корень, swap и /home нужны всего два — ESP и один раздел под LVM. Всё остальное живёт внутри LVM.

sudo fdisk /dev/nvme0n1

В fdisk вводим:

g       → новая GPT-таблица
n  1  [Enter]  +1G    → ESP, 1 ГБ
t  1             → тип EFI System
n  2  [Enter]  [Enter] → весь остаток диска под LVM
t  2             → тип Linux LVM
w       → записать

В fdisk тип LVM выбирается по имени — просто введи lvm на запрос типа. Форматируем только ESP, раздел под LVM остаётся «сырым» — его заберёт LVM:

sudo mkfs.fat -F 32 /dev/nvme0n1p1

Подробнее про GPT и типы разделов — в статье «Разметка диска с нуля: GPT vs MBR».

Как создать PV, VG и LV

Три уровня LVM: физический том (PV) — это сам раздел, группа томов (VG) — пул из одного или нескольких PV, логический том (LV) — «виртуальный раздел», который ты форматируешь и монтируешь.

Создаём PV на разделе, затем VG с именем vg0:

sudo pvcreate /dev/nvme0n1p2
sudo vgcreate vg0 /dev/nvme0n1p2

Теперь логические тома. Корень 50 ГБ, swap 8 ГБ, остальное — /home:

sudo lvcreate -L 50G -n root vg0
sudo lvcreate -L 8G -n swap vg0
sudo lvcreate -l 100%FREE -n home vg0

Тома появляются как /dev/vg0/root, /dev/vg0/swap, /dev/vg0/home. Форматируем и монтируем:

sudo mkfs.ext4 /dev/vg0/root
sudo mkswap /dev/vg0/swap
sudo swapon /dev/vg0/swap
sudo mkfs.ext4 /dev/vg0/home

sudo mount /dev/vg0/root /mnt
sudo mount --mkdir /dev/nvme0n1p1 /mnt/boot
sudo mount /dev/vg0/home /mnt/home

Дальше обычный pacstrap, но с пакетом lvm2:

sudo pacstrap -K /mnt base linux linux-firmware lvm2

После genfstab и arch-chroot продолжайте по пошаговому руководству установки Arch 2026.

Как настроить mkinitcpio для LVM

Это ключевой момент. Без него система не загрузится: initramfs не знает про LVM и не найдёт корень. В chroot откройте /etc/mkinitcpio.conf и добавьте lvm2 в массив HOOKS — строго перед filesystems:

nano /etc/mkinitcpio.conf
HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block lvm2 filesystems fsck)

Порядок важен: lvm2 должен подняться до того, как filesystems попытается смонтировать корень. Пересобираем initramfs:

mkinitcpio -P

Как настроить GRUB с LVM

Если /boot лежит на LVM-томе, GRUB нужен модуль lvm. Хорошая новость: grub-install определяет это сам и ставит модуль автоматически. От вас — только стандартные команды:

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg

В нашем примере /boot — это отдельный ESP, так что GRUB вообще не трогает LVM, но на других схемах разметки это знание пригодится.

Как делать снапшоты LVM

Снапшот — это копия тома по технологии copy-on-write: создаётся мгновенно, занимает место только по мере изменения данных. Перед большим обновлением:

sudo lvcreate -s -L 5G -n snap vg0/root

Том vg0/snap — замороженная копия корня. Если что-то сломалось, откатываемся:

sudo lvconvert --merge vg0/snap

Слияние произойдёт при следующей загрузке, и корень вернётся в состояние на момент снапшота. Снапшот после слияния исчезает. Учтите: снапшот — не бэкап, он не защищает от смерти диска, но от кривого обновления — идеально.

Как расширить том на лету

Заполнился корень — расширяем, не выходя из системы:

sudo lvresize -L +10G --resizefs vg0/root

--resizefs растянет и сам том, и файловую систему ext4 одной командой. Если места в группе томов нет — добавьте второй диск:

sudo pvcreate /dev/sdb1
sudo vgextend vg0 /dev/sdb1

И снова lvresize. Вот и вся магия: разделы больше не ограничивают вас.

Частые вопросы

LVM замедляет систему?

На практике разница незаметна. На десктопе с NVMe ты её не увидишь вообще. LVM добавляет один слой device-mapper, но современное железо это компенсирует.

Можно ли добавить LVM на уже установленную систему?

Да, но муторно: создайте PV на свободном разделе, добавьте в VG и перенесите данные через pvmove. Проще переустановить — это займёт меньше времени.

Снапшот — это бэкап?

Нет. Снапшот живёт на том же диске и хранит изменения относительно оригинала. Умер диск — умерли и снапшоты. Для бэкапов нужен отдельный носитель.

Что делать после установки?

Стандартный набор: sudo, пароль, обновление, зеркала. Подробнее — в статье «Что делать после установки Arch: первый час».

Заключение

LVM — это страховка от главной боли с разделами: «места нет, а переразметка — это переустановка». Установка Arch с LVM добавляет всего несколько команд: pvcreate, vgcreate, lvcreate, строку lvm2 в HOOKS и пакет lvm2 в pacstrap. Дальше ты получаешь тома, которые растут на лету, и снапшоты для отката. Один раз настроил — и забыл про нехватку места навсегда.

Полезные ресурсы



Не получилось? Поможем настроить

Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Читайте также

Комментарии

Загрузка…

Откроется GitHub: создайте новый issue с вашим комментарием (кнопка «Submit new issue»). После отправки обновите эту страницу — комментарий появится ниже.

Telegram Max