光盘防水嘛 ? DVD+R 刻录光盘泡水实验

news2024/9/21 12:33:55

首发日期 2024-07-20, 以下为原文内容:


同志们好, 欢迎来到 胖喵穷人实验室 ! 这里专注于 低成本, 低难度, 低风险 的 “三低” 小实验.

胖喵穷人实验室 (PM-PLab-E)

正式名称: 紫腹巨蚊 (Toxorhynchites gravelyi) 系列
  穷人 (Poor people) 实验室

风险警告: 低风险并不是零风险, 无风险. 本文中的做法可能造成光盘以及光盘驱动器 (刻录机) 的损坏 !

免责声明: 本文并不保证内容的正确, 有效, 安全. 如果模仿文中的做法, 后果自负 !!

目录

  • 1 实验方案设计
  • 2 实验过程
    • 2.1 刻录数据
    • 2.2 验证刻录的光盘
    • 2.3 泡水
    • 2.4 捞出光盘擦干水
    • 2.5 读取光盘
  • 3 结果及局限性分析
    • 3.1 光盘数量较少, 实验精度较低
    • 3.2 仅适用于 DVD+R 刻录光盘
    • 3.3 仅适用于常温清水
    • 3.4 仅适用于短期浸泡
    • 3.5 不知道泡水对光盘的长期影响
  • 4 总结与展望

1 实验方案设计

实验材料清单:

序号名称数量备注
1DVD+R 空白 (普通) 刻录光盘4容量 4.7GB (单层), 品牌为 清华紫光 UNIS
2DVD 光驱1品牌为 先锋 (2013 年生产)
3PC (台式机)1用于操作光盘刻录及读取
4记号笔1用于在光盘印刷面写字
5光盘袋3用于装光盘
6塑料盆1用于装清水
7卫生纸(少许)用于泡水后, 吸干光盘表面的水
8清水(少量)普通自来水, 用于泡光盘

一共 4 张 DVD+R 空白光盘, 分成 2 组:

  • 对照组 (2 张): 普通存放.

  • 实验组 (2 张): 进行泡水测试.

4 张光盘全部刻录相同的数据, 然后实验组泡水一段时间. 然后把光盘捞出, 擦干表面水分. 等待 24 小时之后 (充分干燥), 使用光驱读取光盘.


泡水除了可能损坏光盘本身, 还有可能损坏读取泡过水的光盘的光驱. 蓝光刻录机还是有点小贵的 (请看窝的网名), 所以使用 DVD 光盘和 DVD 光驱进行测试. 目前二手的 DVD 刻录机, 淘宝大约 20 元就能买到, DVD 光盘也只要几元, 比较便宜.

千年光盘 (M-Disc) 已经有了 “千层面实验” (光盘和面条一起蒸熟), 所以这里使用的是 普通光盘 (不是 档案级光盘, 也不是千年光盘), 也就是基本上最便宜的那一种. 考虑到普通光盘可能比较脆弱, 这里没有使用水煮, 而是使用常温清水浸泡.

这里使用的 DVD+R 光盘是多年前买的, 具体什么时间买的, 已经忘记了. 大约是 6 年前, 或者更早, 总之是已经吃灰多年的空白刻录光盘了.

刻录光盘从结构上来说, 只是一张塑料片, 里面封装了一层化学染料. 理论上来说, 应该是不怕水的. 下面就来实际验证一下.

2 实验过程

环境参数:

序号名称数值备注
1室内温度30 °C
2相对湿度70%
3大气压强99 kPa

注: 这里没有对环境条件的精确测量或控制设备, 所以此处的数据仅供参考, 实际波动较大.

2.1 刻录数据

使用的软件版本如下 (操作系统 ArchLinux):

