在无头 Linux 服务器上,检测插入的光盘是否为音频磁盘

在无头 Linux 服务器上,检测插入的光盘是否为音频磁盘

在无头 Linux 服务器上(如果感兴趣的话,可以使用最新的 Fedora),如何检测插入的光盘是音频磁盘,而不是数据磁盘或视频 DVD?没有安装桌面环境,我宁愿不安装。

我看到的是挂载失败,但我猜测数据磁盘损坏也可能是这种情况:

[root@server ~]# mount /dev/sr0 /mnt/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
mount: /dev/sr0: can't read superblock
[root@server ~]# echo $?
32

有什么建议么?

答案1

实现此目的的一种方法是使用偏执狂命令行工具。在 Ubuntu Linux 中,你可以通过

sudo apt install cdparanoia

然后运行

cdparanoia -Q

其中“-Q”代表“查询”。如果驱动器中没有音频光盘,您将得到

cdparanoia III release 10.2 (September 11, 2008)
004: Unable to read table of contents header
Unable to open disc.  Is there an audio CD in the drive?

否则它看起来像...

Table of contents (audio tracks only): track        length             begin        copy pre ch
===========================================================
  1.     8315 [01:50.65]        0 [00:00.00]    no   no  2
  2.    12830 [02:51.05]     8315 [01:50.65]    no   no  2
  3.    15642 [03:28.42]    21145 [04:41.70]    no   no  2
  4.    16238 [03:36.38]    36787 [08:10.37]    no   no  2

答案2

如何检测插入的光盘是否是音频光盘?

#!/bin/bash
checkforaudio=`gvfs-info -f cdda://sr0/ | grep "filesystem::type: cdda"`
if [ "$checkforaudio" == "  filesystem::type: cdda" ]; then
    vlc cdda:///dev/sr0
    else
        checkfordvd=`find /media/*/ -name "VIDEO_TS" | grep "VIDEO_TS"`
        if [ ${checkfordvd:(-8)} == "VIDEO_TS" ]; then
            vlc dvd:///dev/sr0
            else
            pcmanfm
        fi
fi
exit 0

来源http://ubuntuforums.org/showthread.php?t=1911452

相关内容