[make-initrd] поддержка zfs

Alexey Gladkov gladkov.alexey at gmail.com
Sun Oct 23 21:47:50 MSK 2022


On Sat, Oct 22, 2022 at 06:24:22PM +0300, Семён Шепилов wrote:
> 
> https://github.com/openzfs/zfs/blob/master/contrib/dracut/90zfs/mount-zfs.sh.in
>  
> начало с попытки делегировать монтирование маунт-генератору, как понял
> только для systemd (
> https://zfsonlinux.org/manpages/0.8.5/man8/zfs-mount-generator.8.html )
>  
> дальше строки 23-56 что-то про ввод пароля, возможно это для
> зашифрованных разделов, никогда таких не использовал
>  
> далее строки 59-79 поиск загрузочных атрибутов у пулов
> 66     if [  " ${root} " = " zfs:AUTO " ]  ; then # похоже на содержимое грубовского CMDLINE
> 67        if ! ZFS_DATASET= " $( zpool get -Ho value bootfs  | grep -m1 -vFx - ) " ; then # в chroot результат выполнения этого у меня - пустая строка, без грепа — два прочерка, т.е. оба пула у меня не загрузочные.
> Из оракловой справки: 
> bootfs=pool/dataset
> Identifies the default bootable dataset for the root pool. This property is expected to be set mainly by the installation and upgrade programs.
> Я ни в одной инструкции на openzfs.github.io/openzfs-docs/Getting
> Started не видел никаких действий с этим свойством…
>  
> 69             zpool import -N -a  ${ZPOOL_IMPORT_OPTS} # импорт без монтирования (-N) всех пулов (-a)
> # после импорта повторно эта же проверка, если не прошли — return 1 досрочно завершает весь блок if?
>  
> строки 80-93 так-же делают импорт пула как и выше, но уже не всех, а
> только того, где нашлись загрузочные атрибуты; я теперь еще больше не
> понимаю как это должно работать)

Не знаю насколько код рабочий, но мне кажется более понятным код
initramfs:

https://github.com/openzfs/zfs/blob/master/contrib/initramfs/scripts/zfs

хотя, признаюсь, по сравнению с btrfs процесс инициализации рута на zfs
выглядит дико.

-- 
Rgrds, legion



More information about the Make-initrd mailing list