LINUX.ORG.RU

Дистрибутив со встроенным ntfs3 в ядро

 , ,


0

1

Доброго времени суток. Кто знает дистрибутивы с готовым, встроенным в ядро ntfs3 вместо медленного ntfs-3g?

Компилировать ядро с модулем из исходников не предлагайте, модуль ntfs3, имеющийся в сети, кажется битый (несовместимые объявленные функции в части количества параметров). Ищу что есть готовое, может подойдет.

В CentOS 9 есть в репе centos-kmods:

$ sudo yum info kmod-ntfs3
Available Packages
Name         : kmod-ntfs3
Epoch        : 1
Version      : 5.14.0~533
Release      : 1.el9s
Architecture : x86_64
Size         : 177 k
Source       : kmod-ntfs3-5.14.0~533-1.el9s.src.rpm
Repository   : centos-kmods
Summary      : NTFS filesystem support
URL          : https://www.kernel.org/
License      : GPLv2 and GPLv2+
Description  : This package provides the required kernel module (ntfs3) to mount devices
             : formatted with the Windows OS native file system (NTFS) up to version 3.1.
iliyap ★★★★★
()

Посмотрел соседнюю тему:

Я пробовал в fstab оба варианта - ntfs-3g и просто ntfs, результат почти одинаков. С ntfs3 система не загружается, некорректное значение в fstab.

УМВР

$ cat /etc/fstab | grep "ntfs"
UUID=8B53EDAC49EEBD04   /run/media/pelewin/HDD_DATA      ntfs3   rw,nosuid,nodev,relatime,uid=1000,gid=1000,iocharset=utf8,uhelper=udisks2 0 0
$ mount | grep "ntfs"
/dev/sdb2 on /run/media/pelewin/HDD_DATA type ntfs3 (rw,nosuid,nodev,relatime,uid=1000,gid=1000,iocharset=utf8,uhelper=udisks2)
$ lsmod | grep "ntfs"
ntfs3                 331776  1
$ cat /etc/os-release 
NAME="Manjaro Linux"
PRETTY_NAME="Manjaro Linux"
ID=manjaro
ID_LIKE=arch
BUILD_ID=rolling
ANSI_COLOR="32;1;24;144;200"
HOME_URL="https://manjaro.org/"
DOCUMENTATION_URL="https://wiki.manjaro.org/"
SUPPORT_URL="https://forum.manjaro.org/"
BUG_REPORT_URL="https://docs.manjaro.org/reporting-bugs/"
PRIVACY_POLICY_URL="https://manjaro.org/privacy-policy/"
LOGO=manjarolinux
$ uname -a
Linux pwcomp 6.6.52-1-rt43-MANJARO #1 SMP PREEMPT_RT Mon Sep 23 09:16:12 UTC 2024 x86_64 GNU/Linux
PeleWin
()

Вопрос любителям ntfs3 - там уже появиись userspace утилиты или все также тухло как и было? И как там сейчас с надежностью этого хозяйства?

А то когда это только появилось я сначала возрадовался - вот наконец-то, а потом начал использовать проблевался и вернул ntfs-3g. Пусть оно помедленее но ничего не крушит и не приходится каждые N дней грузить венду и ремонтировать том изгаженный этой поделкой.

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

приходится каждые N дней грузить венду и ремонтировать том

Бывает, когда свет выключат или при других незапланированных перезагрузках без надлежащего размонтирования NTFS-раздела.

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

Arch, Void…

я так понял человек искал дистрибутив, в котором по умолчанию ядро собирается с CONFIG_NTFS3_FS=y

перебрал все, какие нашел под рукой, включая эти два, плюс Astra, Alt, UBLinux - везде 'm'.

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

я так понял человек искал дистрибутив, в котором по умолчанию ядро собирается с CONFIG_NTFS3_FS=y

Вообще у меня сперва тоже было такое предположение, но он пишет:

Компилировать ядро с модулем из исходников не предлагайте

А значит, по идее, именно компилировать не хочет. Иначе бы так и написал, типа «дистрибутивы, где скомпилировано модулем, не годятся». Ну, по логике. А там фиг знает, что конкретно ему нужно. Если действительно надо прям монолитом вшитое, то возникает закономерный вопрос: а зачем?

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

Я тоже так сначала подумал, но у ТС есть ещё, соседняя тема, в которой основная проблема - будто бы низкая скорость модулей ntfs-3g, ntfs и недоступность модуля ntfs3

PeleWin
()

Кто знает дистрибутивы с готовым, встроенным в ядро ntfs3 вместо медленного ntfs-3g?

Arch, Manjaro должны поддерживать. NTFS-раздела на машине нет, так что проверить не могу. Но ArchWiki говорит, что ядра 5.15 и новее поддерживают.

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

