How to rescue your partitions after upgrade to Fedora 18 Alpha eats them

Roger arelem at bigpond.com
Sun Sep 23 23:22:49 UTC 2012


On 09/24/2012 02:09 AM, Eddie G. O'Connor Jr. wrote:
> On 09/23/2012 07:33 AM, Jakub Kicinski wrote:
>> Hi all,
>>
>> I recently had a weird problem after "upgrade" to Fedora 18 Alpha. I
>> decided to share the solution, maybe it will help someone.
>>
>> But first:
>>
>> 1. The rant
>>
>> Clearly something bad is going on in Fedora world. I've been
>> upgrading to Alphas/Betas for years now and it never caused more
>> trouble than occasional need to rebuild some packages manually.
>>
>> I read this:
>> http://lwn.net/Articles/506831/
>> but I didn't suspect that not only Rawhide, but also Alpha releases
>> became unusable.
>>
>> First of all PreUpgrade crashes before it starts. I thought, well, I'll
>> try DVD. It kind of worked. I was looking for words like "upgrade" or
>> "update" in the new and shiny anaconda but no luck. Eventually it
>> started the installation (without any "Warning: write changes to
>> disk?" or alike). At that point partitions of Fedora 17 where already
>> magically renamed to Fedora 18, so I hoped for the best. Unfortunately
>> anaconda crashed when it tried to format my Win7 partition to the
>> widely used filesystem "None"?! Imagine my amusement when after reboot
>> I realised that MBR and GPT where wiped out and all of my partitions
>> were nowhere to be found.
>>
>> 2. The problem
>>
>> It turned out anaconda not only wipes out MBR but also removes magic
>> numbers from partitions superblocks (anyone can explain why?). So the
>> good news was my data was still there, the bad news was: none of
>> automatic "lost partition detection" tool could find them (at least none
>> that I know of).
>>
>> 3. The solution
>>
>> If it happens to you as well, here is what you can try to get your
>> data back:
>>
>>   a. Accept that you do all this on your own risk ;)
>>   b. Backup your HDD, preferably all of it. Backup can be done with dd.
>>   c. Connect damaged HDD to some other Linux box or use a Live
>>      distribution.
>>   d. Now you need to locate your first partition. There is a good chance
>>      that this will be your /boot and Fedora usually locates it at
>>      0x100000 (i.e. it starts in 2048 sector). Other possibility is
>>      sector 63/64 from pre-GPT world.
>>   e. Set magic value in superblock (see below).
>>   f. Try mounting partition using offset option in mount.
>>   g. Calculate where next partition is most likely to start using block
>>      count and block size from superblock.
>>   h. Fix your MBR. You can probably do that in parted or some similar
>>      tool, but who would trust tools after one just nearly destroyed all
>>      your data.
>>   i. If you have more partitions to find, go back to (d).
>>
>>
>> Important: All values on disk are LITTLE ENDIAN.
>> Important: Try mounting your partitions read-only first.
>>
>> Notes on EXT4.
>> Ext4 is quite easy to find. You will recognize it by two zeroed out
>> sectors (1024 bytes of zeroes) at the beginning of every partition.
>> NOTE: those zeroes are *in* the partition, do not skip them when trying
>> to mount. After zeroes there is a superblock. What you are looking
>> for is offset +0x38 in the superblock, where you once had a magic value
>> of 0xEF53, you will probably have to put it back there. More information
>> on EXT4:
>> https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout
>>
>> Notes on NTFS.
>> NTFS partition starts with EB 52 90, there are no zeroes in front. Magic
>> value which is removed by anaconda is "4E 54 46 53 20 20 20 20"
>> at offset 0x03 into a partition. Its literally "NTFS    " (with spaces).
>> More info:
>> http://technet.microsoft.com/en-us/library/cc781134%28v=ws.10%29.aspx
>>
>> Useful tools:
>> dd - will help you to copy blocks of data around. If you don't know it
>> already, I advise you to read some tutorial and practise first. It's
>> easy to destroy thing with one wrong dd.
>>
>> emacs, okteta etc. - hex editor...
>>
>> losetup - is a tool which enables you to mount files and drives at
>> particular offset as loop devices. Very useful, read more here:
>> http://rackerhacker.com/2010/12/14/mounting-a-raw-partition-file-made-with-dd-or-dd_rescue-in-linux/
>>
>> dumpe2fs, nftsinfo - will decode superblock for you.
>>
>> bash calculator - $((1+2+3+4*4)) can save you a lot of time.
>> bash printf - printf "%d\n" 0x1AB2F or printf "%x\n" $((7863*4096)) is
>> handy as well.
>>
>> Good luck from (a sightly less happy) Fedora user
>>     -- Kuba
> WOW!.....that's terrible! But I guess that's just one of the reasons I 
> purposely wait until a release has been out for almost 3 
> months....before installing / upgrading. It just makes it a little 
> easier when the glitches have been made apparent and are either 
> completely worked out or are in the process of being worked out. In 
> all honesty...I actually prefer to wait a few releases before 
> upgrading, I kind of have my OWN "schedule" I usually wait and let one 
> release pass by, then I'll wait for the next version...and 3 to 4 
> months into _that _I'll upgrade.....this helps me remain a little more 
> "stable" and not have to scurry around upgrading every 6 months....
>
>
> EGO II
>
>
Yes I am much the same. I'll skip an upgrade or two, wait for stability 
then after copying all my files, do a fresh install.
Roger
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.fedoraproject.org/pipermail/users/attachments/20120924/51ebdc7a/attachment.html>


More information about the users mailing list