<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>54480</bug_id>
          
          <creation_ts>2025-05-27 10:38:47 +0300</creation_ts>
          <short_desc>Нет поддержки zfs</short_desc>
          <delta_ts>2025-06-19 18:30:36 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Branch p11</product>
          <component>grub</component>
          <version>unspecified</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mail</reporter>
          <assigned_to name="Egor Ignatov">egori</assigned_to>
          <cc>mail</cc>
    
    <cc>obidinog</cc>
          
          <qa_contact name="qa-p11@altlinux.org">qa-p11</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>265684</commentid>
    <comment_count>0</comment_count>
    <who name="">mail</who>
    <bug_when>2025-05-27 10:38:47 +0300</bug_when>
    <thetext>Если система переносится на ZFS, тогда при выполнении установки grub получаем ошибку:
# grub-install --target=x86_64-efi --efi-directory=/mnt/efi_sdc --boot-directory=/mnt/rpool/boot --root-directory=/mnt/rpool --modules=zfs
Installing for x86_64-efi platform.
grub-install: error: unknown filesystem.
При попытке проверить совместимость системы, получаем ошибку:
# grub-probe --target=fs /mnt/efi_sdc
grub-probe: error: unknown filesystem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265856</commentid>
    <comment_count>1</comment_count>
    <who name="obidinog@basealt.ru">obidinog</who>
    <bug_when>2025-05-28 09:26:02 +0300</bug_when>
    <thetext>Уточните, пожалуйста, на каком дистрибутиве воспроизводится и подробные шаги для воспроизведения ошибки</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265919</commentid>
    <comment_count>2</comment_count>
    <who name="">mail</who>
    <bug_when>2025-05-28 14:50:58 +0300</bug_when>
    <thetext>Использовал virtualization-pve-11.0-RC1-x86_64.iso             08-May-2025 08:04      2G:
Ниже расписаны шаги с описанием, которые применял для получения ошибки (дойти до ошибки можно и с одним диском, создать два раздела, один отправить в vfat второй в zfs, результат будет схожий):
-------
Подготовка

    Проверка текущей системы
        Убедитесь, что система загружена с /dev/sda (Btrfs) и работает корректно.
        Проверьте разметку диска /dev/sda:
        bash

lsblk
fdisk -l /dev/sda
Пример вывода lsblk:
text

    NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda           8:0    0  500G  0 disk
    ├─sda1        8:1    0  512M  0 part /boot/efi
    ├─sda2        8:2    0  465G  0 part /
    Запишите размеры и типы разделов, особенно EFI (/boot/efi) и корневого раздела (/).

Проверка целевых дисков

    Убедитесь, что /dev/sdc и /dev/sdd доступны и не содержат важных данных:
    bash

lsblk /dev/sdc /dev/sdd
Проверьте, что диски имеют одинаковый размер (или близкий, так как RAID1 использует минимальный размер):
bash

    fdisk -l | grep -E &apos;/dev/sdc|/dev/sdd&apos;

Установка необходимых пакетов

    Проверьте, установлен ли ZFS:
    bash

zfs version
Если ZFS не установлен, установите его:
bash
apt-get update
apt-get install zfsutils-linux
Убедитесь, что GRUB2 с поддержкой ZFS установлен:
bash
grub-install --version
Если требуется, установите GRUB2:
bash

    apt-get install grub-efi

Резервное копирование

    Создайте резервную копию системы, например, с помощью rsync:
    bash

        rsync -aAXv / /mnt/backup
        (предполагается, что /mnt/backup — внешний диск или другой раздел).

Этап 1: Подготовка дисков /dev/sdc и /dev/sdd для ZFS RAID1

    Очистка дисков
        Убедитесь, что на /dev/sdc и /dev/sdd нет важных данных, затем очистите их:
        bash

    wipefs -a /dev/sdc
    wipefs -a /dev/sdd

Создание разделов

    Скопируйте разметку с /dev/sda (EFI и корневой раздел) на /dev/sdc и /dev/sdd:
    bash

    sgdisk --replicate=/dev/sdc /dev/sda
    sgdisk -G /dev/sdc
    sgdisk --replicate=/dev/sdd /dev/sda
    sgdisk -G /dev/sdd
        sgdisk --replicate копирует таблицу разделов.
        sgdisk -G обновляет GUID для избежания конфликтов.

Проверка разметки

    Убедитесь, что разметка на /dev/sdc и /dev/sdd идентична /dev/sda:
    bash

    fdisk -l /dev/sdc
    fdisk -l /dev/sdd
    Ожидается: /dev/sdc1 и /dev/sdd1 — EFI (тип EF00, FAT32), /dev/sdc2 и /dev/sdd2 — для ZFS.

Форматирование EFI разделов

    Отформатируйте EFI разделы на /dev/sdc1 и /dev/sdd1:
    bash

        mkfs.vfat -F32 /dev/sdc1
        mkfs.vfat -F32 /dev/sdd1

Этап 2: Создание ZFS RAID1 пула

    Создание ZFS пула
        Создайте ZFS пул с типом RAID1 (mirror) на разделах /dev/sdc2 и /dev/sdd2. Используйте идентификаторы /dev/disk/by-id/:
        bash

