RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'mkfs'에 해당되는 글 1

출처 : 대전국제IT교육센터 정성재 강사

 

1. 파일시스템의 개요
(1) 파일시스템이란? : 운영체제가 파티션이나 디스크에 파일들이 연속되게 하기 위한 구성 방식을
                      말한다.
(2) 리눅스의 파일시스템 : 현재는 ext2과 ext3파일시스템을 사용하며 계층적인 트리 구조형태로
                          되어 있다.
   1) ext3파일시스템
     ㄱ. 초기의 리눅스 파일시스템을 확장한 형태의 파일시스템이다.
     ㄴ. 파일에 들어있는 데이터는 저장 디스크의 데이터 블록에 저장되는 형태로 되어있다.
   2) 리눅스가 현재 지원하는 파일시스템의 종류
     ext2, ext3, minix, msdos, vfat, proc, smb, nfs, iso9660, sysv, hpfs, ufs등

2. mount
(1) 설명: 영어로 mount는'오르다'또는 '어떠한 장비를 설치하다.(탑재하다)'라는 뜻으로
          유닉스에서는 보조기억장치(HDD,FDD,CD-ROM등)를 디렉토리로 만들어 쓰게 해주거나
          파일시스템이 다른 디스크에 접근하기 위한 진입점을 만들어 준다. mount명령은
          /etc/fstab의 설정을 기초로 수행하며 기본적으로는 루트권한자에게만 가능한 명령이다.
(참고1) 파일시스템에 대하여
       DOS, Windows95초기버젼      : FAT16(리눅스에서는 msdos)
       Windows 95 OSR2, Windows 98 : FAT32(리눅스에서는 vfat)
       Windows NT, 2000계열        : ntfs
       Linux                       : ext2, ext3
       CD-ROM                      : iso9660
(2) 사용법
   mount [option] [device] [directory]
    => 옵션없이 mount 명령만 입력하면 현재 마운트된 내용을 보여준다.
(3) option
   -a : /etc/fstab에 명시된 시스템을 마운트할 때 쓰이는 옵션이다.
   -t 파일시스템타입: 파일시스템의 타입을 지정하는 옵션으로 이 옵션을 지정하지 않으면
                    /etc/fstab 파일에서 참조한다. 보통 5가지타입이 있다.
      * 파일시스템타입
       msdos   => 긴 이름을 지원하지 못하는 타입으로 파일이름도 최대 8.3구조이다. MS-DOS, 윈도
                 우95 파일시스템을 마운트할 때 사용한다.
       vfat    => 긴 이름의 디렉토리를 지원하는 타입으로 요즘 윈도우타입이다. 윈도우98 파일시
                스템을 보기 위해선 보통 이 타입으로 설정하면 된다.
       ntfs    => 윈도우 NT, 2000 계열 파일시스템이다.
       ext2,ext3   => 리눅스 파일시스템 타입이다.
       iso9660 => CD-ROM파일시스템이다.
   -o 옵션: 마운트할 때 ro(읽기전용)와 rw(읽기/쓰기)를 지정한다. 또는 시스템을 다시 마운트할때
       사용한다.
     * 옵션
      ro : 읽기전용으로 마운트한다.
      rw : 읽기/쓰기 모드로 마운트한다. 기본값이다.
      remount : 해당 파티션을 다시 마운트한다. 파티션 정보를 바꾸었을 때 사용한다.
      loop : loop 디바이스로 마운트할 때 쓴다. CD 이미지인 iso이미지등을 마운트해서 사용할 때
            쓴다.
      noatime: 노트북에서 사용하는 옵션으로 디스크 접근에 따른 배터리시간을 늘려준다.
   --bind : 커널 2.4부터 지원하는 옵션으로 이미 마운트되어 있는 디렉토리를 추가로 다른 디렉토
           리로 마운트시켜준다.
(4) devive
   1) 설명: 장치를 말하며 대부분 유닉스에서는 /dev라는 디렉토리에서 모든 장치를 파일화하여
           관리한다.
   2) 사용예
     fdd    : /dev/fd0, /dev/fd1 등
     CD-ROM : /dev/cdrom
     HDD    : /dev/hda1 등
