7장. 장치명 사용자 정의하기

/dev/ 디렉토리는 장치를 나타내는 가상 파일들을 포함합니다. 각 가상 파일은 저장 장치, USB 장치 또는 프린터와 같은 각 시스템 장치를 나타냅니다. 이러한 가상 파일들은 장치명이라고 불립니다.

IDE 장치명은 hd로 시작하며, SCSI 장치명은 sd로 시작합니다. 그 다음으로 a로 시작하는 글자가 오며, 이 글자는 드라이브 순서를 나타냅니다. 예를 들어, /dev/hda는 첫번째 IDE 하드 드라이브를 의미하며, /dev/hdb는 두번째 IDE 하드 드라이브를, /dev/hdc는 세번째 IDE 드라이브를 의미합니다.

만일 장치명 다음에 숫자가 오면, 이 숫자는 파티션 번호를 나타냅니다. 예를 들어, /dev/hda1는 첫번째 IDE 드라이브 상의 첫번째 파티션을 의미합니다.

만일 하드 드라이브가 다른 위치로 옮겨지거나, 제거되거나 초기화하는데 실패하는 경우, 장치명이 일부 변경되어, 일시적으로 올바른 장치명을 참조할 수 없게 됩니다. 예를 들어, 그림 7-1에서 보여지듯이 만일 3개의 SCSI 하드 드라이브가 존재하는 시스템의 경우, 두번째 SCSI 하드 드라이브가 제거된다면, /dev/sdc는 /dev/sdb가 되어 /dev/sdc와 /dev/sdb는 이제 다른 드라이브를 나타내기 때문에 올바른 장치명 참조를 할 수 없게 됩니다.

그림 7-1. 하드 드라이브 제거하기

각 하드 드라이브는 UUID라고 부르는 고유 번호를 가지고 있습니다. 장치명 변경으로 인한 문제를 해결하기 위해 devlabel 명령은 UUID와 관련된 사용자 정의 장치명을 사용하여 실행됩니다. 사용자 정의된 장치명은 실제 장치명으로 심볼릭 링크를 생성합니다. 만일 실제 장치명이 변경될 경우, 심볼릭 링크는 UUID에 따른 실제 드라이브로 연결되도록 업데이트됩니다. 따라서, IDE 저장 장치와 SCSI 저장 장치 모두 사용자 정의된 이름으로 참조 가능하게 됩니다.

Devlabel 명령은 또한 이동 하드 드라이브와 디지털 카메라 용 메모리 카드와 같은 USB 장치와 같은 자동으로 마운팅되는 핫플러그 장치도 함께 사용 가능합니다. 자동으로 마운트되도록 설정된 장치를 프러그인 한다면, 그 장치는 사용자 정의된 장치명으로 마운트됩니다.

7.1. Devlabel 설정하기

장치명, 파티션 이름 또는 드라이브의 UUID에 따라서 사용자 정의된 장치명을 추가 가능합니다.

저장 장치에 대한 사용자 정의된 장치명을 추가하시려면 다음 구문을 사용하시기 바랍니다. 장치에는 전체 장치를 지정하시거나 또는 장치 상에 존재한 단독 파티션을 지정하실 수 있습니다.

devlabel add -d <device> -s <symlink>

예를 들어, /dev/hdb1 파티션을 나타내는 /dev/work 심볼릭 링크를 추가하시려면, 다음 명령을 사용하시면 됩니다:

devlabel add -d /dev/hdb1 -s /dev/work

명령이 성공적으로 실행되었다면, 다음과 같은 결과가 출력될 것입니다:

Created symlink /dev/work -> /dev/hdb1
Added /dev/work to /etc/sysconfig/devlabel

UUID에 기초한 장치명을 추가하시려면, 다음 구문을 사용하시기 바랍니다:

devlabel add -u <uuid> -s <symlink>

devlabel 명령을 사용하여 장치의 UUID를 검색하시려면 (또는 UUID가 있는지 여부를 확인하시려면), 다음 명령을 사용하시기 바랍니다:

devlabel printid -d <device>

심볼릭 링크 이름은 고유해야 합니다. 만일 이미 링크가 존재하는 경우 링크를 추가하려고 시도하신다면, 설정 파일은 수정되지 않고 다음과 같은 결과가 출력될 것입니다:

The file /dev/work already exists.
Failure. Could not create a symlink.

devlabel 목록에서 심볼릭 링크를 제거하시려면, 다음 명령을 사용하시기 바랍니다:

devlabel remove -s <symlink>

해당 항목은 설정 파일에서 삭제되고 심볼릭 링크도 삭제됩니다.

devlabel 심볼릭 링크의 상태를 알아보시려면, 다음 명령을 사용하시면 됩니다:

