在Linux系统中,光驱作为一种块设备,并不会像图形界面环境那样自动把光盘内容展示成可浏览的文件夹。要想读取光盘里的数据,必须清楚两件事:一是光驱在系统中对应的设备文件路径是什么,二是应该把它挂载到哪个目录之下。这两个概念如果混淆,就容易出现挂载失败或者找不到文件的状况。

一、Linux下光驱的设备路径
早期使用IDE接口的光驱,在Linux内核中通常被识别为/dev/hdc(Secondary IDE控制器上的主设备),也有部分环境识别为/dev/hdb。随着SATA和USB接口的普及,现代Linux发行版基本统一使用SCSI仿真层来管理光驱,设备名多为/dev/sr0,如果有多个光驱则依次为/dev/sr1、/dev/sr2。此外,为了兼容旧习惯,系统往往还会创建/dev/cdrom、/dev/dvd这样的符号链接,它们实际指向/dev/sr0之类的真实设备。
我们可以用简单命令确认当前光驱对应的设备文件。例如使用ls -l /dev/cdrom查看链接指向,或者通过dmesg | grep -i cdrom在内核日志中检索光驱初始化信息。下面是一个查看设备节点的示例:
# 查看光驱符号链接指向 ls -l /dev/cdrom # 输出类似:lrwxrwxrwx 1 root root 3 6月 1 10:00 /dev/cdrom -> sr0 # 列出所有光驱相关设备 ls -l /dev/sr* /dev/scd* 2>/dev/null
从上面的输出能看出,/dev/cdrom只是个方便记忆的软链接,真正干活的是/dev/sr0。在编写脚本挂载光驱时,建议优先使用/dev/cdrom,这样即使底层设备名有变化,脚本也不用改。
二、光驱应该挂载到什么路径
Linux没有强制规定光驱必须挂在哪里,但社区形成了一些约定俗成的目录。最常用的是/mnt/cdrom和/media/cdrom。其中/mnt传统上用于临时挂载文件系统,而/media在桌面发行版中常由自动挂载服务管理。如果你手动挂载,选一个空目录即可,目录不存在时要先通过mkdir创建。
需要注意,挂载点本身必须是一个已经存在的目录,且最好为空。如果把光驱挂到一个已经有文件的目录上,原目录里的文件会被隐藏,直到卸载光驱才重新出现。下面演示创建挂载点并手动挂载的过程:
# 创建挂载目录 sudo mkdir -p /mnt/cdrom # 将光驱设备挂载到该目录 sudo mount /dev/cdrom /mnt/cdrom # 查看挂载结果 df -h | grep cdrom ls /mnt/cdrom
执行挂载后,光盘中的内容就会出现于/mnt/cdrom路径下。若挂载失败,常见原因是光驱内无盘、设备名写错,或者当前用户没有权限。使用sudo提权通常能解决权限类问题。
三、自动挂载与fstab配置
如果希望系统启动后或插入光盘时能自动挂载,可以把光驱写进/etc/fstab文件。这样下次执行mount -a或系统启动时就会按配置处理。不过桌面环境一般自带udisks2等服务,插盘即挂到/media/用户名/卷标下,不必手动改fstab。
对于服务器环境,固定fstab反而更可控。示例如下,其中iso9660是光盘常用文件系统,ro表示只读,user允许普通用户挂卸:
# 在 /etc/fstab 中添加一行 /dev/cdrom /mnt/cdrom iso9660 ro,user,noauto 0 0
配置后普通用户可直接运行mount /mnt/cdrom而无需写设备名。但也要注意,若fstab里写了auto而光驱为空,启动可能会报错或等待超时,因此服务器上多用noauto配合手动挂载。
四、卸载光驱的正确方式
读取完光盘后,应当先卸载再弹出,否则可能损坏数据或导致设备忙。卸载命令为umount,注意拼写没有n。若提示设备忙,说明有终端正处于挂载目录或文件被打开,需退出相关程序再试。
# 卸载光驱 sudo umount /mnt/cdrom # 弹出托盘(可选) eject /dev/cdrom
卸载后/mnt/cdrom恢复为空目录,原隐藏内容回来。掌握设备路径与挂载点路径的区别,是顺利在Linux下使用光驱的基础。