LINUX.ORG.RU

Установка Fedora 28 с ФС btrfs с субтомами

 ,


0

0

Уважаемые гуру. Как вообще через установщик Fedora анаконду создать ФС btrfs с субтомами (@ и @home)? В KDE Neon это сделать возможно. Тут же я по 5 раз ставил систему и папок @ и @home не увидел. Делал разметку и в автоматическом и ручном режимах. Один общий корень и усе. Или эта возможность напрочь исключена в анаконде и придется ставить систему из netinstall?

Ответ на: комментарий от lucentcode

grub2-install /dev/sda

ошибка:

[code@localhost ~]$ sudo mount /dev/sda6 /mnt
[sudo] пароль для code: 
[code@localhost ~]$ sudo mount /dev/sda5 /mnt/@/boot 
[code@localhost ~]$ sudo mount /dev/sda2 /mnt/@/boot/efi
[code@localhost ~]$ sudo mount --bind /dev /mnt/@/dev
[code@localhost ~]$ sudo mount --bind /dev/pts /mnt/@/dev/pts
[code@localhost ~]$ sudo mount --bind /proc /mnt/@/proc
[code@localhost ~]$ sudo mount --bind /sys /mnt/@/sys
[code@localhost ~]$ sudo chroot /mnt/@ /bin/bash
[root@localhost /]# grub2-install /dev/sda
grub2-install: ошибка: /usr/lib/grub/x86_64-efi/modinfo.sh не существует. Укажите --target или --directory.

blackride ()
Ответ на: комментарий от blackride

mount --bind /sys /mnt/@/sys

не относится к теме треда, но на системах с systemd так делать не советую. лучше

mount --rbind /sys --make-rslave /mnt/@/sys
иначе ты всю /sys/fs/cgroup туда затащишь, а при размонтировании потеряешь на хосте совсем. после чего, только кнопка reset.

system-root ★★★ ()
Последнее исправление: system-root (всего исправлений: 1)

Ставил недавно, проблем не возникло (разве что опции монтирования негде указать). В дефолтном установщике просто выбираем перед разметкой режим btrfs, и он все сделает сам, каждый раздел кроме /boot и /boot/efi будет создан как подтом, название он при этом свои дает (например home для /home и root для /, и вообще пути монтирования вида /dir/subdir превращает в подразделы dir_subdir), хотя можно изменить. (Если нужно шифрование, там есть опция для этого, достаточно её указать для одного подтома, тогда весь том будет создан на luks разделе. Если не указать, то общую опцию он проигнорирует). Немного нелогично все, но разобраться можно.

Расширенная разбивка более логичная, послушная и меньше пытается быть умнее пользователя. Но там все неосторожные действия нужно отменять кнопкой отмены именно и не иначе, а то весь установщик упадет напрочь. Такой вариант не проверял. В любом случае все таки ставится, хоть и анаконда то ещё говно.

А вот silverblue у меня не вышло поставить на btrfs вообще через анаконду. Сижу как нуб на ext4.

anonymous ()
Ответ на: комментарий от system-root

иначе ты всю /sys/fs/cgroup туда затащишь, а при размонтировании потеряешь на хосте совсем. после чего, только кнопка reset.

А толку нет:

[code@localhost ~]$ sudo mount /dev/sda6 /mnt
[sudo] пароль для code: 
[code@localhost ~]$ sudo mount /dev/sda5 /mnt/@/boot
[code@localhost ~]$ sudo mount /dev/sda2 /mnt/@/boot/efi
[code@localhost ~]$ sudo mount --bind /dev /mnt/@/dev
[code@localhost ~]$ sudo mount --bind /dev/pts /mnt/@/dev/pts
[code@localhost ~]$ sudo mount --bind /proc /mnt/@/proc
[code@localhost ~]$ sudo mount --rbind /sys --make-rslave /mnt/@/sys
[code@localhost ~]$ sudo chroot /mnt/@ /bin/bash
[root@localhost /]# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
/usr/sbin/grub2-probe: ошибка: не удалось найти устройство для / (/dev смонтирован?).

Вывод mount