(5) 관련파일 : /etc/fstab
   1) 설명: 이 파일은 다양한 파일시스템에 관한 정보를 알려주고 있는 파일로서 mount, umount,
           fsck 등의 명령들과 밀접한 관계를 가지고 있다. 파일의 기본 내용은 다음과 같다.
   2) 기본설정
     /dev/sda2               /                       ext2    defaults        1 1
     /dev/cdrom              /mnt/cdrom              iso9660 noauto,owner,ro 0 0
     /dev/fd0                /mnt/floppy             auto    noauto,owner    0 0
     none                    /proc                   proc    defaults        0 0
     none                    /dev/pts                devpts  gid=5,mode=620  0 0
     /dev/sda1               swap                    swap    defaults        0 0
   3) /etc/fstab의 필드설명: 6개의 필드로 구성되어 있고 다음과 같다
    ㄱ. 첫번째필드: 디바이스를 가리킨다. 현재 커널 2.4 버전에서는 LABEL 처리되고 있다.
    ㄴ. 두번째필드: 마운트될 디렉토리를 가리킨다.
    ㄷ. 세번째필드: 파일시스템의 타입을 나타낸다.
    ㄹ. 네번째필드: 마운트될 때의 옵션을 나타낸다.
       auto: -a 옵션을 이용한 마운트를 가능하게 한다.
       noauto: 명시적으로만 마운트가 가능하다. 즉 -a 옵션을 이용한 마운트는 되지 않는다.
       owner: 로컬(Local)에서 일반사용자가 마운트할 수 있는 권한을 할당하는 값이다. user라고
             입력해도 된다. 예를 들면 로컬에서 posein이라는 일반사용자권한으로 'mount
            /mnt/cdrom' 이라고 명령을 내리면 마운트가 된다.
       default: rw, suid, dev, exec, auto, nouser, async가 적용된다.
         rw    : 읽기 및 쓰기 파일시스템으로 마운트된다.(read-write)
         suid  : setuid와 setgid를 사용할 수 있다.
         dev   : 문자장치와 블록장치를 모두 지원한다.
         exec  : 실행파일을 만들 수 있다.
         auto  : mount -a 명령으로 마운트할 수 있다.
         nouser: 슈퍼유저만이 파일시스템을 마운트할 수 있다.
         async : 파일을 비동기적으로 관리할 수 있다.
       usrquota: 사용자의 용량을 제한하는 disk quota를 사용할 때 해당 파티션에 적는다.
       grpquota: 사용자의 용량을 제한하는 disk quota를 그룹별로 사용할 때 해당 파티션에 적는다.
       noquota: 해당파티션에서 사용자들의 quota를 설정하지 않는다.
       nosuid: 해당파티션에서 SUID나 SGID를 설정을 허용하지 않는다.
       nodev: 해당파티션에서 문자나 특별한 장치(디바이스)를 허용하지 않는다.
       noexec: 해당파티션에서 모든 실행 파일들을 실행할 수 없다.
       suid: 해당 파티션에서 SUID나 SGID의 사용을 허가한다.
       ro: 해당파티션을 읽기전용(read-only)으로 설정한다.
       rw: 해당파티션을 읽고 쓰기(read-write)모드로 설정한다.
    ㅁ. 다섯번째필드: 쌓여있을 필요가 있을지 없을지를 정의한다. 1이면 데이터등이 쌓여 있을 것을
                     나타내고, 0이면 버린다.즉 0인 경우에는 dump명령으로 백업되지 않는다.
    ㅂ. 여섯번째필드: fsck 명령의 순서를 정한다. 1을 포함하고 있으면 먼저점검하고 2의 값이면
                   두번째로 점검한다. 0은 체크하지 않는다.

