Установка debian raid lvm efi


Debian Jessie: RAID (mdadm) + LVM — «Unable to find LVM volume VG01/root»

При установке Debian Jessie собрал зеркало из двух разделов. На одном md0 — просто /boot в ext4, на втором md1 VG с кучей LV (aka root, home, opt …)
Собственно все работало замечательно, пока не отключил один из винчестеров. После того как система теряет винт — грузится не хочет. Grub отрабатывает, а в initrd ошибка «Unable to find LVM volume VG01/root» и вывал в initrd консоль.

Проблема решается так, в initrd консоли ломаем RAID:

После этого скан:

И вуаля! RAID находит рабочий винчестер, на нем нужные раздеры и собирает md0, md1 в active статусе. Собственно разделы становятся активными и lvm тоже замечательно начинает работать.

Поскольку система тестовая, решил опробовать как аналогичная ситуация обстоит в других Linux дистрибутивах. Вышло вот что:
CentOS 7.1 — инсталлер не умеет делать так как debian-овский, тоесть на Primary раздел не дает сделать RAID1, а поверх LVM. Либо RAID с etx4, xfs … либо LVM.
Ubuntu 14.04 — Замечательно собираю также как и в Debian, при потере винта грузится как ни в чем не бывало 🙂

Просто капец какойто … ходят слухи что ubuntu-шники впилили какойто костыль для нормальной загрузки degraded рейда. Но особо копать не стал, так как недолюбливаю Ubuntu и оставаться на ней не желаю.

На LOR нашел коллегу по несчастью, он даже костыль соорудил для загрузки системы в случай потери винчестера. Подставил и себе костыльчик.
В работающей системе создаем файлик:

# vim / etc / initramfs-tools / scripts / init-premount / assemble-md

и добавляем туда вот что:

Даем права на выполнение:

# chmod +x / etc / initramfs-tools / scripts / init-premount / assemble-md

Вот и все … выключаем сервак, отрубаем винчестер и пробуем грузиться. У меня получилось!

  • Евгений
  • Апрель 28th, 2015 4:37пп

А для чего если не секрет было делать разбивку таким образом, разве что попробовать? Но всплывшая проблема, это актуально.

  • admin
  • Апрель 30th, 2015 12:34пп

@Евгений
А как иначе если хочется RAID1 + LVM? Инсталлер не поддерживает RAID в LVM (вернее поддерживает только Stripe, что мне было не интересно). Такчто пришлось делать так: mdadm-ом зеркало, а внутри LVM с нужными мне LV-шками.
Конечно есть вариант всетаки сделать RAID на уровне LVM — но я побоялся, не уверен что оно стабильно.

  • Евгений
  • Май 1st, 2015 4:02пп

Читайте также:  Как оформить ютуб премиум

Добрый день! Спасибо за ответ. Меня смутило использование raid и lvm в одном наборе, просто в таком случает для стабильности системы лутше использовать хардварный рейд (если есть возможность по деньгам), а lvm внутри рейда.
Еще раз спаибо за ответ.

P.S. Хочу отметить еще две ваши статьи Puppet и Bacula, спасибо очень помогли )

  • Я
  • Июль 2nd, 2015 6:36пп

1. /boot в raid 1 на ext2 (зачем вам там ext 4 ? что там журналировать ?) — md0
2. Все остальное — md1, внутри — lvm, а в нем — ext4. Не надо заморачиваться с созданием отдельных разделов для /opt, /var … Лишнее это.

И да, установщик debian отлично поддерживает и создание софт-райда любого уровня и lvm и шифрование.

  • admin
  • Июль 2nd, 2015 9:46пп

1. /boot в ext4 привычка все однотипно делать. EXT4 везде, в буте это возможно оверхед, но не критично
2. /opt иногда юзаю, var полезно отдельный иметь так как /var/ иногда случайно переполняются 🙂
mdadm умеет в инсталлере делать все что угодно, LVM — только stripe, или я не нашел как сделать зеркало … но там еще приколы есть с зеркалом в LVM, на арчевом вики довольно детально описаны многие тонкости. Вцелом могу сказать что LVM предпочитаю использовать как инструмент позволяющий быстро на лету увеличить размер раздела когда это необходимо, без него тоже можно — но возни больше

  • Aleksandr K.
  • Ноябрь 16th, 2015 5:20пп


Ну данная разбивка все равно несет проблему что описал ТС

  • Я
  • Январь 2nd, 2016 12:48пп

