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.