Welcome to the Linux Foundation Forum!

Recover Extended Logical Partition after MBR to GPT Conversion

I had tried to convert my HDD from MBR to GPT, and like an idiot converted every partition separately not
knowing I only had to convert the whole disk at once. I had seen a few tutorials where people were using
Parted to convert the MBR. Below is a printout of my partitions before the destruction:

[CODE]

fdisk -l /dev/sda

Model: ATA ST500LT012-9WS14 (scsi)
Disk /dev/sda: 976773168s
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
2 2048s 39063551s 39061504s primary ext4 boot
3 39067646s 650115071s 611047426s extended
5 39067648s 468023295s 428955648s logical ext4
Partition 3 does not start on physical sector boundary.
[/CODE]

So to explain exactly what I did. I wanted to rid my system of the MBR 4 Primary partition limitation. Here
is a overview of each partiton was and usage: sda2 /, sda3 extended , & sda5 /home. Converting sda2 was
no problem. I ran into my issues when I got to sda3. I had tried converting (dev/sda3 204.6G extended) from
beginning to end (39067646s-650115071s) thinking this would include everything in the (dev/sda5 /home 86.8G logical)
partition. What I am left with is 2 partitions. Partition sda2 is fine with no issues, sda3 looks to have
absorbed sda5. I can no longer access these files from sda5. I know all my files are still there because I
used photorec to dump sda3 to an external sdd, then dd'd a complete copy of sda3 to another hdd. All the files
are still on the drive because when I used photorec for recovery, it dumped all files into whole bunch of directories
incrementally named "recup_dir...", but for the least they are there.

Somewhere in this process it seems as the partitions shifted a bit; Original sda2 / is now sda1 with everything
intact. Original partition sda3 is now sda2.

When running cfdisk on the sda2, I can see it shows as having a sub-partition of 86.8G which is exactly what my
original /home partition was. It lists it as "Free space" however which confuses me a bit.

[CODE]
cfdisk /dev/sda2
Disk: /dev/sda2
Size: 291.4 GiB, 312856282112 bytes, 611047426 sectors
Label: dos, identifier: 0x00000000

Device              Boot                     Start               End           Sectors          Size        Id Type

/dev/sda2p1 2 428955649 428955648 204.6G 83 Linux

Free space                               428955650         611047425         182091776         86.8G

[/CODE]

Also, taking a look with gdisk it shows as the MBR "protective", and GPT only "present". Not sure if this should like like this

[CODE]
gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

Found valid GPT with protective MBR; using GPT.
[/CODE]

All in all, what Id like to do ideally, would be to just recover my /home partition with the same folder names and file structure.
Once I have accomplished this I plan to format the whole drive and start fresh, it would be a huge loss to not be able to recover
all my files. Any and all help would be greatly appreciated.

Here is the exact commands I had used while converting:

[CODE]

COMMANDS USED

parted /dev/sda
unit s

mktable gpt
i #for ignore
#yes to continue
i #for ignore

Parted /dev/sda
unit s
mkpart
#partition name >blank
#filesystem type >ext4
#start >2048s
#end >39063551s
i #for ignore

mkpart "" home 39067646s 650115071s

set 1 legacy_boot on

partprobe

[/CODE]

A before and after of partitions:

[CODE]

Before conversion

fdisk -l /dev/sda

Model: ATA ST500LT012-9WS14 (scsi)
Disk /dev/sda: 976773168s
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
2 2048s 39063551s 39061504s primary ext4 boot
3 39067646s 650115071s 611047426s extended
5 39067648s 468023295s 428955648s logical ext4
Partition 3 does not start on physical sector boundary.

After conversion

fdisk -l /dev/sda

Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 4DC051BC-5700-489A-8E0B-919A562986E4

Device Start End Sectors Size Type
/dev/sda1 2048 39063551 39061504 18.6G EFI System
/dev/sda2 39067646 650115071 611047426 291.4G Linux filesystem
[/CODE]

Categories

Upcoming Training