(6) 사용예
   1) 다른 파일시스템 디스크 사용하기
    ㄱ. 설명: 원래는 파일시스템이 다른 디스크는 사용이 불가능하지만 리눅스에서는 mount라는
            명령을 이용하여 다른 파일시스템을 서브디렉토리처럼 이용할 수 있다.
    ㄴ. 사용법
       mount -t 파일시스템 장치명 마운트할_디렉토리
    ㄷ. 사용예
     a. 디스크의 앞부분에 windows98 운영체제가 설치 되어있으면 /win 과 같이 디렉토리를 만든 후
       에 해당디렉토리로 마운트시켜 윈도우영역도 사용가능하다.
        mount -t vfat /dev/hda1 /win
          => /dev/hda1 이라는 파티션이 vfat파일 시스템을 사용하는데 이를 /win라는 디렉토리로
            사용하겠다는 뜻이다.

   2) 플로피디스크 사용하기
    ㄱ. 사용예 윈도우에서 사용하던 플로피디스크 사용하기
       mount -t vfat /dev/fd0 /mnt/floppy
        => 플로피디스크를 /mnt/floppy라는 디렉토리로 쓴다.
    ㄴ. 참고
     a. 설명: 리눅스에서는  mount를 위해 기본적으로 플로피디스크와 CD-ROM 디렉토리를
             /mnt/floppy 및 /mnt/cdrom으로 제공한다. 그러나, 꼭 이 디렉토리를 사용하지 않아도
             된다. 디렉토리생성후 그 디렉토리로 마운트하면 된다.
     b. 사용예 : /fdd라는 디렉토리로 플로피디스크 마운트하기
       mkdir /fdd
         => 마운트하고자할 디렉토리를 생성한다.
       mount -t vfat /dev/fd0 /fdd
         => 해당 디렉토리로 마운트한다.
   3) CD-ROM드라이브 사용하기
    ㄱ. 설명: CD-ROM은 iso9660이라는 파일시스템을 가지고 디바이스는 /dev/cdrom이다.
    ㄴ. 사용예
       mount -t iso9660 /dev/cdrom /mnt/cdrom
        => cdrom을 /mnt/cdrom이라는 디렉토리로 사용하라는 명령이다.
   4) 기타 사용예
    ㄱ. mount
         => 현재 설정된 마운트 목록을 보여준다.
    ㄴ. mount -a -t ext2
         => /etc/fstab에 명시된 파일시스템중에서 ext2된 된 파일시스템을 마운트한다.
    ㄷ. mount -t ext3 -o ro /dev/hdb1 /disk
         => 파일시스템이 ext3인 /dev/hdb1 을 /disk로 마운트하되 읽기전용으로 한다.
    ㄹ. mount -o remount /home
         => /home파티션을 다시 마운트한다.
    ㅁ. mount /mnt/cdrom
         => CD-ROM을 /mnt/cdrom디렉토리로 마운트한다.
           원칙적으로는 'mount -t iso9660 /dev/cdrom /mnt/cdrom'이라고 명령을 내려야 한다.
           그러나, mount명령은 /etc/fstab파일의 내용을 참고해서 명령을 수행하므로 위와 같이
           간략하게 해도 마운트된다. 참고로 위와 같은 명령은 로컬에서 일반사용자도 수행가능
           하다.
    ㅂ. mount /mnt/floppy
         => 플로피디스크도 위 예제인 CD-ROM 드라아브와 마찬가지로 형식에 맞추어서 명령을 내려
           야 하지만, /etc/fstab파일에 명기되어 있으므로 간략하게 가능하다.
    ㅅ. mount -L /backup /backup
         => label이 설정되어 있을 경우에 label값으로 마운트한다.
           mount LABEL=/backup /backup 과 같다.
    ㅇ. mount -t iso9660 -o ro,loop /iso/redhat.iso /mnt/image
         => redhat.iso라는 CD이미지를 읽기전용이고 루프백장치로 /mnt/image라는 디렉토리로 마운
           트한다.
    ㅈ. mount --bind /backup /backup2
         => 이미 마운트되어 있는 /backup 이라는 파티션을 추가로 /backup2로 마운트한다. 물론
           /backup2 라는 디렉토리는 생성되어 있어야 한다.

3. umount

(1) 설명: 마운트된 디렉토리를 제거해주는 명령이다. 이 명령을 사용하지 않으면 cdrom안에 들어있
          는 디스크를 꺼낼수 없다.
(2) 사용법
   umount 언마운트될_디렉토리
(3) 사용예
   1) umount /mnt/cdrom
       => /mnt/cdrom으로 마운트된 파일시스템을 언마운트하는 것이다. 마운트 포인트에 관한 것은
         /etc/fstab파일에 명기되어 있다. umount하기전에 mount명령을 내려 마운트된 파일시스템을
         확인해야 한다.
   2) umount -a -t iso9660
       => 파일시스템이 iso9660으로 마운트된 것들을 모두 언마운트한다.