> uname -a
Linux a2 6.9.9-zen1-1-zen #1 ZEN SMP PREEMPT_DYNAMIC Fri, 12 Jul 2024 00:06:19 +0000 x86_64 GNU/Linux
> cdrskin --version
cdrskin 1.5.6 : limited cdrecord compatibility wrapper for libburn
Cdrecord 2.01a27 Emulation. Copyright (C) 2006-2023, see libburnia-project.org
System adapter    :  internal GNU/Linux SG_IO adapter sg-linux
libburn interface :  1.5.6
libburn in use    :  1.5.6
cdrskin version   :  1.5.6
Version timestamp :  2023.06.07.143001
Build timestamp   :  -none-given-

为了尽量接近实际使用情况, 此处刻录的数据是 ArchLinux 安装光盘镜像. 如果系统崩溃, 可以从安装光盘启动, 进行一些修复操作.

下载地址: https://archlinux.org/download/

> cdrskin dev=/dev/sr1 -v -minfo
cdrskin 1.5.6 : limited cdrecord compatibility wrapper for libburn
cdrskin: verbosity level : 1
cdrskin: NOTE : greying out all drives besides given dev='/dev/sr1'
cdrskin: scanning for devices ...
cdrskin: ... scanning for devices done
cdrskin: pseudo-atip on drive 0
cdrskin: status 1 burn_disc_blank "The drive holds a blank disc"
scsidev: '/dev/sr1'
Device type    : Removable CD-ROM
Vendor_info    : 'PIONEER'
Identifikation : 'BD-RW BDR-207D'
Revision       : '1.21'
Drive id       : 'LGDL050745WL'
Driver flags   : BURNFREE
Supported modes: TAO SAO
cdrskin: burn_drive_get_write_speed = 22160  (16.0x)
Current: DVD+R
Profile: 0x0043 (BD-RE)
Profile: 0x0042 (BD-R random recording)
Profile: 0x0041 (BD-R sequential recording)
Profile: 0x0040 (BD-ROM)
Profile: 0x002B (DVD+R/DL)
Profile: 0x001A (DVD+RW)
Profile: 0x001B (DVD+R) (current)
Profile: 0x0016 (DVD-R/DL layer jump recording)
Profile: 0x0015 (DVD-R/DL sequential recording)
Profile: 0x0013 (DVD-RW restricted overwrite)
Profile: 0x0014 (DVD-RW sequential recording)
Profile: 0x0011 (DVD-R sequential recording)
Profile: 0x0002 (Removable disk)
Profile: 0x0010 (DVD-ROM)
Profile: 0x000A (CD-RW)
Profile: 0x0009 (CD-R)
Profile: 0x0008 (CD-ROM)
book type:     DVD+R (emulated booktype)
Product Id:    AML/003/48
Producer:      UML
Manufacturer:    'AML'
Media type:      '003'

Mounted media class:      DVD
Mounted media type:       DVD+R
Disk Is not erasable
disk status:              empty
session status:           empty
first track:              1
number of sessions:       1
first track in last sess: 1
last track in last sess:  1
Disk Is not unrestricted
Disk type: DVD, HD-DVD or BD

Track  Sess Type   Start Addr End Addr   Size
==============================================
    1     1 Blank  0          2295103    2295104   

Next writable address:              0         
Remaining writable size:            2295104   

空白 DVD+R 光盘看起来是这样的. 然后进行刻录:

> cdrskin dev=/dev/sr1 -v archlinux-2024.07.01-x86_64.iso 
cdrskin 1.5.6 : limited cdrecord compatibility wrapper for libburn
cdrskin: verbosity level : 1
cdrskin: NOTE : greying out all drives besides given dev='/dev/sr1'
cdrskin: scanning for devices ...
cdrskin: ... scanning for devices done
cdrskin: beginning to burn disc
cdrskin: status 1 burn_disc_blank "The drive holds a blank disc"
Current: DVD+R
Track 01: data  1119 MB        
Total size:     1119 MB (127:21.25) = 572944 sectors
Lout start:     1119 MB (127:23/25) = 573094 sectors
Starting to write CD/DVD at speed MAX in real SAO mode for single session.
Last chance to quit, starting real write in   0 seconds. Operation starts.
Waiting for reader process to fill input buffer ... input buffer ready.
Starting new track at sector: 0
Track 01: 1119 of 1119 MB written (fifo 100%) [buf  85%]   9.1x.              
Fixating...

