सीडी माध्यम पर गड्ढों (छेद), या नहीं-छेद (भूमि) बनाकर एक नियमित सीडी पर डेटा संग्रहीत किया जाता है। गड्ढे प्रकाश के प्रतिबिंब को परेशान करते हैं। 0एक 1या इसके विपरीत से संक्रमण एक गड्ढे के शुरू या अंत से निर्धारित होता है (इसे एनआरजेडआई एन्कोडिंग कहा जाता है)। आगे भी जटिलता है क्योंकि ये बिट्स "चैनल कोड" हैं, न कि कंटेंट बिट्स; पूर्व को डिकोड करके पुनः प्राप्त किया जाता है। और फिर कुछ "सामग्री" बिट वास्तव में त्रुटि सुधार कोड बिट्स हैं। लेकिन अंततः, धातु के परावर्तक परत में छेद या नहीं-छेद के माध्यम से बिट्स को एन्कोड किया जाता है, आमतौर पर एल्यूमीनियम।
सीडी-आर कुछ हद तक समान है। इसकी एक परावर्तक सतह होती है, लेकिन यह सतह डाई से ढकी होती है। डाई परत को गर्म करने और इसे अपारदर्शी में बदलने के लिए आप एक उच्च तीव्रता वाले LASER का उपयोग कर सकते हैं। बाद में सीडी-आर को एक सामान्य सीडी के रूप में पढ़ा जा सकता है। प्रकाश या तो परिलक्षित होता है या नहीं।
सीडी-आरडब्ल्यू उसी तरह से काम करते हैं, लेकिन एक पेंट का उपयोग करें जो कि अपारदर्शी हो सकता है या लेजर की गर्मी पर निर्भर नहीं करता है।
सीडी-आरडब्ल्यू में डाई के विपरीत, सीडी-आर में डाई को अपनी पिछली स्थिति में वापस नहीं लाया जा सकता है। यह वही है जो पहले से लिखे सीडी-आर के पुनर्लेखन को रोकता है।
नोट: एक ही छवि या केवल सही बिट के साथ एक छवि के साथ फिर से लिखना तकनीकी रूप से संभव प्रतीत होगा, लेकिन सीमाएं हैं जो कि किया जा सकता है। सबसे अच्छा आप एक "गड्ढे" को एक लंबी "भूमि" के बीच में जला सकते हैं। चूंकि भूमि की लंबाई अधिकतम दस बिट-बार है, और दोनों गड्ढों और भूमि की न्यूनतम लंबाई तीन है, यह केवल संभव होगा जहां एक मौजूदा भूमि नौ या दस बिट लंबी थी, और एकमात्र संभावना एक गड्ढे तीन या होगी चार बिट लंबा। ऐसा करने से दो बिट फ़्लिप हो जाते हैं, और बदले में एक ही ब्लॉक में अन्य स्थानों पर ईसीसी बिट्स को बदलने की आवश्यकता होगी। संभावना है कि इस तरह के हर बदलाव को एक जमीन के बीच में गड्ढे जोड़कर किया जा सकता है, बहुत छोटा है, भले ही सॉफ्टवेयर या ड्राइव फर्मवेयर था जो प्रयास करने की अनुमति देगा।