4. df(disk free)
(1) 설명: 현재 마운트된 디스크의 남은 공간 등 사용정도를 보여주며 파티션들에 대한 정보도 보여
          준다.
(2) 사용법
   df [option] [file or filesystem]
(3) option
   -h : 용량의 단위 표시(KB,MB,GB)를 해준다.(human readable)
   -k : kilobyte단위로 보여준다. 기본값이다.
   -m : megabyte단위로 보여준다.
   -T : 각 파티션에 대한 파일시스템의 유형을 보여준다.
   -i : inodes의 사용량을 보여준다. 'No space left on device'라는 메시지가 떴을 때 대부분
       inodes를 다 써버린 경우이다.
(4)사용예
   1) [posein@www posein]$ df -h
      Filesystem            Size  Used Avail Use% Mounted on
      /dev/hda5            1004M  108M  896M  11% /
      /dev/hda6             988M  289M  649M  31% /home
      /dev/hda8              15G  7.2G  7.0G  51% /usr
      /dev/hda1              19G   97M   18G   1% /var
   2) [posein@www posein]$ df -T
      Filesystem    Type   1k-blocks      Used Available Use% Mounted on
      /dev/hda5 reiserfs     1028092    110172    917920  11% /
      /dev/hda6     ext2     1011928    295928    664596  31% /home
      /dev/hda8     ext2    15757248   7525416   7431396  51% /usr
      /dev/hda1     ext2    20161172     98392  19038640   1% /var
   3) [posein@www posein]$ df -i
      Filesystem            Inodes   IUsed   IFree IUse% Mounted on
      /dev/hda10            384768   17277  367491    5% /
      /dev/hda5               6024      14    6010    1% /boot
      /dev/hda6             513024    3243  509781    1% /home
      /dev/hda12            128768      11  128757    1% /opt
      /dev/hda13             72288      11   72277    1% /secu
      /dev/hda11            256512      29  256483    1% /tmp
      /dev/hda7             384768   82743  302025   22% /usr
      /dev/hda9             384768   21873  362895    6% /usr/local
      /dev/hda8             384768    2210  382558    1% /var

5. du(disk usage)
(1) 설명 : 파일들이 디스크에서 차지하고 있는 크기들을 보여준다.
(2) 사용법
   du [option] [filename(s)] => 파일 이름을 지정해 주지 않으면 현재 디렉토리에 대한 정보를
                               보여준다.
(3) option
   -a : 디렉토리에 존재하는 모든 파일에 대해 각각의 크기를 보여준다.
   -s : 파일들의 전체 크기를 합한 값만 보여준다.
   -r : System V계열에서만 쓰이는 옵션으로 서브디렉토리까지 계산한다. BSD계열에서는 자동적으
      로 계산한다.
   -h : 용량을 보기 좋게(KB, MB, GB단위로) 표시해 준다.(human readable)
   -b : 결과값을 Byte단위로 출력한다.
   -k : 결과값을 KB단위로 출력한다.
   -m : 결과값을 MB단위로 출력한다.
(4) 사용예
   1) [posein@www posein]$ du -sh
      9.9M    .
        => 현재 디렉토리의 총 용량을 나타낸다.
   2) [posein@www posein]$ du -h
        => 현재 디렉토리의 모든 파일과 디렉토리에 대해 크기를 단위(KB,MB 등)을 붙여 보여준다.
(참고4) 유닉스에서 파일의 크기 정보를 출력해주는 수치는 byte단위가 아니고 block단위이다.
        유닉스에서는 디스크상의 데이터들을 512byte, 1024byte등을 1block으로 관리한다. 이것은
        도스의 cluster와 비슷한 개념이다. 리눅스에서는 기본값으로 kilobyte단위로 출력한다.

6. fdformat
(1) 설명 : 플로피디스켓을 low-level format하는 프로그램이다. 참고로 플로피디스크를 마운트할
           필요가 없다.
(2) 사용법
    fdformat [option] 장치명
(3) option
   -n : 포맷한 후에 디스크 표면 검사를 하지 않는다.
