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

首发日期 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 BDTrack  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 BDTrack  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.mzph.cn/pingmian/48318.shtml

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

相关文章

人工智能与语音识别:技术进步与应用前景

引言 人工智能(AI)作为当今科技进步的核心驱动力,正在各个领域展现其变革力量。其中,语音识别技术作为人工智能的重要应用之一,已经深入到我们的日常生活和工作中。从智能助手如Siri、Google Assistant,到智…

kubernetes k8s Deployment 控制器配置管理 k8s 红蓝部署 金丝雀发布

目录 1、Deployment控制器:概念、原理解读 1.1 Deployment概述 1.2 Deployment工作原理:如何管理rs和Pod? 2、Deployment资源清单文件编写技巧 3、Deployment使用案例:创建一个web站点 4、Deployment管理pod:扩…

科研绘图系列:R语言雨云图(Raincloud plot)

介绍 雨云图(Raincloud plot)是一种数据可视化工具,它结合了多种数据展示方式,旨在提供对数据集的全面了解。雨云图通常包括以下几个部分: 密度图(Density plot):表示数据的分布情况,密度图的曲线可以展示数据在不同数值区间的密度。箱线图(Box plot):显示数据的中…

模型剪枝入门

一、定义 1.定义 2. 案例1 3. 全局剪枝案例 4. 全局剪枝案例 5. 自定义剪枝 6. 特定网络剪枝 7. 多参数模块剪枝 8. torch.nn.utils.prune 解读 二、实现 定义 接口: import torch.nn.utils.prune as prune案例1 import torch.nn as nn import torch.nn.utils.…

全部由1组成的子矩形的数量

题目描述: 给定一个二维数组matrix,其中的值不是0就是1,返回全部由1组成的子矩阵的数量。 way: 假设我们遍历矩形的每一行,以当前遍历到的行作为地基,去看这一行的直方图(直方图介绍 ->直方…

10.3.3 QGIS点类型注释(Annotation)的应用与二次开发实现

文章目录 前言注释(Annotation)图层QGis中的注释(Annotation)图层二次开发实现线段类型注释(Annotation)点类型Item 总结 前言 介绍注释(Annotation)图层在QGis中的使用以及二次开发的实现说明:文章中的示例代码均来自开源项目qgis_cpp_api_apps 注释(Annotation)…

【Unity实战100例】Unity声音可视化多种显示效果

目录 一、技术背景 二、界面搭建 三、 实现 UIAudioVisualizer 基类 四、实现 AudioSampler 类 五、实现 IAudioSample 接口 六、实现MusicAudioVisualizer 七、实现 MicrophoneAudioManager 类 八、实现 MicrophoneAudioVisualizer 类 九、源码下载 Unity声音可视化四…

代码随想录算法训练营第九天 |LeetCode151.翻转字符串里的单词 卡码网:55.右旋转字符串

代码随想录算法训练营 Day 9 代码随想录算法训练营第九天 |LeetCode151.翻转字符串里的单词 卡码网:55.右旋转字符串 目录 代码随想录算法训练营前言LeetCode151.翻转字符串里的单词卡码网:55.右旋转字符串 一、LeetCode151.翻转字符串里的单词1.题目链…

laravel为Model设置全局作用域

如果一个项目中存在这么一个sql条件在任何情况下或大多数情况都会被使用,同时很容易被开发者遗忘,那么就非常适用于今天要提到的这个功能,Eloquent\Model的全局作用域。 首先看一个示例,有个数据表,结构如下&#xff1…

一款国外开发的高质量WordPress下载站模板主题

5play下载站是由国外站长开发的一款WordPress主题,主题简约大方,为v1.8版本, 该主题模板中包含了上千个应用,登录后台以后只需要简单的三个步骤就可以轻松发布apk文章, 我们只需要在WordPress后台中导入该主题就可以…

大模型应用如何点燃?

▎****尽管在中国,关于大模型的商业模式的讨论尚显早期,但智能体,尤其是专业智能体,蕴藏着巨大的潜力。 ChatGPT 还没有颠覆世界。 身处“第三次信息革命”,很多人被浓烈的FOMO(Fear of Missing Out&…

昇思25天学习打卡营第12天 | ResNet50图像分类

ResNet50在CIFAR-10数据集上的图像分类实践 在深入学习和实践使用ResNet50进行CIFAR-10数据集上的图像分类后,我对深度学习模型的构建、训练和优化有了更深刻的理解。本次学习经历涵盖了从理论探索到实际应用的全过程,以下是我的主要收获和反思。 1. 理…

(南京观海微电子)——电感的电路原理及应用区别

电感 电感是导线内通过交流电流时,在导线的内部及其周围产生交变磁通,导线的磁通量与生产此磁通的电流之比。 当电感中通过直流电流时,其周围只呈现固定的磁力线,不随时间而变化;可是当在线圈中通过交流电流时&am…

Jump Point Search(JPS)算法与A*算法

A* A*算法本质上讲是结合了DFS和BFS,针对当前起点先做一次BFS,再针对搜索的八个点做一次DFS BFS--广度优先算法(Breadth First Search) DFS A* 算法思想 A*的核心思想就是先进行一次BFS搜索,然后从这次BFS中找到距离…

python Requests库7种主要方法及13个控制参数(实例实验)

文章目录 一、Requests库的7种主要方法二、kwargs:控制访问的13个参数 一、Requests库的7种主要方法 序号方法说明1requests.request():提交一个request请求,作为其他请求的基础2requests.get():获取HTML网页代码的方法3requests.head()&…

基于重要抽样的主动学习不平衡分类方法ALIS

这篇论文讨论了数据分布不平衡对分类器性能造成的影响,并提出了一种新的有效解决方案 - 主动学习框架ALIS。 1、数据分布不平衡会影响分类器的学习性能。现有的方法主要集中在过采样少数类或欠采样多数类,但往往只采用单一的采样技术,无法有效解决严重的类别不平衡问题。 2、论…

9种二极管及其特点总结

二极管种类和特点 名字特点恒流二极管近些年出现,电压大于某个值,电流恒定,一般用于led普通二极管低频整流和续流,便宜,反向恢复时间us级别,PN结肖特基二极管比普通二极管反向关断更快,10ns级别…

智能硬件——0-1开发流程

文章目录 流程图1. 市场分析具体分析 2. 团队组建2. 团队组建早期团队配置建议配置一:基础型团队 (4人)配置二:扩展型团队 (6人)配置三:全面型团队 (7人) 3. 产品需求分析4. ID设计(Industrial Design, 工业设计)5. 结…

阿里云公共DNS免费版自9月30日开始限速 企业或商业场景需使用付费版

本周阿里云发布公告对公共 DNS 免费版使用政策进行调整,免费版将从 2024 年 9 月 30 日开始按照请求源 IP 进行并发数限制,单个 IP 的请求数超过 20QPS、UDP/TCP 流量超过 2000bps 将触发限速策略。 阿里云称免费版的并发数限制并非采用固定的阈值&…

Unity游戏开发入门:从安装到创建你的第一个3D场景

目录 引言 一、Unity的安装 1. 访问Unity官网 2. 下载Unity Hub 3. 安装Unity Hub并安装Unity编辑器 二、创建你的第一个项目 1. 启动Unity Hub并创建新项目 2. 熟悉Unity编辑器界面 3. 添加基本对象 4. 调整对象属性 5. 添加光源 三、运行与预览 引言 Unity&…