cdrskin: working post-track (burning since 159 seconds)        
Track 01: Total bytes read/written: 1173389312/1173389312 (572944 sectors).
Writing  time:  159.613s
Cdrskin: fifo had 572944 puts and 572944 gets.
Cdrskin: fifo was 0 times empty and 25021 times full, min fill was 99%.
Min drive buffer fill was 82%
cdrskin: burning done

刻录之后的光盘看起来是这样的:

> cdrskin dev=/dev/sr0 -v -minfo
cdrskin 1.5.6 : limited cdrecord compatibility wrapper for libburn
cdrskin: verbosity level : 1
cdrskin: NOTE : greying out all drives besides given dev='/dev/sr0'
cdrskin: scanning for devices ...
cdrskin: ... scanning for devices done
cdrskin: pseudo-atip on drive 0
cdrskin: status 4 burn_disc_full "There is a disc with data on it in the drive"
scsidev: '/dev/sr0'
Device type    : Removable CD-ROM
Vendor_info    : 'PIONEER'
Identifikation : 'DVD-RW DVR-221L'
Revision       : '1.00'
Drive id       : 'MDQC181365CN        '
Driver flags   : BURNFREE
Supported modes: TAO SAO
cdrskin: burn_drive_get_write_speed = 27700  (20.0x)
Current: DVD+R
Profile: 0x0015 (DVD-R/DL sequential recording)
Profile: 0x0016 (DVD-R/DL layer jump recording)
Profile: 0x002B (DVD+R/DL)
Profile: 0x001B (DVD+R) (current)
Profile: 0x001A (DVD+RW)
Profile: 0x0014 (DVD-RW sequential recording)
Profile: 0x0013 (DVD-RW restricted overwrite)
Profile: 0x0012 (DVD-RAM)
Profile: 0x0011 (DVD-R sequential recording)
Profile: 0x0010 (DVD-ROM)
Profile: 0x000A (CD-RW)
Profile: 0x0009 (CD-R)
Profile: 0x0008 (CD-ROM)
Profile: 0x0002 (Removable disk)
book type:     DVD+R (emulated booktype)
Product Id:    AML/003/48
Producer:      UML
Manufacturer:    'AML'
Media type:      '003'

Mounted media class:      DVD
Mounted media type:       DVD+R
Disk Is not erasable
disk status:              complete
session status:           complete
first track:              1
number of sessions:       1
first track in last sess: 1
last track in last sess:  1
Disk Is unrestricted
Disk type: DVD, HD-DVD or BD

Track  Sess Type   Start Addr End Addr   Size
==============================================
    1     1 Data   0          572943     572944    

Last session start address:         0         
Last session leadout start address: 572944    

重复上述操作, 刻录全部 4 张光盘.

然后用记号笔在光盘的印刷面做好标记, 装入光盘袋:

在这里插入图片描述

2.2 验证刻录的光盘

计算光盘数据的 sha256:

> sha256sum /dev/sr0
398dceea2d04767fbb8b61a9e824f2c8f5eacf62b2cb5006fd63321d978d48bc  /dev/sr0

对 4 张光盘全部进行检查, 确认其中的数据完全一样.

然后使用塑料袋密封保存对照组光盘:

在这里插入图片描述

2.3 泡水

使用塑料盆装一些自来水:

在这里插入图片描述

刚刚刻录后的光盘比较热, 刚接的自来水比较凉. 为了避免温差的可能影响, 静置 1 小时, 让光盘和水都达到室温.

在这里插入图片描述

然后用力把光盘按入水中, 确保光盘和水充分接触.