(4) 사용예
   1) fdformat /dev/fd0H1440
       => 플로피디스켓을 1.44MB 포맷으로 포맷한다. 기본적으로 첫번째플로피가 3.5" 드라이브이므
         로 'H1440'을 생략하고, 'fdformat /dev/fd0'라고 해도 사용가능하다. 그러나 자동검색하지
         못하면 지정해야 한다.
   2) fdformat -n /dev/fd0H1440
       => 디스크 표면검사를 통한 배드블록 조사를 하지 않는다.

7. mkfs
(1) 설명 : make filesystem의 약자로 새로운 파일시스템을 만드는 명령이다. 루트권한자만 사용
           가능하다 참고로 플로피디스크를 마운트할 필요없이 수행가능하다.
(2) 사용법
   mkfs -t 파일시스템타입 [option] 디바이스
(3) option
   -c : bad block을 체크한 후 파일시스템을 구축한다.
   -v : 결과를 상세히 출력한다.
   -l 파일명: badblocks 라는 명령을 이용하여 작성된 '파일명'으로부터 bad blocks 리스트를 읽어
            들인다
(4) 사용예
   1) mkfs -t ext2 /dev/hdb1
       => /dev/hdb1 을 리눅스파일시스템인 ext2로 만든다.
   2) mkfs -t ext2 /dev/fd0
       => 플로피디스크의 파일시스템을 리눅스파일시스템인 ext2로 만든다.
   3) mkfs -t ext2 -c /dev/fd0H1440
       => 플로피디스크의 bad block을 체크하면서 파일시스템을 만든다.

8. mke2fs
(1) 설명: ext2 파일시스템으로 만드는 명령이다. mkfs와 사용법이 유사하다.
(2) 사용법
   mke2fs [option] 디바이스
(3) option
   -j : ext3 파일시스템인 저널링(journaling) 파일시스템으로 만든다.
(4) 사용예
   1) mke2fs /dev/fd0
       => 플로피디스켓의 파일시스템을 ext2로 만든다.
   2) mke2fs -j /dev/hda6
       => /dev/hda6 파일시스템을 ext3파일시스템으로 만든다.

9. fsck
(1) 설명: 'file system check'의 약자로 리눅스 파일시스템에서 파일을 체크하고 수리하는 명령
          이다. 도스의 chkdsk나 scandisk명령과 유사하다.
(2) 사용법
   fsck [option] 장치명
   fsck [option] 마운트포인트
(3) option
   -a : 명령 수행에 대한 확인 질문 없이 무조건 수행한다.
   -r : 명령 수행에 대한 확인 질문을 한다. 여러개의 fsck가 병렬모드형태로 작동하고 있을 때
       유용하다.
   -A : /etc/fstab에 정의되어 있는 모든 파일 시스템을 체크한다.
   -P : -A옵션을 사용할 때, 루트 파일시스템을 다른 파일시스템과 병렬로 함께 체크한다.
   -R : -A옵션을 사용할 때, 루트 파일시스템은 체크하지 않고 건너 뛴다.
   -N : 실행을 하지 않고 단지 어떤 것이 실행되어지는 지 보여준다.
   -T : 검사를 시작할 때 제목을 보여주지 않는다.
   -s : fsck동작은 시리얼화한다. 대화형모드에서 여러 파일시스템을 점검할 때 유용하다.
   -V : 실행되는 각 파일시스템용 명령을 포함해 자세한 출력을 수행한다.
   -v : 버전 정보를 보여준다.
   -t fstype : 점검할 파일시스템의 유형을 지정한다. 파일시스템 앞에 no를 붙이면 지정한 파일
              시스템을 제외한 나머지를 검사하고, -A옵션이 설정돼 있는 경우 /etc/fstab에서
              파일시스템 유형이 맞는 것만 검사한다.
(4) 사용예
   1) [root@www /root]# fsck -v
      Parallelizing fsck version 1.19 (13-Jul-2000)
   2) fsck /   => / 마운트포인트의 파일시스템을 체크한다.
   3) fsck /dev/hda2 => /dev/hda2파티션의 파일시스템을 체크한다.
(5) 참고 : fsck명령은 손상된 디렉토리나 파일을 수정할 때 임시로 /lost+found 디렉토리에 연결한
           뒤에 오류를 수정한다. 작업이 끝나면 사라진다.
