/ dev / dvd를 어떻게 올바르게 만들 수 있습니까?


10

특정 프로그램 /dev/dvd은 기본적으로 DVD를 찾기 위해 찾습니다. DVD를 넣지 않은 상태에서 컴퓨터를 처음 부팅하면 /dev/dvd존재하며 올바른 위치 ( /dev/sr0)를 가리 킵니다 . 그러나 DVD를 /dev/dvd넣으면 사라집니다. /dev/sr0DVD를 찾고있는 프로그램 을 탐색 할 필요가 없으므로 고집하고 싶습니다 . /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

이것이 현대 우분투에 대한 올바른 정보입니까? ENV{GENERATED}생성되지 않고 손으로 작성했을 때 무엇을 하고 있습니까?


Dell Inspiron 660에서 동일한 문제가 발생했습니다. 이 문제에 대한 더 나은 답변이 있었기를 바랍니다.
Cerin

답변:


8

이 튜토리얼에서는 원하는 작업을 수행하는 방법을 매우 잘 설명합니다.

그것에 따르면, 심볼릭 링크를 만드는 두 가지 방법이 있습니다. 첫 번째는 모델 이름과 일련 번호를 사용하는 것입니다.

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

이렇게하면 드라이브를 IDE 버스의 다른 위치로 이동하더라도 symlink는 올바르게 유지되지만 /dev/dvd드라이브를 교체해도 symlink는 생성되지 않습니다.

두 번째는 버스에서 장치의 위치를 ​​기반으로합니다.

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

이렇게하면 다른 모델로 드라이브를 교체하더라도 IDE 버스의 동일한 위치에 배치하더라도 심볼릭 링크는 올바르게 유지됩니다. 이 ENV{ID_TYPE}키는 버스 이외의 위치에 DVD 이외의 것을 넣을 경우 심볼릭 링크가 사라지도록합니다.

당신은에 대한 값을 찾을 수 있습니다 ID_MODEL, ID_SERIAL, ID_TYPEID_PATH(에서 다음 명령을 사용하여 udevtest? - 이상 - 작동하지 않습니다 튜토리얼로 명령을 우분투) :

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

SUBSYSTEM=="block"키는 SCSI에게 일반적인 장치와 일치하는 것을 방지하기 위해 필요하다. 그것이 없으면, SCSI DVD의 경우, 심볼릭 링크는 때때로 올바른 /dev/sr0장치를 가리키고 때로는을 가리 키 기도합니다 /dev/sg0.

ENV{GENERATED}="1"키는 udev에에 방지하기 위해 필요한 75-cd-aliases-generator.rules사용자 정의 규칙을 무시에서 파일을.


모든 정보에 감사드립니다. 나는이 규칙 중 일부를 시험해 보았지만 /dev/dvd지난 몇 달 동안 symlink가 언젠가 마술처럼 고쳐지 는 것을 발견했다 . 또한 이 버그 에서 /dev/dvd요일에 번호가 매겨져 있음을 읽었습니다 . 오 잘 현재 귀하의 답변은이 문제를 해결하는 데 필요한 모든 정보를 제공하는 것 같습니다.
chazomaticus

0

나는 페도라 포럼에서 이것이 도움이 될 수 있음을 발견했다.

쉘 스크립트 파일 작성 해당 파일에 다음을 입력하십시오.

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

파일이 실행 가능한지 확인하십시오 :

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

rc.local 라우트를 사용하려면 루트로서 이것을해야합니다 :

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"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.