Why is it that you can use a Linux-based computer or Linux Live CD to recover data Windows could not?
今天的問答環節是由SuperUser提供的,SuperUser是Stack Exchange的一個分支,是一個由社群驅動的問答網站分組。
超級使用者讀者Philip Allgaier想知道為什麼他能夠用Linux Live CD恢復資料,而該CD在Windows中被報告為不可恢復:
Background: Earlier this year I had a problem with a SSD drive that Windows would recognize anymore. But eventually a bootable Parted Magic 2012-10-10 did the trick. See this solved thread. One question stuck with me from that moment…
Question: I am aware that Linux is generally a bit more technical and raw, but can someone roughly outline why a Linux system (or in fact only that particular one, since Ubuntu did not do the trick) is capable of still accessing/communicating with a half-corrupted device when Windows isn’t?
當然,這可能是運氣使然,但可能有更多的因素在起作用。讓我們調查一下。
超級使用者貢獻者Eike為他儲存資料的能力提供了一些可能的解釋,不僅僅是運氣:
Usually this comes down to what, exactly, is being accessed and how, exactly, the device is failing. For instance, if the SSD in question is unable to retrieve, say, sector 5 and will start stalling as soon as anything reads sector 5, the difference may simply be due to what different systems automatically access once they recognize a new disk.
When Windows detects a new disk, it will read the partition table and automatically attempt to open any filesystems it knows how to read. If any of the structures/blocks being read during this “mounting”-process trigger your faulty SSD to go bye-bye, the difference with that specific linux distribution is simply that it may not automatically mount all the partiti*** in question, or may, when mounting, simply read a different subset of sectors (the implementation of NTFS in Linux is very different from the one in Windows — while the on-disk format is the same, it is up to the OS which structures it deems necessary to read. Windows may read secondary copies of the MFT, or it may start precaching some data and that could be the difference. Ubuntu is in a similar boat — it is not geared towards recovery out of the box, it will attempt to mount any filesystem it finds on newly discovered media, automatically. It is for this reason that specialized distributi*** geared towards recovery are a better bet, as they only do what you explicitly ask them to as opposed to doing things automatically.
Of course, you may simply have gotten lucky, too. I don’t know enough about the failure mode of the SSD to say.
Linux generally does not ignore indicators that something is wrong. It will receive the same SCSI errors from the SATA chipset as Windows will — if you look at the kernel log, on a faulty disk you will see lots of error messages. It depends on what programs are actuallly accessing the disk what will happen next. If it’s software geared towards recovery, it may try to reread the same sector a limited number of times, it may skip it, etc. Usually the best bet is to get an image of the drive with as many sectors read cleanly as possible, and then try to recover your data from that image (doing any ****ysis directly on the drive is a bad idea usually since its condition may worsen and just because you were able to read something once, that does not mean you will be able to read it again.)
另一位撰稿人Athonfere則提供了另一種觀點:
A lot of it is the way the environment handles the file system, and the ACLs or the hard drive.
Windows is going to do everything it can on its own to obey its ACLs, and sectors marked as bad or empty. So NTFS or Fat partiti*** created and maintained in Windows as well as Windows MBRs will be handled by Windows as Windows marked it.
Also, if the drive is failing the more you use it the more likely it is to encounter a major problem and the environment will crash. Then how the OS handles that comes into play, Windows will BSOD or reboot, the windows boot process will throw MBR messages, missing file messages (NTDLR.dll is missing or corrupt) and stop, because these bad files are required.
When you use a live disk, you are not relying on any of this. A bad MBR is bypassed because you boot off of the disk. A bad sector that corrupted the NTDLR.dll is not needed. Everything is on the disk. You can then attempt a read. If it encounters a ‘blank’ sector or bad bit, that environment handles it however it was programmed to do. Ubuntu likely would rather maintain normal OS behaviors and continue on with what is most likely to be happening. The sector is blank, do something else. That sector is bad, stay away, do not read again do not write or it will cause problems.
A recovery platform however, is going to want to read all data. The file markers say the file should be on 0,5, 13…. if the filesystem reports 13 is missing, ignore the blank header and read the file anyway, or read the bad sector as best as it can and try to recover.
Also, Windows CAN do alot of this with third party applicati***, Recuva can find alot of these “missing” files, for one. But you don’t want to be in an environment that may write back to the disk and cause true permanent loss.
I did simplify this, and add some interpretation, but it should fill in some blanks for what you are asking.
有什麼要補充的解釋嗎?在評論中發出聲音。想從其他精通技術的Stack Exchange使用者那裡瞭解更多答案嗎?在這裡檢視完整的討論主題。
http://superuser.com/questi***/586666/why-can-linux-systems-time-recover-data-windows-cant-any-concrete-reas***
...資料的磁碟扇區被覆蓋之前,檔案資料仍然存在。這就是為什麼檔案恢復程式可以恢復檔案。此外,這也是為什麼一些檔案恢復程式可以恢復部分檔案的原因——包含舊資料的扇區沒有被完全覆蓋,留下一些完整的資料。 ...
...越多地使用**工作,**上儲存的檔案也越來越多。這就是為什麼這些東西不見了會特別痛苦。 ...
... 這是一個教訓,告訴我們為什麼您應該總是與雲提供商以及本地副本進行異地備份,但現在已經太遲了。 ...
...到了無法挽回的失落,這是你永遠都會感激的。 這就是為什麼testdisk是如此方便的實用工具。當你透過選單,可以開始恢復檔案,很容易陷入一個節奏的突出顯示,c,c,重複。