I was editing my disk and when i wrote the changes and exited cfdisk, no cli command worked. Thats when i realized that im f-ed up.
This what happened:
I have 3 partitions, 512M efi, a 100G root partition and some free (unallocated) space. I had 84G worth data in the root patition. I totally forgot that and shrinked the root partition to 32G to extend the free space. I was using cfdisk tool for this. I wrote the changes and rebooted my machine, by long pressing power button coz no cli commands worked after writing those chrnges, to see this.
So is it possible to recover my machine now?
:_ )
SOLUTION
Thanks to @[email protected].
cfdisk just updates the partition table. So no worry about data damage . To fix this, live boot -> resize the partition back its original size -> fsck that partition. For more explanation, refer @[email protected] comment
just to add a little more explanation to what the other posters are suggesting.... a hard drive, from the perspective of your OS is very very simple. it's a series of bytes. for the sake of this example, let's say there are 1000 of them. they are just a series of numbers.
how do you tell apart which numbers belong to which partitions? well there's a convention: you decide that the first 10 of those numbers can be a label to indicate where partions start. e.g. your efi starts at #11 and ends at #61. root at starts at #61 and ends at #800. the label doesn't say anything about the bytes after that.
how do you know which bytes in the partions make up files? similar sort of game with a file system within the bounds of that partion - you use some of the data as a label to find the file data. maybe bytes 71-78 indicate that you can find ~/.bash_histor at bytes 732-790.
what happened when you shrunk that root partions, is you changed that label at the beginning. your root partion, it says, now starts at byte #61 and goes to #300. any bytes after that, are fair game for a new partion and filesystem to overwrite.
the point of all this, is that so far all you've done is changed some labels. the bytes that make up your files are still on the disk, but perhaps not findable. however - because every process that writes to the disk will trust those labels, any operation you do to the disk, including mounting it has a chance to overwrite the data that makes up your files.
this means:
most of your files are probably recoverable
do not boot the operating system on that drive, or any other that will attempt to mount it, because you risk overwring data
before you start using any data recovery tools, make a copy of the raw bytes of the disk to a different disk, so that if the tools mess up you have an option to try again
ONLY after that is done, the first thing I'd try is setting that partion label back to what it used to say, 100gb.. if you're lucky, everything will just work. if you aren't, tools like 'photorec' can crawl the raw bytes of the disk and try and output whatever files they find.
If there's something really important on that disk, don't do ANYTHING, just unplug it and hand it over to a data recovery company.
If there isn't anything really important on there, go ahead and try and do it yourself.
Paying $100 to a data recovery company can save you a ton of headaches if it has the only copy of your thesis on there and you mess it up trying to fix things yourself.
If you create an image of the disk in the current state from a live boot or an other machine. You can try fixing it without having to risk making things worse
That's correct answer. If you did not write anything in the space you freed (i.e. did not create a partition there AND format it), your data is not damaged.
also format does not actually completely overwrite most of the data, so you'll probably just end up with a couple corrupted blocks, which are fixable with some minor data loss
I always love working with partitions because of the knowledge it gives you, but it is also certainly dangerous and from time to time it is unnevitable to suffer an accident. In any case I always try to do this type of operations with parted and if possible with GUI (gparted).
Being in the photo situation, can't you make a fsck as the error messages tell you?
fsck /dev/nvme0n1p2
If not, the most practical would be, IMHO, to boot from a rescue live, e.g. https://www.system-rescue.org/Download/
Once booted, you can lift the graphical interface with startx and do with gparted the operations you need on these partitions.
The filesystem driver knows the size of the filesystem is larger than the physical size of the partition it is on. Because of that it refuses to do anything with it until that discrepancy is sorted.
Boot to a USB/ISO, run cfdisk, extend the partition size back to original or larger, then run fsck on the partition again.
The existing file system appears to have been damaged possibly because cfdisk has not adjusted (shrinked) the existing file system before changing the partition settings. In my case, this kind of thing I only dare to do with gparted if partitions contain file systems with data.
I would try the second option I mentioned above, as my last chance: to start a live-rescue and look that allows us to gparted, but I am not very optimistic about it
I have shrunken a APFS partition (macOS) too much lately and was still able to mount it read only using Linux and back up all stuff I needed. But that depends on how corrupted this partition is now.
Maybe you need something like Gparted live ISO in order to get to your data. Check out the Command Line Utilities on that webpage, maybe there is the savior of your data
And about the arch installation, if you want easy mode, just type "archinstall" after ArchISO has booted and your PC is connected to the internet (phone connection via USB works to get internet connection)