[code@localhost ~]$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=3917192k,nr_inodes=979298,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,seclabel,nsdelegate)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,xattr,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime,seclabel)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpu,cpuacct)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,net_cls,net_prio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuset)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,memory)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,freezer)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,devices)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,perf_event)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,blkio)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,pids)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,hugetlb)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/sda7 on / type btrfs (rw,relatime,seclabel,ssd,space_cache,subvolid=258,subvol=/root-0)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=32,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=17748)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel,pagesize=2M)
debugfs on /sys/kernel/debug type debugfs (rw,relatime,seclabel)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,seclabel)
/dev/sda7 on /home type btrfs (rw,relatime,seclabel,ssd,space_cache,subvolid=257,subvol=/home-0)
/dev/sda5 on /boot type ext4 (rw,relatime,seclabel,data=ordered)
/dev/sda2 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=786236k,mode=700,uid=1000,gid=1000)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sda4 on /run/media/code/2650D4AA50D481CB type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)
/dev/sda6 on /mnt type btrfs (rw,relatime,seclabel,ssd,space_cache,subvolid=5,subvol=/)
/dev/sda5 on /mnt/@/boot type ext4 (rw,relatime,seclabel,data=ordered)
/dev/sda2 on /mnt/@/boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)
devtmpfs on /mnt/@/dev type devtmpfs (rw,nosuid,seclabel,size=3917192k,nr_inodes=979298,mode=755)
devpts on /mnt/@/dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
proc on /mnt/@/proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /mnt/@/sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)

blackride ()
Ответ на: комментарий от anonymous

он при этом свои дает (например home для /home и root для /

Это я уже 100 раз и сам создавал. Тут вопрос в другом, переименовав подтома root в @, home в @home как обновить загрузчик uefi/grub из под chroot или по другому. Какая то шняга выходит, о том, что каталог /dev не подмонтирован в память.

blackride ()
Ответ на: комментарий от anonymous

Тут, кто меня троллем называл и корчил из себя умного - реально сдулись и смысл их писанины был в этом посте, непонятно. Отдельное спасибо тем, кто не помогал, но и не язвил и отдельное СПАСИБО lucentcode. Но вот пока вышла загвоздка, может кто еще из знающих заглянет сюда. :)

blackride ()
Ответ на: комментарий от blackride

Нашёл старые записи команд, что я юзал, когда решал эту проблему ещё на Fedora 25. Если с тех пор ничего в процессе установки grub не изменилось, должно сработать.

Попробуйте так сделать

dnf reinstall grub2-efi grub2-efi-modules shim

sudo mount /dev/sda6 /mnt sudo mount /dev/sda5 /mnt/@/boot sudo mount /dev/sda2 /mnt/@/boot/efi sudo mount --bind /dev /mnt/@/dev sudo mount --bind /dev/pts /mnt/@/dev/pts sudo mount --bind /proc /mnt/@/proc sudo mount --rbind /sys --make-rslave /mnt/@/sys

не делая chroot, выполняем

grub2-install --recheck --no-nvram --root-directory=/mnt /dev/sda

Опцию --no-nvram из последней команды можно убрать, я её добавлял, так как груб ранее был установлен, нужно было только обновить, не трогая очередность загрузки.

Как установится загрузчик, делаем

chroot /mnt/

и уже в chroot

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

lucentcode ★★★★★ ()
Ответ на: комментарий от lucentcode
[code@localhost ~]$ sudo mount /dev/sda6 /mnt
[code@localhost ~]$ sudo mount /dev/sda5 /mnt/@/boot
[code@localhost ~]$ sudo mount /dev/sda2 /mnt/@/boot/efi
[code@localhost ~]$ sudo mount --bind /dev /mnt/@/dev
[code@localhost ~]$ sudo mount --bind /dev/pts /mnt/@/dev/pts
[code@localhost ~]$ sudo mount --bind /proc /mnt/@/proc
[code@localhost ~]$ sudo mount --rbind /sys --make-rslave /mnt/@/sys
[code@localhost ~]$ grub2-install --recheck --root-directory=/mnt /dev/sda
grub2-install: ошибка: /usr/lib/grub/x86_64-efi/modinfo.sh не существует. Укажите --target или --directory.
blackride ()
Ответ на: комментарий от system-root

в интернетах пишут — установить grub2-efi-modules

так по совету lucentcode и установил перед монтированием:

[code@localhost ~]$ dnf reinstall grub2-efi grub2-efi-modules shim
Ошибка: Эта команда должны быть выполнена от имени пользователя root.
[code@localhost ~]$ sudo dnf reinstall grub2-efi grub2-efi-modules shim
[sudo] пароль для code: 
Последняя проверка окончания срока действия метаданных: 0:52:03 назад, Вс 12 авг 2018 20:54:09.
Пакет grub2-efi-aa64-modules есть, но не установлен.
Отсутствуют совпадения для аргумента: grub2-efi-modules
Зависимости разрешены.
====================================================================================================================
 Пакет                          Архитектура            Версия                          Репозиторий            Размер
