root on btrfs raid + grub2 + gpt

Доброго дня!

Сам вопрос в том, пробовал ли кто-нибудь подобную комбинацию. Если да и удалось добиться рабочей конфигурации - был бы благодарен за описание процесса установки.

Сам уже два дня пытаюсь заставить это работать, но с самосборным ядром у меня все виснет еще на стадии инициализации системы, а с ядром genkernel, доходит до стадии монтированя root раздела, на чем и отваливается ( unable to find root block device on . )

Поэтому, если у кого-нибудь получалось завести подобный конфиг - был бы очень благодарен за любую информацию.

идиотов немае ;) райд есть (

идиотов немае ;) райд есть ( mdraid ) , груб2 есть, гпт тоже есть - ну а вот батхеттера баттера нету; и что характерно - работает

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

+1 :)

+1 :)

то что работает, это понятно.

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

Я делал по нескольким мануалам, т.к. для Gentoo пока мануала на эту тему толкового не нашел.
https://wiki.archlinux.org/index.php/Installing_on_Btrfs_root
http://www.funtoo.org/wiki/BTRFS_Fun
http://happy.penguins.tw/?p=142

в моем случае было два hdd - sda/sdb
на них для GRUB2 создавались разделы:

Command (? for help): p
Disk /dev/sda: 1953525168 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 56E276C0-AA0A-42EE-9FA5-5B22AE670930
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            6143   2.0 MiB     EF02  BIOS boot partition
   2            6144         4200447   2.0 GiB     8200  Linux swap
   3         4200448      1953525134   929.5 GiB   8300  Linux filesystem

раздел 1 для grub2
раздел 3 - собственно root

разбивка на обоих дисках идентичная.

далее я сделал рейд с btrfs:

mkfs.btrfs -L system -d raid1 -m raid1 /dev/sda3 /dev/sdb3

примонтировал:

mount /dev/sda3 /mnt/gentoo

создал на нем пару subvolume:

btfs subvolume create /mnt/gentoo/__active
btfs subvolume create /mnt/gentoo/__active/home

отмонтировал и прикрутил уже в нормальном виде:

umount /mnt/gentoo
mount /dev/sda3 -o subvol=__active /mnt/gentoo

в получившейся точке монтирования я и ставил систему как обычно, по HandBook.

собрал ядро с поддержкой btrfs:

CONFIG_BTRFS_FS=y

собрал dracut с поддержкой btrfs

USE=dracut_modules_btrfs emerge dracut

настройка dracut:
vim /etc/dracut.conf

add_dracutmodules+="btrfs"
add_drivers+="btrfs"
filesystems+="btrfs"

ну и сборка initramfs:

dracut -f

правка fstab:

UUID="d7e24ec2-a7f4-47f6-b4a0-f9f48d1a81eb"             /               btrfs           defaults,noatime,subvol=__active                0 1

установка grub:

заметил нюанс, что grub2 грузится только с того раздела, на который был установлен в последний раз, т.е. фишка как с grub-legacy, когда ставишь его на несколько разделов и грузишься с любого у меня почему то не прошла.

grub2-install /dev/sda
grub2-mkcofnig -o /boot/grub2/grub.cfg

по-моему, этих действий должно хватить для успешной загрузки.. но как бы не хватило.

при использовании самосборного ядра, впервые столкнулся с тем, что система повисала еще на стадии загрузки ядра. Сперва ядро ругалось на CPU, пол ядра не отвечают. Затем были проблемы с ACPI, PCI шина не могла запуститься. Так проблемы валились одна за другой и решить их так и не удалось, даже после того как в ядро было впихнуто невпихуемое.

Следующим шагом было использование ядра genkernel. С ним загрузка пошла дальше, но обламалась на стадии монтирования корня. Последние слова dmesg:

btrfs: failed to read system array on /dev/sda

манипуляции с модулями crc32 и ему подобными ни к чему не привело. система по прежнему не грузится.

неужели это решение в gentoo на данный момент настолько трюкабельно? :)

У меня работало на

У меня работало на первограбе.
1. Использовал отдельный /boot (ext4)
2. Для генерации рам-диска использовал dracut
Не вижу препятствий для использования второго граба в данной схеме.
Я не в курсе, насколько у второго граба все хорошо с чтением btrfs в многодисковом режиме, но, теоретически, если загрузка ядра начиналась, то все нормально. судя по всему у тебя проблема со сборкой ядра и рам-диска.

UPD: а ядру-то параметр rootflags=subvol=__active передаешь?

.

eegorov написал(а):
У меня работало на первограбе.

+1 :)

eegorov написал(а): У меня

eegorov написал(а):
У меня работало на первограбе.
1. Использовал отдельный /boot (ext4)

не было попытки держать /boot внутри корневого раздела?

Цитата:
судя по всему у тебя проблема со сборкой ядра и рам-диска.

Проблему подвисаний решал в муках но решил. Решил путем вкомпиливания в ядро большого количества модулей из раздела ACPI/BUS/I2C, хотя раньше ничего такого не требовалось. Странно как то.

Цитата:
UPD: а ядру-то параметр rootflags=subvol=__active передаешь?

да, передавал. пробовал вместе с genkernel`ом и dracut, но оба не смогли завести систему.
я этот комп пока сделал в стандартной установке. чуть позже попробую поиграть с другим компом, т.к. очень это интересно :)

Цитата:
2. Для генерации рам-диска использовал dracut

можно ли посмотреть dracut.conf/USE/dracut version?

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".