LINUX.ORG.RU

Paragon Software предложила свою реализацию NTFS в upstream Linux

 ,


1

4

Соучредитель и генеральный директор Paragon Software Group Константин Комаров опубликовал в рассылке Linux-Fsdevel патч с реализацией драйвера файловой системы NTFS, поддерживающего все основные операции - чтение, запись, работу с разряженными и упакованными файлами, расширенными атрибутами и восстановление данных и журнала файловой системы.

Код предоставлен под лицензией GPL и соответствует всем базовым требованиям для принятия патчей в ядро.

Пока что не решёнными являются вопросы аудита опубликованного кода и кандидатур его будущих ментейнеров.

>>> Подробности

★★★★★

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

Ответ на: комментарий от mx__

Насколько я помню BTRfs Fedora себе включила

В смысле? Из RHEL убирали же, тут даже лучи радости были от некоторых. А так её пилят вполне, постоянно какие-то патчи появляются.

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

Я не вижу тут логики.

А она есть.

Референсная реализация имеет некие фичи. И тут бац: упоминать их нельзя. Потому что… да хрен его знает, почему.

Приведу более понятную аналогию. В винде есть реалтаймовое антивирусное сканирование всех читаемых или записываемых на диск файлов. Можно ли говорить о нём как о преимуществе NTFS перед другими файловыми системами?

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)

gpl2-only

2020

А мне помнится линукс-элита в середине 2000-х собиралось переходить на gplv3 или это мешает производителям быдродевайсов тиворизировать свои девайсы?

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

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

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)

я когда то по мануалу про ntfs делал драйвер. хотите верьте хотите нет, был диск 4.3 гб с убитой нтфс и надо было не него файлы собрать абы как а rescue не работал.

много выяснил на ходу. например что индексы надо множить на 2. то есть документация врала как хз что. но ходить по каталогам было можно. fuse, все дела.

а теперь смотрю что вот-с. это всё теперь открыто. 15 лет прошло. как-то даже непонятно зачем всё это было.

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

Пропозал приняли буквально через несколько дней после его опубликования

Понял, это не плохо.

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

или это мешает производителям быдродевайсов тиворизировать свои девайсы?

В ядре есть код разных авторов, а некоторых фиг найдёшь, чтобы согласовать переход.

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

ИСПРАВЬТЕ НОВОСТЬ НАКОНЕЦ!

Пятые сутки пошли!

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

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

Гуглить «Intel GVT-g».

P.S. На арчевики есть подробная статья.

MumiyTroll ★★★
()
Ответ на: комментарий от AS
[Kuzz@ThinkPad /]$ cat /etc/redhat-release 
Fedora release 32 (Thirty Two)
[Kuzz@ThinkPad /]$ mount | grep '/ '
/dev/sdb4 on / type btrfs (rw,relatime,compress=lzo,ssd,space_cache,subvolid=257,subvol=/root)
Kuzz ★★★
()
Ответ на: комментарий от intelfx

Снапшоты же в винде сугубо на уровне драйвера (volume shadow copy service).

А есть фс со снапшотами без участия драйвера?

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

Неправильно выразился. Там как раз не на уровне драйвера, а на уровне сопутствующих служб. То есть это как overlayfs в линуксе, действительно.

То есть в любом случае это «самодеятельность» ядра Windows, к дисковому формату или спецификации NTFS не имеющая существенного отношения.

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

Там как раз не на уровне драйвера, а на уровне сопутствующих служб.

Нет, там как раз на уровне драйвера - драйвера тома NTFS. Служба служит для управления процессом из юзермода.

в любом случае это «самодеятельность» ядра Windows, к дисковому формату или спецификации NTFS не имеющая существенного отношения.

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

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

Они и сейчас для этого палец об палец не удалили.

P.s. А вообще им надо пример с fsf брать. Они требуют передачу исключительных прав на весь код.

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

То есть в любом случае это «самодеятельность» ядра Windows, к дисковому формату или спецификации NTFS не имеющая существенного отношения.

Тогда бы она работала и на FAT32. Но нет.

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

Приведу более понятную аналогию. В винде есть реалтаймовое антивирусное сканирование

В драйвере NTFS?

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

Заслуги NTFS как файловой системы в VSS никакой, это всё делается на стороне виндового драйвера и сопутствующих служб. Соответственно, говорить о снапшотах как о преимуществе NTFS — нельзя.

Я думаю, Вы приводите неправиьные аргументы.

Я бы привёл в пример Btrfs и ZFS, у которых снапшоты в спецификации, а в качестве «аналога» VSS - снапшоты LVM, т.е. внешнюю по отношению к «драйверу ФС» (той же ext4) возможность.

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

Надо потрахаться с какими-то настройками

Гы-гы я не удивлён, это же ляликс :) Нада будет тоже попробовать.

CryNet ★★★★★
()

Не собирается у меня на Debian 10.

make fs/ntfs3/ntfs3.ko

Ошибка:

  CALL    scripts/checksyscalls.sh
  CC [M]  fs/ntfs3/bitfunc.o
