Unable to create an NTFS partition in a new GPT table

Context

I've added a fancy new NVMe storage device to my system. I wish to install an operating system on it. To achieve this, I believe I should:
  1. Setup a GPT partition table scheme
  2. Create an NTFS partition within the GPT table scheme
  3. Reboot and use a prepared USB to install my new operating system onto the NVMe (Windows 10)
Steps

DescriptionCommand/EditResult
Enable NVMe direct access
with device driver ( nda)
echo 'nvme_load="YES"' >>
/boot/loader.config &&
echo 'nvd_load="YES"' >>
/boot/loader.config &&
echo 'hw.nvme.use_nvd=0' >>
/boot/loader.config &&
reboot
N/A
List my devices nvmecontrol devlist
nvme0: Samsung SSD 980 1TB
nvme0ns1 (953869MB)
nvme1: Samsung SSD 960 EVO 250GB
nvme1ns1 (238475MB)
List ndaX
device(s)
ls /dev/nda*
/dev/nda0
/dev/nda1
/dev/nda1p1
/dev/nda1p2
/dev/nda1p3
Create a gpt
partition table scheme
gpart create -s gpt /dev/nda0 nda0 created
Add an NTFS partition gpart add -t NTFS -l Windows10 nda0
gpart: invalid argument

Now I have run into a problem. I would like to create this NTFS partition, but gpart refuses to. Unfortunately, the error is not very informative. If I inspect the device, I see the following

DescriptionCommand/EditResult
Show device gpart show nda0
40 1953525088 nda0 GPT (982G)
40 1953525088 - free - (932G)

I would think I would now be able to create a partition. Why can't I? Am I missing something?

Resources

  1. Inconclusive: https://forums.freebsd.org/threads/partition-and-file-system-creation-on-nvme-based-ssd.44983/
 
Okay, when reading https://www.freebsd.org/cgi/man.cgi?gpart(8), I found the following:

ms-basic-data A basic data partition (BDP) for Microsoft operat-
ing systems. In the GPT this type is the equiva-
lent to partition types fat16, fat32 and ntfs in
MBR. This type is used for GPT exFAT partitions.
The scheme-specific type is
"!ebd0a0a2-b9e5-4433-87c0-68b6b72699c7" for GPT.

When I run the command with
Code:
 gpart add -t ms-basic-data nda0
instead of NTFS, then it works. Strange. (BSD 14.0 FYI).
 
When I run the command with
Code:
 gpart add -t ms-basic-data nda0
instead of NTFS, then it works. Strange. (BSD 14.0 FYI).

I can confirm this also works for me as well on FreeBSD 13.1

Anyone who wants to make NTFS drive on FreeBSD:

Note: make sure to install "fusefs-ntfs".
# pkg install fusefs-ntfs


View Partitions/Drive:
# gpart show


Destroy Partition/Drive:
# gpart destroy -F ada1


Create a GUID Partition Scheme:
# gpart create -s GPT ada1


Create a partition type (NTFS) and add the size (bytes, using “g” for GB), I will create a 1.8 TB (1,800 GB) partition:
# gpart add -t ms-basic-data -s 1800g ada1


The drive needs a NTFS Filesystem, perform a fast format and add a label to the partition:
# mkntfs --verbose --fast --label 2TB_HD /dev/ada1p1


Mount the Drive:
# ntfs-3g /dev/ada1p1 /mnt/2_TB_HD
 
Back
Top