devlabel status

다음과 유사한 결과가 출력될 것입니다:

lrwxrwxrwx    1 root            9 Apr 29 13:20 /dev/work -> /dev/hdb1
lrwxrwxrwx    1 root            9 Apr 29 13:41 /dev/tcf -> /dev/hda1

7.1.1. 핫플러그 장치

핫플러그 (hotplug)라고 불리는 프로그램은 시스템이 실행되고 있는 중에 하드웨어가 추가 또는 삭제되는 경우와 같이 시스템 상에 변화가 있다면 작업을 실행합니다. 예를 들어, USB 하드 드라이브나 USB 미디어 카드 리더가 시스템에 연결되면, hotplug는 시스템 로그 파일 (/var/log/messages)에 메시지를 기록하여 사용자에게 알린 후 장치가 작동할 수 있도록 적절한 커널 모듈을 로딩합니다.

PCI, USB, 또는 (FireWire라고도 알려진) IEEE 1394 장치가 플러그인 되면, hotplug 스크립트는 이동 저장 매체가 사용자 정의된 장치명 (예 /dev/usbcard)을 받을 수 있도록 devlabel 명령을 재시작합니다. 저장 장치를 자동으로 마운트하는 것도 가능합니다.

USB 카드 리더를 컴퓨터의 USB 포트에 삽입하신 후, 루트 사용자로 로그인하여 다음 명령을 입력하시기 바랍니다 (다음 명령에서 /dev/sda1은 미디어 카드의 장치명을 의미하고 /dev/usbcard는 사용할 사용자 정의된 장치명을 나타냅니다):

devlabel add -d /dev/sda1 -s /dev/usbcard --automount

이 명령은 /etc/sysconfig/devlabel 파일에 대한 새로운 마운트 지점을 추가하고 /dev/usbcard에서 /dev/sda1로 심볼릭 링크를 생성합니다. devlabel에서 --automount 옵션은 /etc/fstab 파일에 해당 항목이 존재하고 그 장치가 존재한다면 (동일한 UUID를 가진 장치가 있다면) devlabel이 재시작될 때 자동으로 장치를 마운트합니다.

updfstab은 IDE 버스와 SCSI 버스를 스캔하여 새로운 장치가 있는지 찾아본 후, 만일 새로운 장치에 대한 항목이 /etc/fstab 파일에 존재하지 않는다면, 이 파일에 항목을 추가합니다. 또한 USB 장치가 SCSI 장치로 나타나므로 USB 장치에 대한 항목도 추가합니다. 보다 많은 정보를 원하신다면, updfstab 메뉴얼 페이지를 참조하시기 바랍니다.

USB 장치가 삽입되면, hotplug는 updfstab 프로그램을 실행하며, 이 프로그램은 저장 장치 (예, 미디어 카드)에 대한 항목을 /etc/fstab 파일에 추가합니다. (카드 없이 카드 리더가 삽입된다면, 이 파일에 항목을 추가하지 않습니다.) 추가된 라인에는 실제 장치명 (예, /dev/sda1)과 kudzu 옵션이 포함됩니다. kudzu 옵션은 Kudzu [1]에게 만일 해당 장치가 존재하지 않는 경우 항목을 파일에서 삭제할 수 있다고 지시합니다. 이 라인이 있어야 devlabel 명령이 실행 가능하므로, 파일에서 해당 라인이 삭제되지 않도록 kudzu 옵션을 삭제하셔야 합니다. 또한 장치명을 devlabel 장치명 (예, /dev/usbcard)으로 변경하신 후 마운트 지점 (예, /mnt/usbcard)을 생성하셔야 합니다.

다음과 같이 라인을 수정하시기 바랍니다:

/dev/usbcard   /mnt/usbcard   auto    noauto,owner 0 0

--automount 옵션으로 인해 devlabel이 재시작되며, USB 장치가 컴퓨터에 플러그인 될 때, USB 카드 리더 장치에 삽입된 저장 매체는 /mnt/usbcard에 마운트됩니다. USB 카드 리더가 컴퓨터에 삽입될 시 카드가 반드시 리더에 꼽혀있어야 합니다. 그렇지 않으면, devlabel은 저장 매체를 찾지 못하여 자동으로 마운트하지 못하게 됩니다.

만일 USB 카드 리더가 카드가 없이 프러그인 되었다면, 카드가 삽입되었을 때 루트 권한을 가지고 devlabel restart 명령을 실행하여 매체 카드를 마운트하시기 바랍니다.

주석

[1]

Kudzu는 하드웨어 검색 도구로서 시스템 부팅시 실행되어 시스템에 추가되었거나 삭제된 하드웨어를 찾아냅니다.