zpool create -f -o ashift=12 rpool mirror /dev/disk/by-id/&lt;id-sdc2&gt; /dev/disk/by-id/&lt;id-sdd2&gt;

    Найдите идентификаторы:
    bash

        ls -l /dev/disk/by-id/
        Пример: /dev/disk/by-id/ata-WDC_WD5000AAKX-001CA0_WD-WMAY12345678-part2
        ashift=12 подходит для дисков с сектором 4K (проверьте спецификации дисков).

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

    Создайте файловую систему ZFS для корня:
    bash

    zfs create rpool/ROOT
    zfs create rpool/ROOT/alt-1
        rpool/ROOT/alt-1 будет корневой файловой системой.

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

    Установите точку монтирования:
    bash

zfs set mountpoint=/mnt/rpool rpool/ROOT/alt-1
Включите сжатие (рекомендуется):
bash

    zfs set compression=lz4 rpool

Проверка пула

    Убедитесь, что пул создан и работает:
    bash

zpool status rpool
Ожидаемый результат:
text

        pool: rpool
        state: ONLINE
        config:
            NAME        STATE     READ WRITE CKSUM
            rpool       ONLINE       0     0     0
              mirror-0  ONLINE       0     0     0
                sdc2    ONLINE       0     0     0
                sdd2    ONLINE       0     0     0

Этап 3: Перенос данных с Btrfs на ZFS

    Копирование данных
        Скопируйте данные с текущей системы на ZFS:
        bash

    rsync -aAXv --exclude={&quot;/dev/*&quot;,&quot;/proc/*&quot;,&quot;/sys/*&quot;,&quot;/tmp/*&quot;,&quot;/run/*&quot;,&quot;/mnt/*&quot;,&quot;/media/*&quot;,&quot;/lost+found&quot;} / /mnt/rpool

Копирование EFI раздела

    Смонтируйте EFI разделы и скопируйте содержимое:
    bash

    mkdir /mnt/efi_sdc /mnt/efi_sdd
    mount /dev/sdc1 /mnt/efi_sdc
    mount /dev/sdd1 /mnt/efi_sdd
    rsync -aAXv /boot/efi/ /mnt/efi_sdc
    rsync -aAXv /boot/efi/ /mnt/efi_sdd

Проверка данных

    Убедитесь, что данные скопированы корректно:
    bash

        ls -l /mnt/rpool
        ls -l /mnt/efi_sdc/EFI
        ls -l /mnt/efi_sdd/EFI

Этап 4: Настройка загрузки с ZFS RAID1 (ALT Linux с GRUB2)

    Подготовка GRUB2 для ZFS
        Убедитесь, что GRUB2 поддерживает ZFS. В ALT Linux это обычно включено, но проверьте:
        bash

grub-probe --target=fs /
Если ZFS не поддерживается, установите GRUB2 с поддержкой ZFS:
bash

    apt-get install grub-efi

Установка GRUB2

    Установите GRUB2 на оба EFI раздела (/dev/sdc1 и /dev/sdd1):
    bash

grub-install --target=x86_64-efi --efi-directory=/mnt/efi_sdc --boot-directory=/mnt/rpool/boot
grub-install --target=x86_64-efi --efi-directory=/mnt/efi_sdd --boot-directory=/mnt/rpool/boot

    Это установит GRUB2 на оба диска для обеспечения отказоустойчивости.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266067</commentid>
    <comment_count>3</comment_count>
    <who name="obidinog@basealt.ru">obidinog</who>
    <bug_when>2025-05-30 11:25:40 +0300</bug_when>
    <thetext>Платформа:
virtualization-pve-11.0-RC1-x86_64.iso

Пакет:
grub 2.12-alt11

Ошибка воспроизвелась по вышеуказанным шагам
# grub-install --target=x86_64-efi --efi-directory=/mnt/efi_sdb --boot-directory=/mnt/rpool/boot
Выполняется установка для платформы x86_64-efi.
grub-install: ошибка: неизвестная файловая система.

В Sisyphus не проверялось</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266078</commentid>
    <comment_count>4</comment_count>
    <who name="Egor Ignatov">egori</who>
    <bug_when>2025-05-30 12:24:17 +0300</bug_when>
    <thetext>Нашел в чем проблема, не хватает коммита c464f1ec3 (fs/zfs/zfs: Mark vdev_zaps_v2 and head_errlog as supported, 2024-05-16)

Добавлю в следующий релиз (grub-2.12-alt13)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267487</commentid>
    <comment_count>5</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2025-06-19 18:30:36 +0300</bug_when>
    <thetext>grub-2.12-alt13 -&gt; p11:

 Tue Jun 10 2025 Egor Ignatov &lt;egori@altlinux&gt; 2.12-alt13
 - fix search by uuid for legacy boot
 - fix zfs module (closes: #54480)
 - fix fs write support detection (closes: #54394)
 - update ALT-specific translations (closes: #54493)
 Thu May 15 2025 Egor Ignatov &lt;egori@altlinux&gt; 2.12-alt12
 - update-grub: use system locale when generating config
 - fix PXE boot (closes: #54249)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>