(6) 종료코드
   0 : 에러없음
   1 : 파일시스템 에러 고쳐짐
   2 : 에러는 수정되었으나 리부팅이 필요함
   4 : 파일시스템 에러를 고치지 않고 그대로 둠
   8 : 실행중 에러 발생
   16 : 사용법과 문법에 대항 에러 발생
   128 : 공유 라이브러리에 대한 에러 발생
(7) 유의점 : fsck를 사용하기 전에 리눅스를 single모드로 부팅해 검사하는 것이 좋다. 또한
             마운트되어 있는 파일시스템을 fsck로 검사하는 것은 좋은 방법이 아니다. 현재 실행중
             인 파일시스템이 손상될 우려가 있으므로 fsck로 검사하기 전에 반드시 마운트되어
             있는 파일시스템은 언마운트한 다음에 검사하도록 한다.

10. e2fsck
(1) 설명 : 리눅스 파일시스템중 ext2(Linux second extend)파일시스템을 체크한다. 현재 리눅스에
          서 ext2를 사용하므로 이 명령을 내려 사용하면 된다. fsck명령을 내려도 자동으로 이 명
          령으로 전환된다. 사용법은 fsck와 유사하다.
(2) 사용법
   e2fsck [option] 장치명
   e2fsck [option] 마운트포인트
(3) option
   -n : 상황이 발생했을 때 물음에 대해 'no'라고 인식하여 처리한다.
   -y : 상황이 발생했을 때 물음에 대해 'yes'라고 인식하여 처리한다.
   -c : BAD Block을 체크한다.
   -f : 깨끗한 파일시스템까지 강제적으로 체크한다.
(4) 사용예
   1) e2fsck -y /dev/hda2
       => /dev/hda2 의 파일시스템을 체크하는데 상황발생시 물음에 대해 모두 'yes'라고 인식하여
         처리한다.
   2) e2fsck /home
       => /home 파티션의 파일시스템을 체크한다

11. dd
(1) 설명: Data Dumper의 약자로 디스크를 이미지형태로 백업하거나 파일의 포맷 즉, 형식을 바꾸는
          명령으로 텍스트파일의 대소문자변환과 부팅디스크를 만들때도 쓰인다.
(2) 사용법
   dd if=입력파일 [conv=conversion type] of=출력파일 [bs=] [count=] [skip=]
(3) option
   if= : 입력파일을 지정
   of= : 출력파일을 지정
   conv= : 변환하는 데이터지정
   bs= : 출력되는 블록사이즈를 지정, 즉 한번에 얼마나 많은 데이터가 변환되는지를 지정
   count= : 변환되는 블록의 수 지정
   skip= : 입력파일의 시작되는 블록지정. 데이터를 나누어 이미지를 뜰 때 사용
(4) 사용예
   1) dd if=/tmp/aaa.txt conv=ucase of=/tmp/bbb.txt
     => /tmp/aaa.txt 파일에서 모든 글자를 대문자로 바꾼뒤 /tmp/bbb.txt파일로 저장하라.
   2) dd if=ccc.txt conv=lcase of=ddd.txt
     => 현재디렉토리의 ccc.txt 파일의 모든 글자를 소문자로 바꾼뒤 현재디렉토리의 ddd.txt파일로
     저장하라. 참고로 대소문자 변환시 if와 of의 파일명을 같게 해서는 안된다. 같게 하면 파일의
     크기가 0인 파일로 바뀐다.
   3) dd if=/boot/vmlinuz of=/dev/fd0
       => 부팅이미지인 /boot/vmlinuz 를 /dev/fd0 즉, 플로피 디스크에 저장하라는 명령으로 부팅
         디스크를 만드는 것이다
   4) dd if=/mnt/cdrom/images/boot.img of=/dev/fd0
       => 리눅스설치 디스크용 이미지를 플로피디스크에 저장한다. 리눅스 설치디스크가 만들어진
         다.
   5) dd if=/dev/hda of=/dev/hdb
    => /dev/hda 를 그대로 /dev/hdb로 디스크 백업한다.
   6) 4개의 620MB 이미지를 만드는 경우
    dd if=/dev/hda of=/mnt/data/disk1.img bs=1M count=620
    dd if=/dev/hda of=/mnt/data/disk2.img bs=1M count=620 skip=621
    dd if=/dev/hda of=/mnt/data/disk3.img bs=1M count=620 sklp=1241
    dd if=/dev/hda of=/mnt/data/disk4.img bs=1M count=620 skip=1861
     => 특정디스크의 내용을 백업할 때 CD로 구울 수 있는 620MB의 크기로 나눈 것이다. 여기서 of
       에 기록되어 지는 디스크는 다른 디스크(예를 들면 /dev/hdb같은)이어야 한다.