Тесты? Скинуть скрины скорости чтения-записи на NTFS раздел из винды и тот же раздел примонтированный в Linux не через ядерный драйвер, со скоростью на 1-2 порядка ниже и по чтению и по записи? Вроде бы общепризнанный факт что драйвер ntfs в ядре обладает намного более высокой скоростью работы, чем юзерспейс. Из-за этого и все танцы с бубном с попытками скомпилировать парагоновский драйвер из моей предыдущей темы. Только исходники выложены кривые, они не совместимы с исходниками ядра по параметрам вызова некоторых функций (вердикт: не компилируется, надо править код, а для этого надо иметь опыт переписывания ядер и модулей ядра, чего у меня нет).

Dima_228
() автор топика
Ответ на: комментарий от wonit

2 раздела одного SSD примонтированные рядом в Debian - ext4 и ntfs, скорости будут на порядок-два отличаться. Такой тест сойдет? через dd, файл размером гиг нулей, например? Просто лень искать софт которым тестирование чтения/записи на винде родным ntfs и на линукс считались бы тождественным тестом.

Пардон, вот, Низкая скорость ntfs тома переделывать не пришлось.

По поводу «общепризннности» второй комментарий из темы

Ядерный ntfs3 вместо ntfs-3g

либо другие источники https://qna.habr.com/q/1062864 https://forum.ubuntu.ru/index.php?topic=166775.0 у всех FUSE показывает результаты хуже чем.

Dima_228
() автор топика
Последнее исправление: Dima_228 (всего исправлений: 3)
Ответ на: комментарий от CrX

Возможно, я не вполне корректно описал суть вопроса. Компилировать я пробовал. Модуль несовместим с исходниками ядра, потому не компилируется. Переписывать половину кода я не хочу т.к. не имею опыта ковыряния ни в ядре, ни в файловых системах (если не считать низкоуровневую работу с дискетами и турбо паскаль по книге Фаронова лет так 20+ назад). Хочу готовое из коробки, тем более оно не первый год существует чтобы быть редкостью.

Монолитом вшитое или динамически подключаемое - фиолетово, главное чтобы скорость была как у модуля ядра, а не как у ntfs-3g. Задача в том чтобы в ОС которую я только установил я прописал mount и у меня примонтировался ntfs том через модуль ядра, не важно как оно там устроено. Не FUSE. Из коробки, ничего не пересобирая.

Судя по комментариям выше, этим обладают Manjaro, Arch (возможно и другие на базе Arch), CentOS 9, возможно ALT Linux и Void Linux.

не-debian наверное почти любой

Вот в этом и проблема, я как-то привык к Ubuntu / Debian, все остальное для меня новое и непривычное. Если я увидел что в двух наиболее популярных его нет - значит он мало где есть.

userspace утилиты вещь важная, но второстепенная. Все равно на этой машине есть и винда параллельно, если что ее можно будет использовать вместо resque mode если нужно восстановить файловую систему NTFS тома тем же чекдиском.

Dima_228
() автор топика
Последнее исправление: Dima_228 (всего исправлений: 1)
Ответ на: комментарий от dataman

Вот попробую собрать Debian-ntfs3 с гитхаба, надеюсь это тот самый фикс бага из-за которого не компилируется скачанное из официальных источников.

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

Монолитом вшитое или динамически подключаемое - фиолетово, главное чтобы скорость была как у модуля ядра

Ну тогда тебе подойдёт практически любой дистрибутив кроме Debian. В большинстве ntfs3 есть из коробки.

Судя по комментариям выше, этим обладают Manjaro, Arch (возможно и другие на базе Arch), CentOS 9, возможно ALT Linux и Void Linux.

Верно. И точно есть в Void Linux, не «возможно». Я сейчас на нём.

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

Сейчас вспомнаю как компилировал ядро пол года назад, уже все позабывал и что-то снес с диска. Если не выйдет с Debian-ntfs3 (что-то настолько редкое что в сети нет ни одной ссылки на этот github кроме как из этой темы) или парагоновским урезанным драйвером - буду подбирать другой дистрибутив.

Осталось только поустанавливать все подряд, проверить что лучше и чтобы не было ситуаций когда какой-то средней степени паршивости софт первой необходимости не идет на каком-то определенном дистрибутиве. Уже бывало такое, тот же Viber и что-то еще сильно выделывалось, им подавай только Ubuntu строго определенных версий а ни на чем другом оно не устанавливалось. Таких прог было 3-4 но что именно я уже не помню.

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

Модуль несовместим с исходниками ядра, потому не компилируется.

В исходниках ядра на kernel.org уже есть драйвер ntfs3

