На головному Linux-сервері визначте, чи вставлений оптичний диск - це аудіо-диск


2

На безголовому сервері 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

Будь-які пропозиції?

Відповіді:


2

Для цього можна скористатися cdparanoia інструмент командного рядка. У 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

Якщо ви хочете використовувати його в сценарії, перенаправте stdout і stderr на /dev/nullі використовуйте значення, що повертається - 0 (успіх), якщо є диск, або в іншому випадку - ненульовий (відмова).
Toby Speight

3

Як визначити, чи вставлений оптичний диск є аудіодиском?

#!/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


Я фактично знав джерело, але знаходився під помилковим враженням, що gvfs-info вимагає gnome, як його частина проекту gnome. Виявляється, gvfs-клієнт (пакунок, що містить gvfs-info у fedora) встановлюється без решти gnome, тому ваша, безумовно, відмінна відповідь. Тим не менш, Синд я буду потребувати cdparanoia в будь-якому випадку в моєму проекті (плюс це набагато менше), я прийму іншу відповідь.
Isaac
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.