====================================================================================================================
Переустановка:
 grub2-efi-ia32                 x86_64                 1:2.02-34.fc28                  fedora                 307 k
 grub2-efi-x64                  x86_64                 1:2.02-34.fc28                  fedora                 309 k
 shim-x64                       x86_64                 13-4                            fedora                 1.4 M

Результат транзакции
====================================================================================================================

Объем загрузки: 2.0 M
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/3): grub2-efi-ia32-2.02-34.fc28.x86_64.rpm                                       110 kB/s | 307 kB     00:02    
(2/3): grub2-efi-x64-2.02-34.fc28.x86_64.rpm                                         16 kB/s | 309 kB     00:19    
(3/3): shim-x64-13-4.x86_64.rpm                                                      29 kB/s | 1.4 MB     00:49    
--------------------------------------------------------------------------------------------------------------------
Общий размер                                                                         41 kB/s | 2.0 MB     00:50     
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
  Подготовка       :                                                                                            1/1 
  Переустановка    : shim-x64-13-4.x86_64                                                                       1/6 
  Переустановка    : grub2-efi-x64-1:2.02-34.fc28.x86_64                                                        2/6 
  Переустановка    : grub2-efi-ia32-1:2.02-34.fc28.x86_64                                                       3/6 
  Удаление         : shim-x64-13-4.x86_64                                                                       4/6 
  Удаление         : grub2-efi-x64-1:2.02-34.fc28.x86_64                                                        5/6 
  Удаление         : grub2-efi-ia32-1:2.02-34.fc28.x86_64                                                       6/6 
  Проверка         : grub2-efi-ia32-1:2.02-34.fc28.x86_64                                                       1/6 
  Проверка         : grub2-efi-x64-1:2.02-34.fc28.x86_64                                                        2/6 
  Проверка         : shim-x64-13-4.x86_64                                                                       3/6 
  Проверка         : shim-x64-13-4.x86_64                                                                       4/6 
  Проверка         : grub2-efi-ia32-1:2.02-34.fc28.x86_64                                                       5/6 
  Проверка         : grub2-efi-x64-1:2.02-34.fc28.x86_64                                                        6/6 

blackride ()
Ответ на: комментарий от blackride

Пакет grub2-efi-aa64-modules есть, но не установлен.

Отсутствуют совпадения для аргумента: grub2-efi-modules

чё это такое? типа не поставилось?

system-root ★★★ ()
Последнее исправление: system-root (всего исправлений: 1)
Ответ на: комментарий от blackride

Естественно, откуда там возьмётся /usr/lib/grub/x86_64-efi/modinfo.sh - если в корень не то смонтировано(нужно было туда subvolume @ монтировать). Проблема в

sudo mount /dev/sda6 /mnt

о чём писал в комментарии выше.

lucentcode ★★★★★ ()
Ответ на: комментарий от lucentcode

Такс, вроде пошло:

[code@localhost ~]$ sudo mount -t btrfs -o subvol=@,defaults /dev/sda6 /mnt
[sudo] пароль для code: 
[code@localhost ~]$ sudo mount /dev/sda5 /mnt/@/boot 
mount: /mnt/@/boot: mount point does not exist.
[code@localhost ~]$ sudo mount /dev/sda5 /mnt/boot
[code@localhost ~]$ sudo mount /dev/sda2 /mnt/boot/efi
[code@localhost ~]$ sudo mount --bind /dev /mnt/dev
[code@localhost ~]$ sudo mount --bind /dev/pts /mnt/dev/pts
[code@localhost ~]$ sudo mount --bind /proc /mnt/proc
[code@localhost ~]$ sudo mount --rbind /sys --make-rslave /mnt/sys
[code@localhost ~]$ grub2-install --recheck --root-directory=/mnt /dev/sda
grub2-install: ошибка: /usr/lib/grub/x86_64-efi/modinfo.sh не существует. Укажите --target или --directory.
[code@localhost ~]$ sudo chroot /mnt /bin/bash
[root@localhost /]# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.16.3-301.fc28.x86_64
Found initrd image: /boot/initramfs-4.16.3-301.fc28.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-d86df236946f42c0859615ebdc9801b3
Found initrd image: /boot/initramfs-0-rescue-d86df236946f42c0859615ebdc9801b3.img
device-mapper: reload ioctl on osprober-linux-sda4  failed: Device or resource busy
Command failed
Found Fedora 28 (Twenty Eight) on /dev/sda7
done

Но застопорилось, наверное то что зашел предварительно на виндовый раздел (sda4)

