如何正確建立/dev/dvd?

如何正確建立/dev/dvd?

某些程式預設/dev/dvd會尋找 DVD。當我在沒有插入 DVD 的情況下首次啟動電腦時,/dev/dvd存在並指向正確的位置 ( /dev/sr0)。然而,當我插入 DVD 時,/dev/dvd它就消失了。我希望它能保留下來,這樣我就不必導航到/dev/sr0正在尋找 DVD 的程式。如何確保符號/dev/dvd連結存在並指向正確的位置?

看起來我可以添加一些東西/etc/udev/rules.d/70-persistent-cd.rules這個網站給出了幾個範例,但70-persistent-cd.rules文件顯示“將 ENV{GENERATED}=1 標誌新增到您自己的規則中”,這不是範例的一部分。該頁man 7 udev面對我來說難以理解,而且我不相信連結頁面提供了 100% 的我需要的資訊。

那麼,我可以在現代的 Ubuntu 12.04(或更高版本)系統上做什麼來使其/dev/dvd始終存在並指向正確的設備?

編輯:是否像新增ENV{GENERATED}=1連結頁面中的規則一樣簡單,如下所示:

SUBSYSTEM=="block", KERNEL=="sr0", SYMLINK+="dvd", GROUP="cdrom", ENV{GENERATED}=1

這對現代 Ubuntu 來說是正確的訊息嗎?ENV{GENERATED}當它不是生成的而是手寫的時,那裡在做什麼?

答案1

本教學很好地解釋瞭如何做你想做的事:

根據它,有兩種建立符號連結的方法。第一個是使用型號名稱和序號:

SUBSYSTEM=="block", ENV{ID_MODEL}=="...", ENV{ID_SERIAL}=="...", ENV{GENERATED}="1", SYMLINK+="dvd"

這樣,即使您將驅動器移至 IDE 總線上的不同位置,符號連結也將保持正確,但/dev/dvd如果您更換驅動器,則不會建立符號連結。

第二個基於設備在總線上的位置:

SUBSYSTEM=="block", ENV{ID_TYPE}=="...", ENV{ID_PATH}=="pci-...", ENV{GENERATED}="1", SYMLINK+="dvd"

這樣,即使您更換不同型號的驅動器,但將它們放置在 IDE 總線上的相同位置,符號連結也將保持正確。如果您將 DVD 以外的其他東西放在總線上的該位置,則該ENV{ID_TYPE}金鑰可確保符號連結消失。

您可以使用以下命令找到ID_MODELID_SERIALID_TYPE和的值(教程中的命令不再起作用? - 在 Ubuntu 中):ID_PATHudevtest

udevadm info --query=all --name=sr0

需要該SUBSYSTEM=="block"金鑰以避免匹配 SCSI 通用設備。如果沒有它,在使用 SCSI DVD 的情況下,符號連結有時會指向正確的/dev/sr0設備,有時會指向/dev/sg0,這是錯誤的。

ENV{GENERATED}="1"需要該金鑰來防止 udev75-cd-aliases-generator.rules檔案覆蓋您的自訂規則。

答案2

我在 Fedora 論壇上發現這個可能有幫助:

建立一個 shell 腳本檔案 在該檔案中,輸入:

#!/bin/bash
ln -s /dev/sr0 /dev/dvd

確保該文件是可執行的:

sudo chmod +x /etc/rc.d/rc.local

如果您要使用 rc.local 路由,您還需要以 root 身分執行此操作:

systemctl enable rc-local.service

因為預設情況下它沒有啟用

來源:http://forums.fedoraforum.org/showthread.php?t=295048

----------如今首選的方式是 UDev 規則----------------

基於建立 /dev/cdrom 符號連結的 /lib/udev/rules.d/60-cdrom_id.rules,嘗試新增包含下列內容的檔案 /etc/udev/rules.d/60-dvd.rules:

KERNEL=="sr0", SYMLINK+="dvd", OPTIONS+="link_priority=-100"

相關內容