In data storage devices, several types of errors may occur. This includes random errors as well as burst errors of different lengths. a class of error-control codes is presented, based on a multilevel coding architecture, that can correct several types of errors. The parameters of the multilevel codes can be adjusted to match the probability of each error type. The decoding algorithms of these codes allow for fast-error recovery since they are based on decoding algorithms of simpler codes. a class of multilevel codes is constructed, based on Reed-Solomon codes, whose redundancy is minimal. © 1991 IEEE.