blackride ()
Ответ на: комментарий от lucentcode

Скорее всего это надо было делать из под livecd. Сутра некогда было еще раз попробовать. Но пока в grub'е только скорее всего та Fedora с подтомами @ и @home и без windows. Fedora дальше бут заставки не грузится. Попробую в обед все повторить из livecd

blackride ()
Ответ на: комментарий от lucentcode

Все, можно сказать, что все. Победили мы ее :)

Как оказалось в chroot, переконфирурирование grub не видит windows загрузчика, а может и раздела. Но после обычного запуска fedora, делаем то же самое переконфигурирование grub и все находится. Только у меня была загвоздка в том, что 2 раздела fedora 28. И chroot из корня dev/sda6 находил загрузчик для fedora /dev/sda7 и наоборот. Удалил раздел на /dev/sda6 и все стало пучком.

Теперь TimeShift создает снимки https://ibb.co/cBuEAp Правда чуть дольше, чем KDE NEON, который к слову моментально создает снимок.

ОГРОМНАЯ И НИЖАЙШАЯ БЛАГОДАРНОСТЬ lucentcode Спасибо Вам и всем тем кто пытался хоть как то помочь :) :) :)

blackride ()
Ответ на: комментарий от lucentcode

Один вопрос еще меня мучает с момента того как я установил fedora. Раз все же fedora пользовались возможно подскажете, как добавить зеркало, а точнее заменить базовый url на mirror.yandex.ru в fedora.repo, fedora-updates.repo и в репах для rpmfusion? Дело в том, что я добавлял надстройку, которая перед каждой установкой/обновлением программ проверяет какое зеркало самое скоростное. Но то ли эта надстройка проверяет импульс нескольких секунд в зеркалах, то ли еще как то. Но в итоге все равно не выбирает зеркало яндекс и скорость в 50 кб/с совсем не радует. Ставил fedora с netinstall, где указал использовать зеркало яндекс, так там скорость 5 мб/с, а с 50 кб/с и дня бы не хватило стянуть все нужные пакеты.

blackride ()
Ответ на: комментарий от blackride

Не за что. Рад был помочь. Сам озаботился этим вопросом несколько лет назад, сделал всё но уже подзабыл детали, так как потом обновлял систему, а не переставлял, и её разделы уже не менялись.

lucentcode ★★★★★ ()
Ответ на: комментарий от blackride

Есть несколько вариантов. Если

fastestmirror у вас false, то можно захардкодить нужные репы в /etc/yum.repos.d/fedora.repo

Если fastestmirror включен, то можно в файлы реп dnf указать

country=ru

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

lucentcode ★★★★★ ()
Ответ на: комментарий от lucentcode

Я добавлял в /etc/dnf/dnf.conf:

#
keepcache=true
deltarpm=true
#
fastestmirror=true

Затем добавил country=ru в fedora.repo и остальные так:

[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
metadata_expire=7d
repo_gpgcheck=0
country=ru
type=rpm
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

[fedora-debuginfo]
name=Fedora $releasever - $basearch - Debug
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/debug/tree/
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-$releasever&arch=$basearch
enabled=0
metadata_expire=7d
repo_gpgcheck=0
type=rpm
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

[fedora-source]
name=Fedora $releasever - Source
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/source/tree/
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-$releasever&arch=$basearch
enabled=0
metadata_expire=7d
repo_gpgcheck=0
type=rpm
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

Правильно?

Все равно скорость низкая. Почему то в yandex/google молчок как именно добавить url зеркала yandex. Я пробовал изначально добавлять с переменными по аналогии url зеркала в fedora.repo и других. Но при попытке обновить кэш/обновление dnf ругался, что не может подключиться к репам.

В ubuntu легко выбрать зеркало через gui. А тут вообще непонятно. Мне нужно добавить зеркало яндекс на основные репо (fedora.repo, fedora-update.repo, rpmfusion-free.repo, rpmfusion-free-updates.repo, rpmfusion-nonfree.repo rpmfusion-nonfree-updates.repo).Как бы и все.

blackride ()
Ответ на: комментарий от blackride

Есть один вариант, но как-то слишком радикально выглядит. Теоретически можно в /etc/yum.repos.d/fedora.repo закомментировать mirrorlist и расскомментировать baseurl=SOME_URL

Где вместо SOME_URL указать URL нужного вам зеркала, в данном случае зеркало Яндекс.

После этого повторяем это же в /etc/yum.repos.d/fedora-updates.repo и других дефолтных федоровких файлах repo

Делаем

yum clean
yum update
lucentcode ★★★★★ ()