LINUX.ORG.RU

ntfs3 или ntfs-3g

 ,


0

2

Что по вашему мнению на данный момент работает лучше? С одной стороны, ntfs-3g — это fuse, который частенько тормозной. Но с другой стороны, ntfs3 мне завешивает намертво любые IO операции, тогда как с ntfs-3g всё нормально.

★★★

Последнее исправление: Werenter (всего исправлений: 1)

ntfs3. Парагоновскому драйверу достаточно лет, это его в виде опенсорса недавно в ядро внесли, а в закрытом виде он давно и много где используется, и код у него весьма «зрелый». И он соответствует текущей Микрософтовской реализации ntfs, в отличии от ntfs-3g, который не развивается. Не знаю что у вас там крашится и завешивается, УМВР.

Возможно имеет смысл раздел в винде почекать таки, ntfs-3g известен тем что может смонтировать в RW неконсистентную ФС тупо этого «не заметив». Парагоновский драйвер более строгий, монтировать откажется или смонтирует в RO. И если его принудительно «заставить» смонтировать в RW через -f или ntfsfix — он её окончательно развалит или сам развалится. Это потому что ntfsfix ничего не fix, это не fsck ни разу.

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

Насколько я помню ntfs портил данные или что-то типа того.

Это ты вспомнил «первую» реализацию ntfs, реверсинженерную, которая была RO с экспериментальной и крайне ограниченной поддержкой RW с кучей условий и ограничений. Его выкинули из ядра совсем и заменили Парагоновской реализацией.

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

Да не, ntfs3. Я помню, потому что начал его использовать как он вышел и вернулся на 3g как появились новости, что он так себе.

https://www.heiko-sieger.info/does-the-linux-ntfs3-driver-corrupt-directories/

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

Ну тут да, баг такой был. Если дистрибутив на древних ядрах живёт имеет смысл ntfs-3g продолжать использовать. Я на stable ветке ядра живу, меня как то миновало, видимо пофиксили быстро.