In file included from fs/ntfs3/bitfunc.c:8:
./include/linux/blkdev.h:1031:22: error: expected declaration specifiers or ‘...’ before numeric constant
 #define SECTOR_SHIFT 9
                      ^
fs/ntfs3/ntfs.h:70:15: note: in expansion of macro ‘SECTOR_SHIFT’
 static_assert(SECTOR_SHIFT == 9);
               ^~~~~~~~~~~~
In file included from fs/ntfs3/bitfunc.c:15:
fs/ntfs3/ntfs.h:129:15: error: expected declaration specifiers or ‘...’ before ‘sizeof’
 static_assert(sizeof(ATTR_TYPE) == 4);
               ^~~~~~

...

Полный лог ошибки тут https://pastebin.com/aa0H2Tt6

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

Ок, спасибо. (Пингую как просил.)

P.S. С тикетом коммстрока может быть очень длинной, может быть проще будет:

cat /proc/${pid}/cmdline

LamerOk ★★★★★
() автор топика

В арчике собралось, однако имеется забавный эффект - файлы, созданные в линуксе, в винде недоступны. При том виндовый chkdsk ошибок не находит - подозреваю косяки с uid/gid…

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

для проброса надо иметь две видеокарты

У меня в виртуалбоксе за пять минут не взлетело, хотя я вроде и в биосе все что нужно выставил. Пока отложил на изучение чего надо правильно сделать.

Там (Virtualbox) это уже выкинули - слишком глючно. Поддерживать нету ресурсов

anonymous
()
Ответ на: комментарий от LamerOk
/usr/bin/kvm -id 101 -name gameblade -chardev socket,id=qmp,path=/var/run/qemu-server/101.qmp,server,nowait -mon chardev=qmp,mode=control -chardev socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5 -mon chardev=qmp-event,mode=control -pidfile /var/run/qemu-server/101.pid -daemonize -smbios type=1,uuid=25dbfe34-a35c-4348-b968-a65a93222267 -smp 10,sockets=1,cores=10,maxcpus=10 -nodefaults -boot menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg -vnc unix:/var/run/qemu-server/101.vnc,password -no-hpet -cpu host,hv_ipi,hv_relaxed,hv_reset,hv_runtime,hv_spinlocks=0x1fff,hv_stimer,hv_synic,hv_time,hv_vapic,hv_vpindex,+kvm_pv_eoi,+kvm_pv_unhalt -m 16384 -readconfig /usr/share/qemu-server/pve-q35-4.0.cfg -device vmgenid,guid=d795fb63-556a-44a8-bbff-6b592a4840cd -device vfio-pci,host=0000:04:00.0,id=hostpci0.0,bus=ich9-pcie-port-1,addr=0x0.0,multifunction=on -device vfio-pci,host=0000:04:00.1,id=hostpci0.1,bus=ich9-pcie-port-1,addr=0x0.1 -device vfio-pci,host=0000:00:14.0,id=hostpci1,bus=ich9-pcie-port-2,addr=0x0 -chardev spicevmc,id=usbredirchardev0,name=usbredir -device usb-redir,chardev=usbredirchardev0,id=usbredirdev0,bus=ehci.0 -chardev socket,id=serial0,path=/var/run/qemu-server/101.serial0,server,nowait -device isa-serial,chardev=serial0 -device qxl-vga,id=vga,bus=pcie.0,addr=0x1 -chardev socket,path=/var/run/qemu-server/101.qga,server,nowait,id=qga0 -device virtio-serial,id=qga0,bus=pci.0,addr=0x8 -device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0 -device virtio-serial,id=spice,bus=pci.0,addr=0x9 -chardev spicevmc,id=vdagent,name=vdagent -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 -chardev spiceport,id=foldershare,name=org.spice-space.webdav.0 -device virtserialport,chardev=foldershare,name=org.spice-space.webdav.0 -spice tls-port=61000,addr=127.0.0.1,tls-ciphers=HIGH,seamless-migration=on,streaming-video=all -iscsi initiator-name=iqn.1993-08.org.debian:01:b240e692278 -drive file=/var/lib/vz/template/iso/virtio-win-0.1.141.iso,if=none,id=drive-ide0,media=cdrom,aio=threads -device ide-cd,bus=ide.0,unit=0,drive=drive-ide0,id=ide0,bootindex=200 -drive if=none,id=drive-ide2,media=cdrom,aio=threads -device ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=201 -device virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5 -drive file=/var/lib/vz/images/101/vm-101-disk-0.raw,if=none,id=drive-scsi0,cache=writeback,discard=on,format=raw,aio=threads,detect-zeroes=unmap -device scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,rotation_rate=1,bootindex=100 -netdev type=tap,id=net0,ifname=tap101i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on -device virtio-net-pci,mac=D2:0E:CA:03:3F:5C,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300 -rtc driftfix=slew,base=localtime -machine type=q35+pve0 -global kvm-pit.lost_tick_policy=discard

Вот эти флаги:

-cpu 
host,hv_ipi,hv_relaxed,hv_reset,hv_runtime,hv_spinlocks=0x1fff,hv_stimer,hv_synic,hv_time,hv_vapic,hv_vpindex,+kvm_pv_eoi,+kvm_pv_unhalt

Остались от экспериментов с нвидией. cpu host еще просит также Windows Mixed Reality, так как отказывается работать на kvm процессоре.

Сам конфиг проксмокса:

root@blademaster:~# cat /etc/pve/qemu-server/101.conf 
#scsi1%3A mirror%3A104/vm-104-disk-1.qcow2,backup=0,cache=writeback,size=8G
#args%3A -device intel-hda,id=sound5,bus=pci.0,addr=0x18 -device hda-micro,id=sound5-codec0,bus=sound5.0,cad=0 -device hda-duplex,id=sound5-codec1,bus=sound5.0,cad=1 -object input-linux,id=kbd,evdev=/dev/input/by-path/platform-i8042-serio-0-event-kbd,grab_all=yes
agent: 1
balloon: 0
boot: cdn
bootdisk: scsi0
cores: 10
cpu: host
hostpci0: 04:00,pcie=1
hostpci1: 00:14,pcie=1
ide0: local:iso/virtio-win-0.1.141.iso,media=cdrom,size=309208K
ide2: none,media=cdrom
machine: q35
memory: 16384
name: gameblade
net0: virtio=D2:0E:CA:03:3F:5C,bridge=vmbr0
numa: 0
onboot: 1
ostype: win10
scsi0: local:101/vm-101-disk-0.raw,cache=writeback,discard=on,size=200G,ssd=1
scsihw: virtio-scsi-pci
serial0: socket
smbios1: uuid=25dbfe34-a35c-4348-b968-a65a93222267
sockets: 1
spice_enhancements: foldersharing=1,videostreaming=all
usb0: spice
vga: qxl
vmgenid: d795fb63-556a-44a8-bbff-6b592a4840cd

В закомментаренных аргументах остался проброс PS/2 мыши/клавы в виртуалку, может пригодится.

Сама эта виртуалка лежит на raid-0 поверх которого смонтирован bcache на intel optane. Бэкапы на зеркало.

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

Меня одного корежит от того, что файловые системы, драйвера и прочие околоядерные компоненты - вшиваются в ядро? Пора переходить от монолитных помоек к изолированным микроядрам.

Тоже считаю, что это маразм откровенный. Даже у M$ и её драйверами, которые можно ставить отдельно, сделано лучше

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

Если ставить spice-quest-tools, то на офисных пейлоадах работает сносно на фулхд.

Поставил на семёрку последние - видимые глазом тормоза на обычных свернул/развернул окнах такие же как в gtk-клиенте без qxl.

Через RDP быстрее выходит.

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

не распознаёт static_assert.

Пофиксил в ntfs.h

#define static_assert(condition)         \
   typedef char name[(condition) ? 1 : -1];

Также применил патч Linux-Fsdevel Archive .

Но всё равно не собирается. Код зависит от функции page_cache_readahead_unbounded. Которая доступна только для ядра 5.8 и выше.

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

В spice enhancements включи video, вроде здорово помогает. spice для меня без вариантов, так как через него можно усб пробросить по сети.

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

С точки зрения Линуса GPL 3 мешает распространению его ядра.

LongLiveUbuntu ★★★★★
()

Неужели в линуксах наконец-то появится хотя бы одна полноценная файловая система.
Да не, не может быть, не примут.

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

С местом всё хорошо. Оказалось смешное - все каталоги оно создает с NTFS-атрибутами system и hidden, а у меня их показ в explorer.exe отключен. Осталось понять, это dmask так криво интерпретируется или бага какая.

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

хз у меня второй системой винда и я могу из под линукса спокойно копировать/удалять/изменять/создавать файлы в ней, зачем тебе виртуалка даже не представляю

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

Почитай уже мануалы к ntfs-3g и всё станет ясно. Просто к сведению: то, что ты перечислил - далеко не все операции. Попробуй уменьшить/дефрагментировать раздел, особенно если есть битые блоки и/или после внезапного выключения ПК. И ещё раз повторюсь: носители с этой пакостью - не мои, но мне приходится с ними иметь дело.

anonymous-angler ★☆
()

Так а какое там сейчас состояние? Реакция была?

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

К сожалению GVT-g фундаментально ущербен. Знаю, о чём говорю, плотно его тестировал. Фундаментальная ущербность заключается в том, что в QEMU используется нить(thread), которая тупо через одинаковые интервалы времени(причём по умолчанию 30Hz, для 60Hz надо пересобирать QEMU) копирует screen buffer. Из-за этого там неустранимый input lag, даже если пробрасывать USB-контроллер как PCIe устройство в виртуалку.

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

уже есть тормозное говно fuse, которое делает то, что ты описываешь

как раз вместо этого говнища предлагают нормальный ядерный драйвер в этой новости, внезапно

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

Нахрена мне снапшоты, если у меня nixos

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.