강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

mknod실무2편: mknod를 이용한 장치파일 직접 생성하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

mknod실무2편: mknod를 이용한 장치파일 직접 생성하기

 

 

 

 

 

이제 장치파일을 직접 만들어 보도록 하자. 직접 만들기에 앞서 mknod의 사용형식에 대해서 간단히 알아보자. 다음은 mknod를 사용하는 형식이다 .

 

 

 

mknod [옵션]... 장치명 타입 [주번호 부번호]

 

 

 

타입 b, c, 또는 u가 설정된다.

 

 

 

 블록장치파일 또는 문자장치파일을 생성할 때에는 반드시 MAJOR Number Minor Number를 지정해야 한다.

 

 

 

 하지만 “TYPE” p를 지정하여 FIFO파일을 생성할 때에는 생략할 수 있다.

 

 

 

 

 

다음은 주번호가 3 Character 특수파일을 /dev내에 생성한 예이다.

 

 

 

 생성된 /dev/sulinuxfile의 퍼미션을 보면 0644로 되어있는 것을 확인할 수 있다.

 

 

 

 

 

[root@RockyLinux01 /]# mknod /dev/sulinuxfile c 3 10

[root@RockyLinux01 /]#

[root@RockyLinux01 /]# ls -l /dev/sulinuxfile

crw-r--r-- 1 root root 3, 10  6 23 13:58 /dev/sulinuxfile

[root@RockyLinux01 /]#

 

 

 

 

/dev/sulinuxfile이라는 장치파일을 새로 생성한 것으로서 위에서 사용한 명령어를 분석해 보면 다음과 같다.

 

 

 

 

 

mknod             : 장치파일명령어

 

/dev/sulinuxfile  : 생성할 장치파일의 위치와 장치파일명

 

c                 : 생성할 장치파일의 종류로서 c character특수파일을 의미함.

 

3                 : 생성될 장치파일의 주번호를 3으로 지정한 것임.

 

10                : 생성될 장치파일의 부번호를 10으로 지정한 것임.


 

 

결론적으로 위의 예는 mknod명령어를 이용하여 주번호가 3이고, 부번호가 10인 문자장치파일 /dev/specialfile을 생성한 것이다.

 

 

 

 

 

 

이번에는 주번호가 5인 블록장치파일을 직접 만들어 보도록 하자. , 다음 예에서 주번호가 5이고 부번호가 11/dev/blockfile이라는 블록장치파일을 생성하였다.

 

 

 

 생성된 /dev/blockfile의 퍼미션을 확인해보면 0644인 기본모드로 생성된 것을 확인할 수 있다.

 

 

 

 

 

[root@RockyLinux01 /]# mknod /dev/blockfile b 5 11

[root@RockyLinux01 /]#

[root@RockyLinux01 /]# ls -l /dev/blockfile

brw-r--r-- 1 root root 5, 11  6 23 13:59 /dev/blockfile

[root@RockyLinux01 /]#

 

 

 

 

/dev/blockfile이라는 블록장치파일을 생성한 것으로서 위의 예에서 사용한 명령어를 분석해 보면 다음과 같다.

 

 

 

 

 

mknod             : 장치파일명령어

 

/dev/blockfile    : 생성할 장치파일의 위치와 장치파일명

 

b                 : 생성할 장치파일의 종류로서 b Block특수파일을 의미함.

 

5                 : 생성될 장치파일의 주번호를 5으로 지정한 것임.

 

11                : 생성될 장치파일의 부번호를 11으로 지정한 것임.


 

 

결론적으로 위의 예는 mknod명령어를 이용하여 주번호가 5이고, 부번호가 11 Block타입의 특수장치파일 /dev/blockfile을 생성한 것이다.

 

 

 

 

 

이번에는 장치파일을 직접 생성하면서 새로 생성되는 장치파일의 퍼미션을 직접 지정하는 예이다.

 

 

 

 , 주번호가 6번인 Block 특수파일을 생성하면서 퍼미션을 0755로 지정하였다.

 

 

 

 아래 생성된 /dev/blockfile2 확인해 보면 모드가 0755인 것을 확인할 수 있다.

 

 

 

 

 

[root@RockyLinux01 /]# mknod -m 0755 /dev/blockfile2 b 6 12

[root@RockyLinux01 /]#

[root@RockyLinux01 /]# ls -l /dev/blockfile2

brwxr-xr-x 1 root root 6, 12  6 23 14:00 /dev/blockfile2

[root@RockyLinux01 /]#

 

 

 

 

위에서 사용한 -m옵션은 생성되는 장치파일의 퍼미션을 지정하기 위한 것이다.

 

 

 

 위의 예에서는 -m옵션을 사용하여 0755라는 퍼미션을 지정하였다.

 

 

 

 위에서 사용한 명령어를 분석해 보면 다음과 같다.

 

 

 

 

 

mknod             : 장치파일명령어

 

-m 0755           : 생성되는 장치파일의 퍼미션을 0755로 지정한 것임.

 

/dev/blockfile2   : 생성할 장치파일의 위치와 장치파일명

 

b                 : 생성할 장치파일의 종류로서 bBlock특수파일을 의미함.

 

6                 : 생성될 장치파일의 주번호를 6으로 지정한 것임.

 

12                : 생성될 장치파일의 부번호를 12로 지정한 것임.


 

 

결론적으로 위의 예는 mknod명령어를 이용하여 주번호가 6이고, 부번호가 12 Block타입의 특수장치파일 /dev/blockfile2를 생성한 것이다.

 

 

 

 

 

이상으로 리눅스에서 장치파일을 생성하는 방법에 대해서 배워보았다.

 

 

 

 대부분의 관리자들은 이런 장치파일을 직접 만들어야하는 경우가 흔하지는 않을 것이다.

 

 

 

 하지만 시스템 장애가 발생하여 응급조치를 해야할 경우에 rescue모드로 들어가서 시스템복구작업을 위하여 mknod를 사용해야하는 경우가 있다.

 

 

 

 물론, 흔한 경우는 아니지만 이런 방법을 알고있는 것과 모르는 것의 차이는 실로 엄청나다고 할 수 있다.

 

 

 

 항상하는 말이지만 선택은 여러분들의 몫이다.

 

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  83 명