Jameson ★★★★★
()
Ответ на: комментарий от firkax
I 16 09:32:39 general protection fault, probably for non-canonical address 0xff888118a1f0047f: 0000 [#1] PREEMPT SMP NOPTI
I 16 09:32:39 CPU: 2 PID: 492670 Comm: rhash Tainted: G           OE      6.6.10-zen1-1.1-zen #1 b1a06b86e52402b00f81c9075b36244bc5104310
I 16 09:32:39 RIP: 0010:dir_search_u+0x49/0x210 [ntfs3]
[...]
I 16 09:32:39 Call Trace:
I 16 09:32:39  <TASK>
I 16 09:32:39  ? die_addr+0x128/0x130
I 16 09:32:39  ? exc_general_protection+0x370/0x480
I 16 09:32:39  ? asm_exc_general_protection+0x26/0x30
I 16 09:32:39  ? dir_search_u+0x49/0x210 [ntfs3 1b96d9ef6ee4f25cc53f634c314dae7280128689]
I 16 09:32:39  ? ntfs_lookup+0x26/0xf0 [ntfs3 1b96d9ef6ee4f25cc53f634c314dae7280128689]
I 16 09:32:39  ntfs_lookup+0xa7/0xf0 [ntfs3 1b96d9ef6ee4f25cc53f634c314dae7280128689]
I 16 09:32:39  __lookup_slow+0x86/0x130
I 16 09:32:39  path_lookupat+0x2b3/0x3e0
I 16 09:32:39  filename_lookup+0xe8/0x1f0
I 16 09:32:39  ? srso_return_thunk+0x5/0x10
I 16 09:32:39  vfs_statx+0x9f/0x240
I 16 09:32:39  __x64_sys_newfstatat+0xfe/0x180
token_polyak ★★★★
()
Последнее исправление: token_polyak (всего исправлений: 1)
Ответ на: комментарий от token_polyak

I 16 09:32:39 RIP: 0010:dir_search_u+0x49/0x210 [ntfs3]

Выглядит как краш вызванный поломанной ФС, возможно где то на ней директория с недопустимыми символами или что то подобное. Если ФС в винде прочекать и исправить, краши есть? К сожалению исправить ФС можно только в винде на текущий момент.

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

ФС действительно была несколько испорченной. Тем не менее через ntfs-3g успешно проверились некогда сгенеренные чексуммы, а через ntfs3 - зависон и вот такое вот.

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

ntfs-3g действительно более «прощающий» и какое то время может работать на битой ФС. Но это не означает что он её не развалит совсем в итоге.

Вообще конечно нужен нативный chkdsk под Линукс, говорят у Парагонов он есть, но они его весьма ограниченно распространяют в бинарниках, только с коммерческой версией дров и под NDA. Они обещали что откроют исходники, говорят проблема в том что там почти всё нужно переписать чтобы не нарушать патенты Микрософт, и с драйверами это было проще. Они несколько лет занимались юридической «очисткой» и переписыванием кода драйверов перед тем как их в ядро передать, надеюсь когда нибудь и утилиты «очистят».

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

На ntfs3 я словил зависоны с IO (при аггрессивном использовании диска с ntfs3 зависает вообще любой ввод-вывод (в том числе и на других разделах)). На ntfs-3g такого нет.

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

у тебя какой версии вообще ntfs?
на сайте парагона написано, что они поддерживают ntfs вплоть до версии 3.1 (это тот, который создаётся в windows xp)
так что если у тебя раздел создан под windows 11 23h2, то сиди пока что на fuse

ps в википедии чуть подробнее можно посмотреть, что там да как
https://en.wikipedia.org/wiki/NTFS -> Versions, Journaling и тд

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

зависает вообще любой ввод-вывод

Возможно причина в лимитах vm.dirty*

что вписывать в fstab

Если хочется чуть большей надёжности, то ntfs-3g.
ntfs3 сырой и приводит к проблемам, но если периодически делать проверку фс из виндовс, то вполне можно пользоваться.

drl
()

Спрошу тут сразу про проблему: диск после некоторых втыканий/вытыканий перестал монтироваться (а может уже и до этого не монтировался). Пришлось вручную запускать ntfsfix из консоли. Дистр - KUbuntu последний LTS.

Вопрос: можно ли как-то сделать этот процесс автоматическим? Может быть заблэклистить драйвер ntfs и тогда будет автоматом ntfs-3g дергать а он сам как-то пофиксит?

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

Ещё раз. ntfsfix ничего не fix. Это не аналог chkdsk. Он не проверяет и не исправляет структуры ФС. Всё что он делает — снимает dirty bit, которая говорит драйверу что FS была отломана, а не отмонтирована, и закрывает журнал (не проверяя его целостность, просто убирает признак того что журнал открыт и несинхронизирован). Таким образом поломанные структуры остаются поломанными, просто драйвер «обманывается» принимая FS за исправную.

Это жутко вредная и вводящая в заблуждение своим названием утилита. Ты конечно можешь верить что у тебя с FS всё на самом деле в порядке и пользоваться ntfsfix для того чтобы её смонтировать в RW, но это именно что вера, в религиозном смысле, а не уверенность основанная на знании. Убедиться что с FS всё на самом деле хорошо можно только из винды, к сожалению, запустив в ней chkdsk.

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

Хорошо. Тогда может получится с другой стороны зайти. Есть внешний диск, в какую ФС его отформатировать, чтобы он был совместим с виндами и в то же время не иметь такого геморроя как винда только ради chkdsk или подобное?

FAT32 (тут проблема с плохими именами файлов часто бывает)? ExFAT? Внешний диск – это HDD

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

Вопрос в том, как гарантировать безболезненное (ну хотя бы иллюзию) монтирование диска после вытаскивания без отмонтирования.

Никак. Причём с ntfs-3g никак вдвойне. ntfs-3g, как и все основанные на fuse FS, не поддерживает опцию монтирования sync. ntfs3 — поддерживает. ntfs3 + sync ведёт себя точно так же как винда при монтировании съёмных дисков с ntfs или exfat, они по умолчанию монтируются с отключенной буферизацией записи, её нужно вручную включать в настройках, если есть желание. Именно это и позволяет вендоюзерам слабоумно выдёргивать флешки и диски сразу после того как прогрессбар пропал, не утруждая себя «безопасным извлечением устройства».

Теоретически с ntfs3 + sync ты тоже можешь дёргать сменные диски и флешки без отмонтирования, но dirty bit на них будет, и его придётся снимать. Однако шансы что с ФС при этом всё в порядке будут высокие. А вот с ntfs-3g наоборот, скорее всего каждое такое выдёргивание будет повреждать FS.

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

Exfat (ядерный, не fuse) + sync. А вообще флешки и внешние диски уже сразу в него форматированы. Я каждый раз угараю с того как линуксоиды сами себе проблемы создают, а люди тупые, неграмотные, покупают носитель и просто им пользуются.

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

Все продающиеся сейчас флешки (если они конечно не лежали лет десять на складе) продаются с exfat, это промышленный стандарт. Ну и для exfat есть fsck.exfat

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

Всё что он делает — снимает dirty bit

В мане написано, что она наоборот его ставит. Думаешь, ман врёт?

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

i-rinat ★★★★★
()
Ответ на: комментарий от Jameson

128гб USB2/3 флешки действительно до сих пор продаются, но уже давно не выпускаются.

SanDisk в некоторых линейках флешек выпускает восьмигиговые. А 128 в некоторых их линейках это максимальный объём.

Ты точно правильно прочитал? Речь про гигабайты, а не мегабайты.

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

Ну ты прочитай ман ещё раз. С ключём -d он делает ряд проверок (весьма поверхностных) на целостность, и если они прошли снимает dirty и закрывает журнал. А без -d наоборот, отмечает FS как нуждающуюся в проверке для винды. Это как раз на тот случай если FS в RW монтируется, но выдаёт ошибки при работе. Тогда после отмонтирования её нужно сделать «грязной», чтобы винда её автоматически проверила, а не пыталась сразу монтировать.

Но вообще сам по себе dirty bit для винды является признаком того что FS нужно проверить.

Jameson ★★★★★
()
Ответ на: комментарий от i-rinat

А, я как 128mb прочитал. Я чот не верю в 128гб флешки продающиеся с fat32. Хотя всё возможно, точно знаю что для SD карт больше 32гб exFAT является стандартом, для всего остального может быть и нет.

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

Ну ты прочитай ман ещё раз.

Сейчас мне достаточно того, что ты в него ещё раз взглянул и убедился, что по умолчанию ntfsfix ставит dirty бит, а не просто снимает его.

Но вообще сам по себе dirty bit для винды является признаком того что FS нужно проверить.

Ага, как и для всех ФС. Это вообще и есть суть пометки файловой системы «грязной».

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

Ой ну не буквоедствуй. 99% юзеров используют ntfsfix с ключом -d, чтобы бит сей снимать, а не ставить. Ну просто тупо потому что он у них стоит, ФС не монтируется и гуголь им говорит про ntfsfix.

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

Я чот не верю в 128гб флешки продающиеся с fat32.

Чуть больше года назад покупал флешки на 128 гигов («SanDisk Ultra Fit™ 128 GB»). И там была FAT32:

fsck.fat 4.2 (2021-01-31)
Checking we can access the last sector of the filesystem
Boot sector contents:
System ID "        "
Media byte 0xf8 (hard disk)
       512 bytes per logical sector
     32768 bytes per cluster
        22 reserved sectors
First FAT starts at byte 11264 (sector 22)
         2 FATs, 32 bit entries
  15018496 bytes per FAT (= 29333 sectors)
Root directory start at cluster 2 (arbitrary size)
Data area starts at byte 30048256 (sector 58688)
   3754602 data clusters (123030798336 bytes)
63 sectors/track, 255 heads
        32 hidden sectors
 240353248 sectors total
Checking for unused clusters.
Checking free cluster summary.
/dev/sda1: 4 files, 359/3754602 clusters

Это мета с оригинального содержимого флешки, сразу после того как из упаковки её достал.

для SD карт больше 32гб exFAT является стандартом

Для usb mass storage таких правил нет. Там вроде бы вообще спецификация с 1999 не менялась, и даже тогда в ней не было требование использовать конкретную ФС.

i-rinat ★★★★★
()
Ответ на: комментарий от Jameson

Ой ну не буквоедствуй. 99% юзеров используют ntfsfix с ключом -d, чтобы бит сей снимать, а не ставить. Ну просто тупо потому что он у них стоит, ФС не монтируется и гуголь им говорит про ntfsfix.

ну, я вроде без -d запускал и все получилось (примонтировать)

anonymous
()
Ответ на: комментарий от Jameson

Exfat (ядерный, не fuse) + sync.

Один чай за exfat. Работает на онтопике после установки драйвера. Работает из коробки на онтопике и маках. Без проблем подключается к Android и iOS.

Могут быть проблемы с самыми тупыми телевизорами, медиаплеерами и синезубыми колонками, но для таких устройств можно выделить отдельную флешку. И анон спрашивал вовсе не об этом.

И ещё один чай за ядерный драйвер. Я тут прикупил NVMe и кейс к нему. Так скорости копирования через fuse оказались мизерные, чуть ли не как на HDD. На ядерном - вполне ожидаемые с учётом USB 3.0.

Итого: два чая.

Я каждый раз угараю с того как линуксоиды сами себе проблемы создают, а люди тупые, неграмотные, покупают носитель и просто им пользуются.

Драйвер в ядро завозили долго и мучительно, многие могли пропустить новость или забыть ее в ожидании ебилдов. Из коробки exfat не поддерживается, о заветных пакетах наш линуксоид не знает. Остаётся выбирать из ext, fat32, NTFS.

Vidrele ★★
()