Nedanstående är om du vill rädda data från en en disk med 512-bytes sektorer på själva disken men är logiskt formaterad som en disk med 4k-sektorer som tex. en del USB disk-kabinett gjorde i tidsperionden 2010 - 2015 för att vara kompatibel med Win-XP OS.
om man bara vill använda disken utan att rädda data så använder man program som rensar de första MByten av diskens början genom att skriva dessa med '0' eller liknande - en del partitionsprogram kan kan också nolla MBR och GPT-partitioner.
---
Om disken är från 2010 - 2015-talet (och XP fortfarande var dominant som win-OS) så har man förmodligen sektorstorlekomvandling mellan 512-bytes sektorer inne på disken till 4k-sektorer som visas utåt mot inkopplad dator över USB-bussen då man annars inte kom över 2 TB med användande av MBR som partitionssektor då den kan bara addressera 32-bits LBA.
För att lösa problemet med XP som bara kan hantera MBR-partitioner så skapade man 4k-sektorer (och teoretiskt kunde addressera 16 TB) med SATA/USB-chipet i externa USB-disklådan.
När du koppla in disken direkt mot SATA-uttag på modekortet så blir det helt fel då partitionstabellen och filsystemet räknar med 4K-sektorer men disken själv meddelar systemet och OS 512-bytes sektorer - det är bara MBR på första sektorn av disken som läses korrekt, resten går helt åt pipan rent logiskt
Den enda metoden jag känner till just nu är att man gör en disk-image kopia av disken till en fil som ryms på en större disk.
Att i linux sedan montera diskimagen med "loosetup -P -f -b 4096 /path/to/diskimage <Enter>" då det då monteras virtuellt som om disken har 4k-sektorer.
När denna kommando körs i linux så generas en uppsättning loop-device under /dev/loopxx - där 'xx' är ett löpnummer på loop-devices
med 'lsblk' får du ut en lista och där kan på storleken se vilken av dessa 'loopxx' som stämmer med din disk mha. storleken
Har man identifiera rätt, tex. 'loop32p1' (för partition 1 på disken) passande med sin storlek så kan man sedan montera denna med "mount /dev/loop32p1 /mnt <enter>" och om allt går bra så kommer du hitta dina filer under /mnt i roten på linux-filträdet och därifrån sedan kan flytta ut dina filer till annan lagring.
Detta görs alltså under linux då windows har ingen begrepp som '/dev' eller att man kan accessa diskar direkt i konsol i RAW-format - det fins API som kan ge åtkomst på låg nivå till lagringen men då är man beroende av rätt köpe-program för att göra detta.
---
Kopplas disken in med fysisk med SATA-anslutning på moderkortet så är det tamefan omöjligt att övertyga OS (oavsett slag) att disken som enligt BIOS/PCIe rapporteras som en lagring med 512-bytes sektorer, skall behandlas som en disk med 4k-sektorer - även i linux är det omöjligt att övertyga systemet att den har annan sektorindelning än det som disken själv rapporterar då informationen från BIOS/PCIe-systemet är det som gäller och går över alla instruktioner/parametrar man försöker med..
- men med 'losetup' så skapar man en virtuell disk på user-level nivå av diskimagen på fil och då kan man själv bestämma vilken sektorstorlek den skall hanteras med - och då med användningen av Linux 'FUSE system'
- det fins inget ekvivalent hantering på samma sätt i windows som 'FUSE' i Linux och det är ett jädra strul med olika mer eller mindre buggiga paket att kunna emulera en annan filsystem under windows och för det mesta också måste vara admin.
En möjlig väg är att prova (med en kopia av diskimagen) är att konvertera diskimagen till en datadisk med någon av de olika programmen som används i lämplig VM-maskin (MS VM (90-dagars licens), virtualbox, VMWare mfl.) och sedan montera denna disk till en virtual-maskin med en snurrande windows i sig, dock har jag inte koll om man kan styra vilken sektorstorlek den virtuella diskimagen skall meddela sig till VM-maskinen när man konvertera diskimagen.