这里有一个有趣的小发现: 光盘会漂在水面上 ! 这是因为塑料的密度低于水.

此时, 光盘又要振臂高呼: 还有谁 ?! 除了光盘, 还有什么存储器落水后可以漂在水面上 ?

2.4 捞出光盘擦干水

浸泡 36 分钟, 然后从水中捞出光盘.

将光盘从光盘袋中取出, 甩干大部分水分, 然后用卫生纸小心吸干剩余的少量小水滴. 注意尽量不要擦伤/污染光盘的读取面, 也不要残留纸张纤维在光盘上.

把泡水的光盘袋扔掉, 换一个新的干燥的光盘袋, 装入泡水后的光盘.

静置 24 小时, 让光盘充分干燥.

2.5 读取光盘

第二天, 使用 DVD 光驱尝试读取实验组的 2 张光盘:

> dd if=/dev/sr0 of=/dev/null status=progress
1163575808 字节 (1.2 GB, 1.1 GiB) 已复制,102 s,11.4 MB/s
输入了 2291776+0 块记录
输出了 2291776+0 块记录
1173389312 字节 (1.2 GB, 1.1 GiB) 已复制,102.758 s,11.4 MB/s
> sha256sum /dev/sr0
398dceea2d04767fbb8b61a9e824f2c8f5eacf62b2cb5006fd63321d978d48bc  /dev/sr0

这是 1 号泡水光盘, 读取速度正常, 数据完好.

> dd if=/dev/sr0 of=/dev/null status=progress
1159713280 字节 (1.2 GB, 1.1 GiB) 已复制,99 s,11.7 MB/s 
输入了 2291776+0 块记录
输出了 2291776+0 块记录
1173389312 字节 (1.2 GB, 1.1 GiB) 已复制,99.9448 s,11.7 MB/s
> sha256sum /dev/sr0
398dceea2d04767fbb8b61a9e824f2c8f5eacf62b2cb5006fd63321d978d48bc  /dev/sr0

这是 2 号泡水光盘, 读取速度正常, 数据完好.


因为实验组的泡水光盘, 看起来完好无损, 所以就没必要读取对照组的光盘了.

观察泡水光盘表面 (读取面), 有少量划痕, 有少量小水滴干了之后留下的痕迹. 但是仍然不影响正常读取.

3 结果及局限性分析

实验结果: 普通 DVD+R 刻录光盘, 在常温的清水中浸泡 36 分钟之后, 没有损坏, 其中的数据可以正常读取.

本实验的局限性如下:

3.1 光盘数量较少, 实验精度较低

如果按照更好的实验设计, 应该使用较多数量的光盘 (比如每组 20 张), 从而能够统计计算损坏的比例, 获得比如 “95% 完好” 之类的结果.

然而为了低成本 (请看窝的网名), 本次实验组光盘只有 2 张. 这可能会因为偶然性因素, 导致结果不正确. 所以本实验结果的精度较低, 仅供参考.

3.2 仅适用于 DVD+R 刻录光盘

CD, DVD, BD (蓝光) 光盘的结构不同. 虽然直径都是 12cm, 厚度都是 1.2mm, 但是 DVD 光盘的数据记录层夹在中间, 也就是距离读取面约 0.6mm 的深度. 而蓝光光盘的数据记录层在读取面很浅的位置 (约 0.1mm), 因为蓝光光驱的物镜的数值孔径 (NA) 较大, 工作距离很短.

由于 DVD 光盘容量太小, 数据备份一般使用 BD-R 光盘. 然而由于光盘结构不同, 本实验的结果并不能直接用于蓝光光盘.

3.3 仅适用于常温清水

本实验使用室温的普通自来水浸泡光盘. 所以本实验的结果并不适用于热水, 冰水等温度.

也不适用于脏水 (比如洪水), 酒精等别的液体. 除了清水之外的液体, 仍然可能损坏光盘.

3.4 仅适用于短期浸泡

