Linux, 장치파일 직접 생성하기(mknod)
리눅스에서 시스템에 장착된 여러가지의 장치들을 사용하기 위해서는 해당 장치를 콘트롤할수 있는 장치 파일이 있어야 한다.
하드디스크의 경우 /dev/sda, /dev/sda1등과 같은 장치명을 사용한다.
즉, 리눅스에서는 시스템에 설치된 장치들을 이 장치파일을 이용하여 핸들링한다, 거의 모든 장치들은 시스템 설치당시에 모두 생성되어 마운트까지 되어있기 때문에 왠만해서는 별도의 장치파일을 만들 필요가 없다.
하지만 드문 경우로 시스템관리자가 직접 장치파일을 생성해줘야 할경우가 있는데 이때 사용하는 명령어가 mknod라는 명령어이다.
/dev 디렉토리내에 있는 파일들은 거의 장치파일이라고 보면 된다.
mknod라는 명령어는 장치파일(FIFO, Block, Character)을 만들때 사용하는 명령어이다.
일반적으로 블록디바이스, 문자디바이스라고 하는 파일을 생성할때 사용하며 리눅스시스템에 새로 장착되는 하드웨어의 장치파일생성시에 주로 사용한다.
-. 장치파일생성시 유의사항
파일생성시 초기 퍼미션 = 0644
p = FIFO파일
b = Block특수파일
c,u = Character특수파일
장치파일에는 주번호(Major Number)와 부번호(Minor Numver)가 필요하며, 장치파일생성시 지정해 주어야 하낟.
-. mknod를 이용한 장치파일 직접생성하기
형식 : mknod ([옵션]) [장치명] [타입] ([주번호 부번호])
[타입]에는 "b", "c" 또는 "u"가 설정되며, 블록장치파일 또는 문자장치파일을 생성할때 반드시 주번호와 부번호를 지정한다.
하지만 [타입]에 "p"를 지정하여 FIFO파일을 생성할때에는 주번호와 부번호를 생략할수 있다.
ex)
[root@os2 ~]# mknod /dev/testdevice01 c 3 10
[root@os2 ~]# ls -l /dev/testdevice01
crw-r--r-- 1 root root 3, 10 2013-01-12 08:19 /dev/testdevice01
퍼미션이 0644임을 알수 있으며, 명령어를 자세히 보면
mknod : 장치파일명령어
/dev/testdevice01 : 생성할 장치파일의 위치와 장치파일명
c : charcter특수파일
3 : Major Number
10 : Minor Number
위와 같이 지정한것을 알수 있다.
-. 퍼미션을 지정하여 장치파일생성(-m옵션)
[root@os2 ~]# mknod -m 0755 /dev/testdevice02 b 6 12
[root@os2 ~]# ls -l /dev/testdevice02
brwxr-xr-x 1 root root 6, 12 2013-01-12 08:22 /dev/testdevice02
-m옵션을 이용하여 기본퍼미션이 아닌 직접 퍼미션지정을 하여 장치파일을 생성하였다.
mknod : 장치파일명령어
-m 0755 : 생성되는 장치파일의 퍼미션지정(0755)
/dev/testdevice02 : 생성할 장치파일의 위치와 장치파일명
b : Block특수파일
6 : Major Number
12 : Minor Number
'Programming > ubuntu' 카테고리의 다른 글
repo 명령어 (0) | 2014.12.11 |
---|---|
ubuntu - 추가 사용자 계정에 root권한 주는 방법 (0) | 2014.12.11 |
grep에서 원치 않는 결과 빼고 보기 (0) | 2014.12.08 |
grep 의 간단한 사용법 (0) | 2014.12.08 |
루트 권한 사용하기 (0) | 2014.12.08 |