Other chkdsk NTFS alternativies

Hello all,
I am trying to move to FreeBSD from being a windows lifer. My box dual boots 2012r2 and FreeBSD 11.2 beta 3. I have multiple 4tb hard drives formatted as ntfs.
I have them set to auto mount in fstab "/dev/ada0p2 /mnt/Storage ntfs-3g rw,failok,late,mountprog=/usr/local/bin/ntfs-3g 0 0"
They mount fine and are shared with samba, sometimes they mount read only. When they do I reboot and log into windows run checkdisk, it repairs the file system. I reboot back to FreeBSD they mount read write. It happens often and was wondering what I may be doing wrong or how can I correct this behavior. I looked at Testdisk "https://www.freebsd.org/cgi/man.cgi...ath=FreeBSD+8.0-RELEASE+and+Ports&format=html" this seems to be geared more towards recovery. I also looked at "ntfsfix -b -d /dev/ada0p2" it runs to fast to be checking the file system, is it? or is it just clearing the flags. Any paid or free alternatives to "chkdsk" or suggestions on best practice? I really do not want to change the filesystems.
Thanks
 
Best practice:
1) do not use ntfs filesystems for FreeBSD (except for copying files from it)
2) do not share ntfs filesystems between different operating systems
If you need to share files, the best way to do it is to set up a separate box as a fileserver / NAS, put the files on there and share over the network.
 
If I am using bhyve, would it be safe to attach my ntfs (with or without mounting them in FreeBSD) drives to a windows vm?
 
You could theoretically do that with Virtualbox if you set Virtualbox to setup drive in direct connection mode which implies some tunning (you can't do this out of the box, just read the manual). In direct connection mode, there is a passthrough to access directly the drive through the disk controller, so no need to mount the drive in the host operating system and no need to access the drive through a virtual disk file as vhd, vmdk...

For behyve, I can't tell, I don't use it. I don't know if behyve has implemented an equivalent to the Virtualbox passthrough mode. Usually, drive virtualization is done through a special file (vhd, vmdk.... etc), passthrough mode is not the common way, so wait for other answers.

If you use Windows 10 Pro, you can create a VHD file through the drive manager.
You can mount this virtual drive, and so format it in NTFS, and you could be able to copy data from your physical NTFS drive to the VHD virtual drive. Further unmount the VHD drive, copy move the VHD file to a FreeBSD drive (ZFS or UFS2), and attach it to your virtual guest in Virtualbox... this is the common way to deal with NTFS guest drive.

As NTFS is encapsulated in a vhd file, FreeBSD host system will not see it, no need to use FUSE, the Windows guest OS will directly and natively access to the NTFS data through Virtualbox

Just understand that NTFS is not natively supported by FreeBSD, it is just supported through FUSE... and this very slow and not safe in writing mode.
You can mount NTFS in read only mode under FreeBSD with no problem.
But mounting NTFS in read/write mode is always a little risky, you could get the NTFS data corrupt

With FreeBSD... please, try to forget NTFS. Think FreeBSD not Windows.

If you want to share data accross operating systems, today the best solution is ext2

- ext2 is natively supported by FreeBSD in R/W mode (not speaking of Linux) through a loadable kernel module
- ext2 IS NOT JOURNALISED, this is a critical point for a portable filesystem
- installing "extfsd" on a windows machine and you can access data in very acceptable conditions

But void ext3 / ext4 :
- journalised by default (but deactivable)
- as today the FUSE writing mode is very experimental under FreeBSD. Same thing or Windows... you can corrupt and loose all data
Thanks for the info.
Not that you asked but, I built a new box recently with Ryzen 7 to run my 2012r2 server (web and exchange and media file server (hence my four 4tb NTFS drives)). To my annoyance there is no driver support for 2012r2 or 8.1
They are trying to push me to 2016 version of the server (I am a hobbyist and none of this is for business, not to mention I do not like all the analytics and frequent updates (I am writing this on a 2008r2 box)). That is why I am experimenting with FreeBSD, everything is new to me but very interesting.
 
NTFS support (using FUSE) is somewhat dodgy. As it's not an "open" filesystem they had to reverse engineer the filesystem. Microsoft has a habit of changing the filesystem, so those changes will need to be reverse engineered too. Because of all this it is quite dangerous to allow write access to NTFS. Most of the time it works fine but there are lots of horror stories about completely corrupted NTFS filesystems due to FUSE.

It's safe enough to use it for read-only but allowing write access could, at some point, result in corruption.
 
I am going to use a exfat (fusefs-exfat) formated drive for my transfers on by dual boot box. I can mount it fine manually, I can't figure out the correct way to add it to my fstab to auto mount. I can't seem to find much if any info in my searches.
 
Back
Top