本实验中, 光盘只浸泡了 36 分钟, 时间比较短. 如果光盘长期浸泡在水中, 仍然有可能损坏.

3.5 不知道泡水对光盘的长期影响

本实验中, 光盘在泡水 24 小时 (1 天) 后进行读取. 这只能说明, 光盘泡水之后, 在短期内不会损坏.

然而泡水还可能对光盘有长期影响. 比如, 正常情况下光盘的存储寿命可能为 3 年, 但是泡水后寿命缩短为半年. 本实验并没有测量这方面的情况.

4 总结与展望

本实验通过把刻录后的 DVD+R 光盘浸入常温清水, 捞出擦干后读取光盘数据, 初步验证了 普通光盘 (非档案级) 具有一定的防水能力, 在泡水之后不易损坏. 需要注意本实验的各种局限性: 实验组光盘数量少, 结果精度低. 仅适用于 DVD+R 光盘, 常温清水, 短期浸泡. 并且不知道泡水对光盘的长期影响.

本实验的成本较低, 总成本约 30 元 (不含 PC).

关于泡水对光盘寿命的长期影响, 需要在以后定期检查实验组的光盘, 比如每个月 (或者半年) 读取一次光盘中的数据, 看看是否损坏. 所以实验组和对照组的光盘仍然需要好好保存, 这个实验还在继续, 在几个月或者几年之后, 还能得出新的结论.


本文使用 CC-BY-SA 4.0 许可发布.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1945275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

47.简易电压表的设计与验证(2)

(1)Verilog 代码: module adc_collect(input clk ,input reset_n ,input [7:0] adc_data ,output clk_adc );wire clk_adc_a ;…

PostgreSQL异常:An I/O error occurred while sending to the backend

在使用PostgreSQL数据库批量写入数据的时候,遇到了一个问题,异常内容如下: Cause: org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.报错内容 报错提示1 Caused by: org.postgresql.util.PSQLExc…

QTimer::singleShot导致定时器资源耗尽解决方法

参考文章:Qt QTimer::singleShot问题及用法 1. 问题描述 QTimer::singleShot定时器事件超时,如果此时类内对象已经被回收,定时器事件调用已经释放的类内资源时会引起崩溃。 这通常是因为定时器的回调函数(槽函数)在执…

网工能保住饭碗的小技能-划分VLAN

网络工程师,咱也是有一定的专业的知识和技能,今天,我们就来聊聊网络工程师的一项核心技能——VLAN划分,以及它如何成为网络工程师职业生涯中的“铁饭碗”。 VLAN,全称Virtual Local Area Network(虚拟局域…

MVCC数据库并发控制技术

一、引言 MVCC(Multi-Version Concurrency Control)是一种广泛使用的数据库并发控制技术,它允许数据库读操作和写操作并发执行,而无需加锁整个表或行,从而大大提高了数据库的并发性能和吞吐量。MVCC主要被应用于支持事…

Java学习 - Spring Boot整合 Thymeleaf 实例

什么是 Thymeleaf Thymeleaf 是新一代的 Java 模板引擎,类似于 Velocity、FreeMarker 等传统引擎,其语言和 HTML 很接近,而且扩展性更高; Thymeleaf 的主要目的是将优雅的模板引入开发工作流程中,并将 HTML 在浏览器中…

IEEE官方列表会议 | 第三届能源与环境工程国际会议(CFEEE 2024)

会议简介 Brief Introduction 2024年第三届能源与环境工程国际会议(CFEEE 2024) 会议时间:2024年12月2日-4日 召开地点:澳大利亚凯恩斯 大会官网:CFEEE 2024-2024 International Conference on Frontiers of Energy and Environment Engineer…

信创改造叠加等保/密评合规,服务器定期改密难落实?

信创国产化改造是我国党政、金融、电信、电力等行业信息安全建设的主旋律。在信创改造背景下还叠加了等保、密评等合规性要求,因此党政、金融等行业单位在建设信创应用、终端、服务器时必须满足等保、密评要求。 在数据中心运维场景,受行业监管、密评、…

SQL 注入漏洞详解 - Union 注入

1)漏洞简介 SQL 注入简介 SQL 注入 即是指 Web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在 Web 应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,…