(5) 정리: dd 명령을 사용하는 경우
   1) 텍스트파일의 문자들을 대/소문자로 전환할 때 사용한다.
   2) 부팅디스크 또는 설치디스크를 만들 때 사용한다.
   3) 디스크 단위로 백업할 때 사용한다.

(참고) 리눅스 설치디스크 만들기
(1) 설명: 요즘 나오는 시스템은 바이오스에서 CD-ROM부팅을 지원하지만 CD-ROM부팅이 지원하지
         않는 경우에는 플로피 디스크로 부팅해서 리눅스를 설치해야 한다. 예를 들면 펜티엄초기
         모델중에는 플로피디스크나 하드디스크만 부팅이 되는 시스템이 있다 .이 경우에는 CD-ROM
         으로 제공되는 리눅스를 설치하려면 설치디스크를 만들어 부팅한 후 설치해야 한다.
(2) 방법
   1) 윈도우에서 만들기
    ㄱ. 리눅스 배포판 1번 CD-ROM을 삽입하고 CD-ROM 드라이브로 이동한다. 만약 CD-ROM이 F:인경우
       'F:\>CD DOSUTILS' 명령을 내린다.
    ㄴ. 'F:\DOSUTILS>rawrite' 를 실행시킨다.
    ㄷ. 'Enter disk image source file name :' 이라고 나오면
         '..\images\boot.img' 또는 'F:\images\boot.img'
         라고 입력한다.
    ㄹ. Enter target disk drive : 이라고 나오면
        'a:'
        라고 입력한다.
    ㅁ. Please insert a formatted diskette into drive A: and press -ENTER- : 가 나오면
        플로피 디스크를 삽입하고 [ENTER]키를 누른다.
    ㅂ. 리눅스용 설치디스크가 만들어진다.
   2) 리눅스에서 만들기
    ㄱ.리눅스설치 1번 디스크를 CDROM에 삽입한다.
    ㄴ. mount /mnt/cdrom
         => CD-ROM 을 마운트한다.
    ㄷ. cd /mnt/cdrom/images
         => CD-ROM 의 images 디렉토리로 이동한다.
    ㄹ. dd if=boot.img of=/dev/fd0
         => dd 명령을 이용하여 부팅이미지를 플로피디스켓에 넣는다.
(3) 리눅스설치: 만들어진 설치디스크로 부팅한 후 리눅스설치 CD-ROM으로 설치한다.

12. fdisk
(1) 설명 : 디스크 파티션을 만들고 삭제하는 명령이다.
(2) 사용법
   fdisk [option] 장치명
(3) option
   -l : 파티션 테이블 목록을 보여준다.
   -s partition : 해당파티션의 크기를 보여준다. 역시 단위는 block이다.
   -v : fdisk의 버전을 보여준다.
(4) 사용예
   1) fdisk -l
     => 현재 디스크의 파티션 테이블 목록을 보여준다.
   2) fdisk /dev/hdb
     => Primary의 Slave 디스크 파티션을 설정한다.
   3) [root@www root]# fdisk -s /dev/hda9
      4024251
       => /dev/hda9의 크기를 보여준다.


- 파일시스템 관련 명령어(1) - 실습

