maharmstone / ntfs2btrfs

GNU General Public License v2.0
683 stars 30 forks source link

SD headers do not match #14

Open Schokokex opened 3 years ago

Schokokex commented 3 years ago

hey, i cant convert my ntfs windows drive into btrfs. I started Windows Setup with command line (which uses Windows PE i guess) and launched ntfs2btrfs.

Pagefile is disabled for that drive. partition table is GPT.

C: drive i want to convert D: drive containing ntfs2btrfs.exe

executing D:\>ntf2btrfs.exe C:\ gave me error SD headers do not match

i2 commented 3 years ago

I am having the same issue. My partition table on the external hard drive that I want to convert NTFS to btrfs is GPT. I looked at the corresponding line in ntfs2btrfs code for this error but unfortunately couldn't understand the issue. Any help would be appreciated!

plonialmoni commented 2 years ago

I'm getting the same error, from the Linux ntfs2btrfs in a live Fedora 35 ISO, attempting to convert my Windows boot SSD on my laptop.

plonialmoni commented 2 years ago

well, I managed to convert my recovery partition. No conversion for my boot partition though. It's on an nvme drive for what it's worth, so nvme0n1p# devices in Linux rather than sd??

ThibaultLemaire commented 2 years ago

I also have the same issue on an nvme drive, however I'm suspecting it has to do with the "Microsoft Reserved" partition. (A 134MB/128MiB partition right before the main NTFS partition)

IIRC this weird partition is kind of an overlay atop the next partition and I've seen it throw off Linux software in the past because both partitions say they start at the same offset or something like that. Wrong. See https://github.com/maharmstone/ntfs2btrfs/issues/14#issuecomment-1131622781

Quibble's readme specifically says

Install Windows on an NTFS volume.

and doesn't mention OEM installs. I believe manual Windows installations don't create this partition which would explain why only some of us are having this issue. They do, but it's only 16MB.

maharmstone commented 2 years ago

Thanks, that's interesting... Do you know of anything that goes into the details of this? I couldn't find anything online.

ThibaultLemaire commented 2 years ago

Unfortunately, no. I might be confusing this with something else. I will have to reinstall windows manually or delete this partition somehow to test my hypothesis. I'll report back here when I get a chance to do that.

ThibaultLemaire commented 2 years ago

Evidence that something sketchy is going on with the OEM install on my machine. Here is what the windows partition utility reports, and what gnome-disks shows:

Capture Screenshot_20220518_152746

Note the missing 134MB Partition 2 in what windows shows. This is what I was talking about.

ThibaultLemaire commented 2 years ago

It seems my hypothesis is at least partly wrong: deleting this special partition doesn't help. All I managed to do was break my Windows installation (woops, though that was to be expected).

I tried to repair it with a windows install media, and successfully shrinked it from linux, but ntfs2btrfs still refuses to convert this partition with the same SD headers do not match error. (It is still perfectly usable both from windows, and from linux, though it contains some corrupted files. They were present before shrinking, but I don't know what caused them.)

I have reinstalled Windows manually with the installation media, and was able to successfully convert the resulting partition to btrfs, so I think we can definitely rule out the nvme drive as being the problem.

I am now hitting a Unable to parse ARC name error when trying to boot with Quibble, but I believe that is another issue (https://github.com/maharmstone/quibble/issues/23).

Still, I say "partly" because that original NTFS partition remains un-convertible, and the only difference I can think of, is that it was already there when I got the machine. So I stand by my analysis that the problem is the OEM install.

sonicrules1234 commented 2 years ago

It seems my hypothesis is at least partly wrong: deleting this special partition doesn't help. All I managed to do was break my Windows installation (woops, though that was to be expected).

I tried to repair it with a windows install media, and successfully shrinked it from linux, but ntfs2btrfs still refuses to convert this partition with the same SD headers do not match error. (It is still perfectly usable both from windows, and from linux, though it contains some corrupted files. They were present before shrinking, but I don't know what caused them.)

I have reinstalled Windows manually with the installation media, and was able to successfully convert the resulting partition to btrfs, so I think we can definitely rule out the nvme drive as being the problem.

I am now hitting a Unable to parse ARC name error when trying to boot with Quibble, but I believe that is another issue (maharmstone/quibble#23).

Still, I say "partly" because that original NTFS partition remains un-convertible, and the only difference I can think of, is that it was already there when I got the machine. So I stand by my analysis that the problem is the OEM install.

That partition is there normally. Windows uses it for some of the system files IIRC. That's why your Windows install broke when you deleted it.

ThibaultLemaire commented 2 years ago

@sonicrules1234 Figured that out when the manual install added it back without asking me :joy:

sonicrules1234 commented 2 years ago

I'm pretty sure ntfs2btrfs already takes the microsoft reserved partition into account. That said, I've never been able to get ntfs2btrfs working myself.

Masamune3210 commented 2 years ago

All the MSR is used for is things that would have during MBR days just wrote to a spot of the disk and then hidden it. The GPT standard does not allow for hiding parts of the disk, so they are wrote inside that partition instead. Stuff like LDM metadata used for things like Windows' software RAID system. It's actually mostly empty 90% of the time otherwise

halian commented 1 year ago

I am having the same issue as OP when attempting to convert my Windows 10 boot partition (from without, of course). Repeated chkdsks do nothing to change it.