javaScrip的学习(一)

目录 引言 一、java和JavaScript的联系 二、js中的弹出框 1.alert弹出框 2.confirm带确认取消的按钮弹框 3.prompt带有提示信息且带有输入框的弹框 4.输出到网页中 ​三、js引入方式 1. 放在script标签中 2.放在外部js文件中 四、执行顺序 五、书写规范 1. 语句结…

专业技能(挖坑填坑)——Java核心基础知识,对集合、线程

熟悉Java核心基础知识,对集合、线程等都有了解,能运用模块化、面向对象的方式编程。 1.Java八种基本数据类型 Java的数据类型分为两大类:①基本数据类型 ②引用数据类型 2.面向对象三大特性 封装、继承、多态。 简要介绍一下/谈一下你的…

为什么 FPGA 的效率低于 ASIC?

FPGA是“可重构逻辑”器件。先制造的芯片,再次设计时“重新配置”。 ASIC 不需要“重新配置”。你先设计,把它交给代工厂,然后制造芯片。 现在让我们看看这些芯片的结构是什么样的,以及它们的不同之处。 ● 逻辑单元:F…

(leetcode学习)21. 合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2: 输入:l1 [], l2 [] 输出:[]示例…

Ethernet/IP转ModbusTCP协议转化网关(经典通讯案例)

怎么样把EtherNet/IP和ModbusTCP网络通讯连接起来呢?最近有很多朋友咨询这个问题,在这里统一为大家详细说明一下。其实有一个设备可以很轻松地解决这个问题,名为YC-EIP-TCP,下面是详细信息。 一,设备主要功能 1YC-EIP-TCP工业级…

数据结构(5.3_1)——二叉树的先中后序遍历

先序遍历——根左右——前缀表达式 中序遍历——左根右——中缀表达式 后序遍历——左右根——后缀表达式 二叉树的遍历(手算) 先序遍历代码 struct ElemType {int value; }; //二叉树的结点(链式存储) typedef struct BiTNode {ElemType data;//数据域struct BiTNode *lchil…

数据采集产品 搭建智能水房实现远程控制的案例分享

一、系统简介 随着科技的逐步发达,在各个领域都迫切的希望有一种控制系统能代替传统的操作方式,智能水房控制系统则是一种符合人们要求的系统,他可代替传统的人工机械操控,真正实现控制智能化。通过水房的各种数据采集可以实现24小…

学习记录——day15 数据结构 链表

链表的引入 顺序表的优缺点 1、优点:能够直接通过下标进行定位元素,访问效率高,对元素进行查找和修改比较快 2、不足:插入和删除元素需要移动大量的元素,效率较低 3、缺点:存储数据元素有上限,当达到MAX后,就不能再…

VScode tab不能正常使用

现象不能够在文本编辑器中按下tab键,如果按下了,就焦点会跑到终端或者是其他地方,猜测是因为装了某些插件导致的。 解决方案比较简单: 删除掉其他的按键 比如这样的,保存就可以了

mysql1055报错解决方法

目录 一、mysql版本 二、 问题描述 三、解决方法 1.方法一(临时) 2.方法二(永久) 一、mysql版本 mysql版本:5.7.23 二、 问题描述 在查询时使用group by语句,出现错误代码:1055&#xf…

Facebook的创新之路:科技驱动的社交革命

Facebook自2004年创立以来,已经从一个大学校园内的社交网站发展成为全球最大的社交媒体平台。其成功的背后,不仅仅是广泛的用户基础和高效的运营模式,更在于其不断推进的技术创新。本文将探讨Facebook在技术创新方面的诸多努力,如…