«var полезно отдельный иметь так как /var/ иногда случайно переполняются»

I’ve read a whole bunch of posts of trying to get your Raid1 to boot up on the second disk if the first one failed. Nothing has failed yet, but I’m trying to test my setup. 2nd drive comes up with grub bash screen.

Читайте также:  Как сделать активные листы в excel

2 x WD red 3TB drives (mdadm raid1)

I have sda1 & sdb1 (/boot/efi) on their own partition and not in a raid1. I’ve read the /boot/efi can’t be on raid1. Not sure if that’s true or not, but for now they are on their each own partition. Maybe that could be my issue? I’ve read you can do it with /boot and but not with EFI. That’s my main question, should I ‘dd’ the /boot/EFI partitions so they end up having the same UUID?

/dev/sda

/dev/sdb

blkid

I’ve done a fresh install of 13.10 sever and had to add grub2 to /dev/sdb1

That installed grub and added another option to my efi boot mgr. When looking at my /etc/fstab, it can only mount /boot/efi from sda1. If it fails over, how does fstab know to mount /boot/efi from sdb1 instead?

/etc/fstab

I’ve DD sda1 to sdb1 and with the help of boot-repair, have 2 bootable grubs (among hours of trying stuff). Since I DD the partitions, the blkid UUID is the same. Here is my Boot Repair info. http://paste.ubuntu.com/7155022/

Still, when system tries to boot degraded, it just loops on ‘Starting system degraded.’ Have to use LiveCD and add the harddrive back to array before it can boot degraded.

Задача — разбить диск вручную, создать два раздела LVM: корень для самой системы — / и для домашних каталогов — /home .

/home должен сохранить данные после установки/переустановки системы.

Схема разбивки диска будет такая:

/boot — требуется вынести в отдельный раздел, т.к. / будет в LVM-разделе. 2 гигабайта — для того, что бы кроме ядер добавить позже туда LiveCD, который можно будет добавить в GRUB. Не пробовал — но мысль интересная. Ext4, но с отключенным журналированием.

swap — 16Г памяти, т.к. установка на ноут — то поставим 16Г для hibernate из-за Chrome/Chromium.
Хотя дискуссии на тему «Какой размер свапа нужен» не утихают по сей день.

Читайте также:  Как находят людей по камерам

LVM Physical VolumeLVM с остальными разделами:

/ — root , Ext4, 30G

/home — home , Ext4, все оставшее место,

HDD разбивается на PV — Physical Volumes, которые собираются в VGVolume Group, а VG в свою очередь — будут содержать разделы LVLogical Volume — с / и /home .

Разбивка диска — fdisk

Создаем три раздела:

  • sda1 — 2G под /boot
  • sda2 — 16G под swap
  • sda3 — остаток, под тома LVM

Разбивка с помощью fdisk , после # комментарии к действиям:

Вот так они выглядят в cfdisk :

Настройка LVM

Устанавливаем сам менеджер:

Создаем физический раздел (Physical Volume).

Под LVM мы создавали /dev/sda3 , используем его:

Создаем Volume Group и подключаем в него созданный PV:

Создаем Logical Volume для раздела /root размером 30G и подключаем его к созданному VG:

Создаем второй раздел — под /home , который займет все оставшее место в VG (опция -l с параметром 100%FREE ):

Создаем файловые системы.

На всех разделах будет Ext4, но раздел /boot с отключенным журналированием.

Помните, что /boot == /dev/sda1 , swap == /dev/sda2 и LVM разделы — на /dev/sda3 .

Создаем ФС для /boot :

has_journal нет — ОК, продолжаем.

Создаем ФС для /root :

Подготовка диска готова.

Создадим файл, что бы проверить /home после установки новой системы.

Монтируем созданный раздел:

Установка Debian

Я пропущу часть, которая не касается дисков.

Выбираем Manual метод:

Далее — указываем какие разделы куда монтировать:

Почему-то инсталятор отображает sda1 как Ext2 — надо погуглить на эту тему.

Указываем #1 как загрузочный — переключаемся на него, Enter:

Use asExt4:

Mount point — /boot :

При желании — редактируем другие опции, например — Label == boot.

По завершению — выбираем Done settings:

Повторяем для #2 — как swap :

Для #3Use as — pythical volume for LVM:

Аналогично — указываем диски для LVM home и / :

По завершению — выбираем Finish:

После чего — продолжаем установку как обычно:

GRUB2 устанавливаем на /dev/sda :

9726552