Форум проекта PuppyRus Linux

Разработки проекта PuppyRus => Разработка PFS и Initrd => LF (linux frugal). => Тема начата: sfs от 06 Август 2021, 10:46:17

Название: ntfs3 - модуль ядра и initrd
Отправлено: sfs от 06 Август 2021, 10:46:17
https://www.opennet.ru/opennews/art.shtml?num=57095

mount раздела ntfs (от windows) с использованием модуля ядра ntfs даст ReadOnly
RWrite получится только с помощью ntfs-3g + fuse , т.е. не на уровне ядра, т.е. медленно и ресурсоемко. Когда качал большие торренты на ntfs3g или ext - проц на ntfs грузился ощутимо больше
NTFS3 (https://www.opennet.ru/opennews/art.shtml?num=53554) - есть монолитно, но как заюзвть - я не понял
При наличии модуля ядра ntfs3 (https://aur.archlinux.org/packages/ntfs3-dkms/) :
mount -t ntfs3 дает ядерный RW
Ключи монтирования udev и пр (https://wiki.archlinux.org/title/NTFS#unknown_filesystem_type_'ntfs').
Для i686 ядер 2.6-4.20 есть родной paragon патч

ntfs3-dkms можно докомпилить только этот модуль к имеющимся ядрам. Что я и сделал (ntfs3 v. 27) :
000-kernel-5.12.0-pf6-lf_64.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.12.0-pf6-lf/000-kernel-5.12.0-pf6-lf_64.pfs) перезалил. Проверяйте 000-kernel-5.12.0-pf6-lf_64.pfs.md5.txt (http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.12.0-pf6-lf/000-kernel-5.12.0-pf6-lf_64.pfs.md5.txt)
В свежих pf ядрах ntfs3 есть. Я не знал об этом. Не включил в конфиге. На будущее надо вкомпилить монолитно

Переделал скрипты
089-upd-2008-sf61.pfs (http://mirror.yandex.ru/puppyrus/roll/2008/pfs/089-upd-2008-sf61.pfs)
089-lfd10-upd-sf60.pfs (http://mirror.yandex.ru/puppyrus/lf/d10/pfs/089-lfd10-upd-sf60.pfs)

amount - автомонтирует флэшки при подключении
mount-all - автомонтирует ntfs3. Если в инитрд смонтировано ntfs-3g - перемонтирует. Если система загружена с ntfs - соответственно перемонтировать без copy2ram не получится.

Надо переделывать initrd :
pra-porteus
initrd.xz (http://mirror.yandex.ru/puppyrus/puppyrus-a/kernel/initrd.xz) - т.к. udev нет будет работать только с монолитно вкомпиленным в ядро ntfs3. Пока таких ядер у нас нет.
Можно и без udev : insmod /путь/ntfs3.ko (проверял - работает) , но это надо будет под каждое ядро пересобирать инитрд
initrd.xz.md5.txt (http://mirror.yandex.ru/puppyrus/puppyrus-a/kernel/initrd.xz.md5.txt)
initrd1911.xz (http://mirror.yandex.ru/puppyrus/puppyrus-a/kernel/initrd1911.xz) - предыдущий
rootaufs2 : initrd-raf2-5.12.0-pf6-lf01.xz (http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.12.0-pf6-lf/initrd-raf2-5.12.0-pf6-lf01.xz) - проверил dir= c ntfs раздела - норм
rootofs тоже подправил под ntfs3, но при тестировании выяснил, что и старый с ntfs не грузит. Надо разбираться

Из замеченных фишек требующих тестирования заметил поддержку линуксовых ACL на ntfs3
Т.е. теперь на примонтированном ntfs3 разделе можно устанавливать линуксовые права. Правда после reboot они пропадают. Надо  Даже если так (надо проверять)- можно пересобирать squash на ntfs3
Есть ключ mount -t -o acl
Цитата
Поддержка POSIX ACL (списков контроля доступа). Действует, если поддерживается ядром. Не путать с NTFS ACL. Параметр, указанный как acl, включает поддержку списков управления доступом POSIX.
Не тестировал пока. Тестировать лучше не на разделе с установленной виндой. Если поубивает виндовс acl - будут проблемы с виндой
Название: Re: ntfs3 - модуль ядра и initrd
Отправлено: sfs от 06 Август 2021, 11:53:02
можно пересобирать squash на ntfs3
Можно.
Есть ключ mount -t -o acl
Никаких улучшений не заметил. Возможно это влияет на виндовые права. Линуксовые права так же как и без -o acl после перемонтирования пропадают
Название: Re: ntfs3 - модуль ядра и initrd
Отправлено: sfs от 06 Август 2021, 13:19:14
Первые "ложки дегтя в бочке меда":
После экспериментов  с загрузкой фругала с ntfs3 в виртуалке он перестал монтироваться -t ntfs3. По старому (ntfs3g) монтируется. Проверка gparted не помогла. Только переформатирование помогло
Название: Re: ntfs3 - модуль ядра и initrd
Отправлено: sfs от 06 Август 2021, 13:48:24
If you want to use ntfs3 as the default driver, such udev rule does the trick (https://aur.archlinux.org/packages/ntfs3-dkms/):
Код
SUBSYSTEM=="block", ENV{ID_FS_TYPE}=="ntfs", ENV{ID_FS_TYPE}="ntfs3"
Создал /usr/lib/udev/rules.d/99-ntfs3.rules - mount без -t ntfs3 монтирует как ntfs3g
Заменил ссылку /usr/bin/mount.ntfs на
Код
#!/bin/ash
mount -t ntfs3 "@" || ntfs-3g "@"
Заработало
Название: Re: ntfs3 - модуль ядра и initrd
Отправлено: sfs от 06 Август 2021, 15:44:33
Для i686 ядер 2.6-4.20 есть родной paragon патч
Далее уже ntfs3 lkz zlth 5.10 и выше. (для 5.1, 5.4 нет, 5.4-5.9 не смотрел)
https://gitlab.com/sirlucjan/kernel-patches/-/tree/master/5.10
Собрал puppyrus-a/kernel/tested/4.4.1-pf3-drv/ntfs3/ufsd-module-dkms-9.6.7-1-x86_64.pkg.tar.xz
puppyrus-a/kernel/tested/4.4.1-pf3-drv/ntfs3/ufsd.ko
Работает: mount -t ufsd
У меня нет инфы, юзает ли кто-то еще 4.4 ядро. Поэтому добавлять в исо пока не буду
Может лучше свежее ядро i686 скомпилить...
Название: Re: ntfs3 - модуль ядра и initrd
Отправлено: sfs от 25 Октябрь 2021, 12:06:39
Проверил на ядре 5.13-pf с монолитным ntfs3. Исправил мелкие ошибки
initrd-lf-pf-sf14.cpio.xz (http://mirror.yandex.ru/puppyrus/puppyrus-a/kernel/initrd-lf-pf-sf14.cpio.xz)
initrd.xz (http://mirror.yandex.ru/puppyrus/puppyrus-a/kernel/initrd.xz)
initrd-raf2-5.12.0-pf6-lf05.xz (http://mirror.yandex.ru/puppyrus/puppyrus-a64/kernel/new/5.12.0-pf6-lf/initrd-raf2-5.12.0-pf6-lf05.xz)
089-upd-2110-sf15.pfs (http://mirror.yandex.ru/puppyrus/roll/2110/pfs/089-upd-2110-sf15.pfs)
Название: Re: ntfs3 - модуль ядра и initrd
Отправлено: sfs от 04 Ноябрь 2021, 10:09:40
Ставил прар frugal на ноут с виндой. Поленился переразбивать ссд. Пожил на нтфс3 для эксперимента
Полет нормальный. Тормозов и проблем не заметил
можно пересобирать squash на ntfs3
но после ребута все линукс права пропадают. Т.е. пересобирать можно, но хранить с линукс правами файлами нельзя. Т.е. сохраненку в папку тоже нельзя. FULL нельзя. Только в squashfs

В ядре 5.15 (http://citforum.ru/news/43179/)
Цитата
В ядро принята новая реализацией файловой системы NTFS, открытая компанией Paragon Software. Новый драйвер может работать в режиме записи и поддерживает все возможности актуальной версии NTFS 3.1, включая расширенные атрибуты файлов, списки доступа (ACL), режим сжатия данных, эффективную работу с пустотами в файлах (sparse) и воспроизведение изменений из журнала для восстановления целостности после сбоев.
Название: Re: ntfs3 - модуль ядра и initrd
Отправлено: sfs от 03 Февраль 2022, 13:05:18
Фругал на ntfs. Смотрю - смонтирован ntfs-3g. На разделе были ошибки и ntfs3 не смог
Код
mount -t ntfs3  /dev/$x /mnt/$x -o $MOPT 2>/dev/null || ntfs-3g ...
Может так :
Код
if ! mount -t ntfs3  /dev/$x /mnt/$x -o $MOPT 2>/dev/null  ;then
  ntfsfix  -d /dev/$x &&  mount -t ntfs3  /dev/$x /mnt/$x -o $MOPT 2>/dev/null  ||
     ntfs-3g ...
fi
И добавить ntfsfix в инитрд.
Посмотрел - в UIRD ntfsfix есть,  но , похоже в скриптах не используется...

Или так (https://answer-id.com/ru/71164526)...
Название: Re: ntfs3 - модуль ядра и initrd
Отправлено: betcher от 04 Февраль 2022, 05:39:15
Посмотрел - в UIRD ntfsfix есть,  но , похоже в скриптах не используется...
Должен запускаться как и остальные fsck если включить в параметрах.
Название: Re: ntfs3 - модуль ядра и initrd
Отправлено: sfs от 04 Февраль 2022, 06:50:32
в UIRD ntfsfix есть,  но , похоже в скриптах не используется...
Да. Есть
Код
# grep -i ntfsfix liblinuxlive livekitlib 
liblinuxlive: /usr/bin/ntfsfix "$1" </dev/console >/dev/console 2>/dev/console
livekitlib:BIN_NTFSFIX=/sbin/ntfsfix
livekitlib: $BIN_NTFSFIX "$1" </dev/console >/dev/console 2>/dev/console
Название: Re: ntfs3 - модуль ядра и initrd
Отправлено: sfs от 04 Февраль 2022, 12:28:42
Проверил. Надо обязательно ntfsfix -d
Название: Re: ntfs3 - модуль ядра и initrd
Отправлено: sfs от 28 Апрель 2022, 09:55:46
https://www.opennet.ru/opennews/art.shtml?num=57095
Название: Re: ntfs3 - модуль ядра и initrd
Отправлено: sfs от 06 Июнь 2022, 10:48:52
Компания Paragon Software возобновила сопровождение модуля NTFS3 в ядре Linux (https://www.opennet.ru/opennews/art.shtml?num=57299)
В моих ядрах ntfs3 монолитно. Если скомпилить обновленный ntfs3.ko (здесь в отличие от aufs.ko так можно) - как сделать чтобы он работал, а не монолитный...
Название: Re: ntfs3 - модуль ядра и initrd
Отправлено: gumanzoy от 06 Июнь 2022, 12:45:28
В моих ядрах ntfs3 монолитно. Если скомпилить обновленный ntfs3.ko (здесь в отличие от aufs.ko так можно) - как сделать чтобы он работал, а не монолитный...
Так обновленный он наверно для linux-next или mainline:    5.19-rc1
Разве кто то бэкпортировал для предыдущих версий ядра ?

UPD: похоже версии для 5.18 и 5.19-rc1 не отличаются
https://github.com/Paragon-Software-Group/linux-ntfs3/commits/master/fs/ntfs3
https://aur.archlinux.org/packages/ntfs3-dkms-git
Название: Re: ntfs3 - модуль ядра и initrd
Отправлено: sfs от 06 Июнь 2022, 13:02:41
Т.к. не знаю ответа и на этот
как сделать чтобы он работал, а не монолитный...
вопрос - глубже не копал