Сайт | Скачать | Видео | Wiki

Автор Тема: ntfs3 - модуль ядра и initrd  (Прочитано 1593 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32750
  • Репутация: +216/-0
  • Автор темы
    • PuppyRus-A
ntfs3 - модуль ядра и initrd
« : 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 - есть монолитно, но как заюзвть - я не понял
При наличии модуля ядра ntfs3 :
mount -t ntfs3 дает ядерный RW
Ключи монтирования udev и пр.  в комментах
Для i686 ядер 2.6-4.20 есть родной paragon патч

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

Переделал скрипты
089-upd-2008-sf61.pfs
089-lfd10-upd-sf60.pfs

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

Надо переделывать initrd :
pra-porteus
initrd.xz - т.к. udev нет будет работать только с монолитно вкомпиленным в ядро ntfs3. Пока таких ядер у нас нет.
Можно и без udev : insmod /путь/ntfs3.ko (проверял - работает) , но это надо будет под каждое ядро пересобирать инитрд
initrd.xz.md5.txt
initrd1911.xz - предыдущий
rootaufs2 : 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 - будут проблемы с виндой
« Последнее редактирование: 28 Апрель 2022, 09:56:19 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32750
  • Репутация: +216/-0
  • Автор темы
    • PuppyRus-A
Re: ntfs3 - модуль ядра и initrd
« Ответ #1 : 06 Август 2021, 11:53:02 »
можно пересобирать squash на ntfs3
Можно.
Есть ключ mount -t -o acl
Никаких улучшений не заметил. Возможно это влияет на виндовые права. Линуксовые права так же как и без -o acl после перемонтирования пропадают

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32750
  • Репутация: +216/-0
  • Автор темы
    • PuppyRus-A
Re: ntfs3 - модуль ядра и initrd
« Ответ #2 : 06 Август 2021, 13:19:14 »
Первые "ложки дегтя в бочке меда":
После экспериментов  с загрузкой фругала с ntfs3 в виртуалке он перестал монтироваться -t ntfs3. По старому (ntfs3g) монтируется. Проверка gparted не помогла. Только переформатирование помогло
« Последнее редактирование: 06 Август 2021, 13:20:50 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32750
  • Репутация: +216/-0
  • Автор темы
    • PuppyRus-A
Re: ntfs3 - модуль ядра и initrd
« Ответ #3 : 06 Август 2021, 13:48:24 »
If you want to use ntfs3 as the default driver, such udev rule does the trick:
Код
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 "@"
Заработало

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32750
  • Репутация: +216/-0
  • Автор темы
    • PuppyRus-A
Re: ntfs3 - модуль ядра и initrd
« Ответ #4 : 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 скомпилить...

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32750
  • Репутация: +216/-0
  • Автор темы
    • PuppyRus-A
Re: ntfs3 - модуль ядра и initrd
« Ответ #5 : 25 Октябрь 2021, 12:06:39 »
Проверил на ядре 5.13-pf с монолитным ntfs3. Исправил мелкие ошибки
initrd-lf-pf-sf14.cpio.xz
initrd.xz
initrd-raf2-5.12.0-pf6-lf05.xz
089-upd-2110-sf15.pfs

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32750
  • Репутация: +216/-0
  • Автор темы
    • PuppyRus-A
Re: ntfs3 - модуль ядра и initrd
« Ответ #6 : 04 Ноябрь 2021, 10:09:40 »
Ставил прар frugal на ноут с виндой. Поленился переразбивать ссд. Пожил на нтфс3 для эксперимента
Полет нормальный. Тормозов и проблем не заметил
можно пересобирать squash на ntfs3
но после ребута все линукс права пропадают. Т.е. пересобирать можно, но хранить с линукс правами файлами нельзя. Т.е. сохраненку в папку тоже нельзя. FULL нельзя. Только в squashfs

В ядре 5.15
Цитата
В ядро принята новая реализацией файловой системы NTFS, открытая компанией Paragon Software. Новый драйвер может работать в режиме записи и поддерживает все возможности актуальной версии NTFS 3.1, включая расширенные атрибуты файлов, списки доступа (ACL), режим сжатия данных, эффективную работу с пустотами в файлах (sparse) и воспроизведение изменений из журнала для восстановления целостности после сбоев.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32750
  • Репутация: +216/-0
  • Автор темы
    • PuppyRus-A
Re: ntfs3 - модуль ядра и initrd
« Ответ #7 : 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 есть,  но , похоже в скриптах не используется...

Или так...
« Последнее редактирование: 04 Февраль 2022, 12:27:58 от sfs »

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 2937
  • Репутация: +33/-0
    • MagOS linux
Re: ntfs3 - модуль ядра и initrd
« Ответ #8 : 04 Февраль 2022, 05:39:15 »
Посмотрел - в UIRD ntfsfix есть,  но , похоже в скриптах не используется...
Должен запускаться как и остальные fsck если включить в параметрах.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32750
  • Репутация: +216/-0
  • Автор темы
    • PuppyRus-A
Re: ntfs3 - модуль ядра и initrd
« Ответ #9 : 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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32750
  • Репутация: +216/-0
  • Автор темы
    • PuppyRus-A
Re: ntfs3 - модуль ядра и initrd
« Ответ #10 : 04 Февраль 2022, 12:28:42 »
Проверил. Надо обязательно ntfsfix -d

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 32750
  • Репутация: +216/-0
  • Автор темы
    • PuppyRus-A