A data restoration method, wherein the method is used to restore data in a memory , the memory is comprised in a terminal , and the method comprises: when the terminal runs or loads a first operating system, monitoring whether an error occurs in original data which relates to the first operating system and which is stored in a read-only area of the memory ; loading a second operating system from the memory when it is determined that an error occurs in the original data, wherein the second operating system provides at least a system restoration function; and when the terminal runs the second operating system, obtaining an original data file corresponding to the original data, and restoring the original data to the read-only area of the memory according to the original data file, wherein the obtaining an original data file corresponding to the original data specifically comprises: sending, by the terminal , an obtaining request to an external device, wherein the obtaining request is used for obtaining the original data file corresponding to the original data; and receiving, by the terminal , the original data file sent by the external device, characterized in that the obtaining request comprises a model of the terminal , a version of the first operating system, and block information of original data in which an error occurs; and the original data file is a mirror of the original data corresponding to the block information. when the terminal runs or loads a first operating system, monitoring whether an error occurs in original data which relates to the first operating system and which is stored in a read-only area of the memory ; loading a second operating system from the memory when it is determined that an error occurs in the original data, wherein the second operating system provides at least a system restoration function; and when the terminal runs the second operating system, obtaining an original data file corresponding to the original data, and restoring the original data to the read-only area of the memory according to the original data file, wherein the obtaining an original data file corresponding to the original data specifically comprises: sending, by the terminal , an obtaining request to an external device, wherein the obtaining request is used for obtaining the original data file corresponding to the original data; and receiving, by the terminal , the original data file sent by the external device, characterized in that the obtaining request comprises a model of the terminal , a version of the first operating system, and block information of original data in which an error occurs; and the original data file is a mirror of the original data corresponding to the block information. sending, by the terminal , an obtaining request to an external device, wherein the obtaining request is used for obtaining the original data file corresponding to the original data; and receiving, by the terminal , the original data file sent by the external device, characterized in that the obtaining request comprises a model of the terminal , a version of the first operating system, and block information of original data in which an error occurs; and the original data file is a mirror of the original data corresponding to the block information. <EOS>