1. 리눅스서버를 사용중인데 사용자가 증가하여 /home 파티션의 공간이 부족하게 되었다. 그래서,
   새로운 하드디스크를 서버에 추가로 장착하여 파티션을 하나로 만들어 /home2로 사용하고자 한다.
   어떠한 절차를 거쳐야 하는가? (참고로 새로운 하드디스크는 IDE 타입으로 Primary의 Slave로
   장착하였다.)

   => (방법)
     1. fdisk 를 한다.
       1) 설명: 새로운 하드디스크를 장착하면 가장 먼저 해야 한다. 또한 새로이 장착한 하드디스
               크가 Primary Slave에 위치하므로 리눅스에서 장치명은 /dev/hdb 가 된다.
       2) 사용예
         [root@www root]# fdisk /dev/hdb
           => fdisk를 이용하여 파티션을 하나로 만든다.
     2. mkfs를 이용하여 파일시스템을 생성한다.
       1) 설명: fdisk 후에는 파일시스템을 생성해줘야 한다. 위에서 새로이 장착한 하드디스크를
               하나의 파티션으로 만들었으므로 정확한 장치명은 /dev/hdb1이 된다.
       2) 사용예
         [root@www root]# mkfs -t ext3 /dev/hdb1
           => /dev/hdb1을 ext3 파일시스템으로 만든다. mkfs 대신에 mke2fs, mkfs.ext2, mkfs.ext3
             등의 명령을 이용하여 파일시스템을 만들 수 있다.
     3. mount 한다.
       1) 설명: /home2로 사용하려면 해당디렉토리가 존재해야 하고 그 디렉토리로 마운트하면
               된다.
       2) 사용예
         [root@www root]# mkdir /home2                      // 미리 디렉토리를 생성한다.
         [root@www root]# mount -t ext3 /dev/hdb1 /home2
     4. 참고 : /etc/fstab 이용하기
       1) 설명: 명령어 상태를 mount명령을 내리면 시스템 재부팅시 해당 파티션이 마운트되어 있지
               않는다. 재부팅시에도 언제라도 /home2 파티션을 사용하려면 /etc/fstab파일에 등록
               해야 한다.
       2) 사용예 : /etc/fstab파일에 아래와 같이 등록한다.
         /dev/hdb1          /home2                  ext3    defaults        1 2


2. 리눅스 설치시에 파티션을 swap과 '/ ' 두 개로 나누어서 설치하였다. 현재 /home 디렉토리로
   사용중인 공간을 확인하려면 어떻게 해야 하는가?

    => (방법)
      1. 설명: 일반적으로 파티션별 사용공간과 관련된 명령어는 남은 공간을 보여주는 df 이지만
              실제 리눅스에서 사용하는 파티션을 '/' 하나로만 분할하였기 때문에 df 명령은 사용
              할 수 없고 du 명령을 사용해야 한다.
      2. 방법
        1) 해당디렉토리로 이동한다.
          [root@www root]# cd /home
        2) du -sh 명령을 내린다.
          [root@www home]# du -sh
          985M    .
           => 현재 /home 디렉토리에서 사용중인 공간은 985M 이다.



3. 현재 /home 디렉토리의 공간이 과도하게 사용중이다. 사용자 쿼터(Quota)를 설정하지 않아 각
   사용자들은 현재 서버에 사용공간에 제한이 없다. 특정사용자인 posein 이라는 사용자가 사용중
   인 공간을 확인하고 싶다. 어떻게 해야 하는가?

   => (방법)
     1. 설명: 특정사용자가 사용중인 공간을 확인하는 방법도 사실 위 문제2와 같다. 해당사용자의
             홈디렉토리로 이동후에 du -sh 명령을 내리면 된다.
     2. 방법
       1) posein 이라는 사용자의 홈디렉토리로 이동한다.
         [root@www root]# cd ~posein
       2) du -sh 명령을 내린다.
         [root@www posein]# du -sh
         550M    .



4. posein 이라는 사용자가 공간을 많이 차지하고 있다. 어떤 파일이나 디렉토리가 얼마만큼 차지
   하는지 알고 싶다면 어떻게 해야 하는가?
   => (방법)
     1. 설명: 사용자의 디렉토리로 이동한 뒤에 du -sh * 명령을 내리면 파일이나 디렉토리단위로
            차지하는 공간을 나열해서 보여준다.
     2. 방법
       [root@www posein]# du -sh *

우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
Tips! (1)
OpenSource (1)
«   2018/12   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
  1. 2012/12 (2)
  2. 2012/04 (3)
  3. 2012/03 (6)
  4. 2012/02 (6)
  5. 2012/01 (2)