Надо просто пересобрать ядро с другим конфигом

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=998627

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

По сравнению с fuse mode ntfs-3g скорость в 10 раз выше. А преимущество по скорости парагоновского драйвера перед ext4, как мне кажется, выдумано - просто подобрали такие условия при которых их драйвер получит преимущество. Скорость на одном физическом устройстве должна быть одинакова.

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

По сравнению с fuse mode ntfs-3g скорость в 10 раз выше

Возможно, в каких-то специфических условиях…
У себя разницы вообще не замечал, пока сейчас специально не провёл тесты:

$ sudo mount -t ntfs /dev/sdb2 ./HDD_DATA
$ cd HDD_DATA
$ dd if=/dev/zero of=speedtest.txt bs=1048576 count=10000
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB, 9,8 GiB) copied, 187,738 s, 55,9 MB/s
$ mount | grep "HDD"
/dev/sdb2 on /run/media/pelewin/HDD_DATA type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
$ rm speedtest.txt 
$ cd ..
$ sudo umount /dev/sdb2
$ sudo mount -t ntfs3 /dev/sdb2 ./HDD_DATA
$ cd HDD_DATA/
$ dd if=/dev/zero of=speedtest.txt bs=1048576 count=10000
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB, 9,8 GiB) copied, 102,426 s, 102 MB/s
$ mount | grep "HDD"
/dev/sdb2 on /run/media/pelewin/HDD_DATA type ntfs3 (rw,relatime,uid=0,gid=0,iocharset=utf8)
PeleWin
()
Ответ на: комментарий от PeleWin

ntfs это что, ntfs-3g? Какой драйвер используется?

Вы монтируете ntfs3 - это точно драйвер ядерный, но скорость при этом отличается в 2 раза в пользу NTFS3. Подозрительно. У меня ntfs-3g медленнее ext4 в 10 раз, ожидаю что ядерный драйвер даст скорость того же порядка что ext4.

Dima_228
() автор топика
Ответ на: комментарий от greenman

Пока что временно вернулся к идее заставить это работать под Debian. Делаю следующее:

  1. Скачал с kernel.org последнее ядро 6.12.1
  2. Скопировал имеющийся конфиг:
cp -v /boot/config-$(uname -r) .config
  1. Делаю make menuconfig и в меню в File systems / DOS-Windows включаю NTFS3. Был отключен.
  2. Запускаю make & shutdown и оставляю это на ночь.
  3. Утром делаю make modules_install который упирается в нехватку места на логическом диске, обнаруживаю в /usr/lib/modules несколько комплектов скомпилированных модулей ядер разных версий по 5+ гигов каждый от предыдущих попыток, сношу нафиг все лишнее
  4. make install падает с ошибкой Bad return status for module build on kernel: 6.12.1… consult …/make.log. Файл прилагаю (https://pastebin.com/KqxAR1Tn). При этом команда make fs/ntfs3/ntfs3.ko отрабатывает без ошибок на экран. Такие паранормальные явления я не понимаю. В конфиге CONFIG_NTFS3_FS=m.

Из того что я смог понять по make.log -

  1. ntfs_fs.h:870:22: error: implicit declaration of function ‘PageError’
  2. ntfs_fs.h:920:41: error: expected ‘)’ before ‘bits’
  3. ntfs_fs.h:920:22: note: in expansion of macro ‘bitmap_size’
  4. bitmap.h:229:62: error: expected ‘)’ before ‘/’ token

И каждая из этих ошибок повторяется неоднократно. Это все официальные исходники ядра!

Далее я выпиливаю содержимое каталога ntfs3 (перенос в другой каталог), на его место закидываю Debian-ntfs с гитхаба, компилирую - та же история, только все эти ошибки со скобками и слешами на экране. Парагоновский по инструкции тоже не проходит, ./install.sh тоже слетает, но это совсем отдельная история. Проверил просто для успокоения, мне бы тот, первый.

Dima_228
() автор топика
Последнее исправление: Dima_228 (всего исправлений: 2)
Ответ на: комментарий от Dima_228

В исходниках ядра на kenrel.org есть код модуля ntfs3

Только в дебиане при сборке его отключают. В арче не отключают. Всё собирается.

Надо внимательно и аккуратно следовать инструкции.

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: комментарий от Dima_228

не надо ничего подменять и мудрить, надо просто включить ntfs3 в «m» (module) и пересобрать ядро.

При этом команда make fs/ntfs3/ntfs3.ko отрабатывает без ошибок на экран.

ну так insmod fs/ntfs3/ntfs3.ko (или где там у тебя модуль файл получился) и всё.

ещё вариант: поставь ядро liquorix, https://liquorix.net/
там CONFIG_NTFS3_FS=m уже.

ann_eesti
()