ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 장치 인식과 파티션 작업
    linux/centOS 2018. 6. 19. 14:36

    ☆ 파티션

     

    (1) 파티션이란?

     

    컴퓨터에서 디스크나 메모리 등의 저장 매체를 사용하고자 하는 영역만큼 나누는 것을 말한다. 하드디스크드라이브처럼 용량이 비교적 큰 저장 매체를 유용하게 쓰기 위해 고안되었다. , 하드디스크드라이브에 새로운 프로그램을 계속 설치하면 디렉토리로 관리하는 데 한계가 생기며, 컴퓨터바이러스에 감염될 경우 모든 프로그램과 데이터들을 사용하지 못하게 될 수도 있다. 이에 대비하여 하드디스크드라이브를 나눠 놓으면 프로그램을 별도로 저장할 수 있으며, 컴퓨터바이러스에 감염되더라도 그 부분만 제거할 수가 있다.

     

     

    (2) 파티션을 나누는 이유?

     

    루트 파티션 파괴시 다중 파티션 자료보호 & 자료 백업 및 업그레이드 수월

    리눅스가 설치된 파티션 이외의 파티션에 자료가 들어 있는 파티션의 경우 리눅스가 설치된 파티션을 포맷하여도 다른 파티션에는 영향이 미치지 않기 때문에 데이터를 보호 할 수 있다. 단일 파티션의 경우 데이터 백업 시 별도의 파티션을 필요로 하지만 다중 파티션의 경우 별도의 파티션 없이 다중의 파티션 중 다른 하나의 파티션을 선택하여 백업 할 수 있고, 파티션 용량이 부족할 때 새로운 파티션으로 대체하여 사용 가능하기 때문에 용량 부족 시 업그레이드가 수월하다.

     

    다중 운영체제 설치시 다중 파티션 필요

    각각의 운영체제가 설치될 공간은 독립적인 공간이어야 하므로, 이러한 공간을 만들기 위해 파티션을 나누는 작업이 필요하게 된다. 또한, 하나의 디스크에 여러 개의 운영체제를 사용하는 경우에 운영체제는 하드디스크를 직접 다루는 것이 아니라 하드디스크의 파티션을 제어하므로 각 운영체제에 알맞은 파일시스템 형식이 각각 있어야 한다.

     

    파일 시스템 점검 시간을 줄여 부팅시간 감소

    리눅스 시스템 부팅 시 fsck 유틸리티에 의해 파일 시스템 점검이 이뤄지게 되는데, 하나의 파티션이 아닌 여러 개의 파티션으로 분할되는 경우 체크여부를 선택 할 수 있으므로 점검 시간이 빠르게 된다.

    파일시스템이 깨진 경우 하나의 파티션으로 분할 시 모든 내용을 복구해야 되서 많은 시간이 걸리는 반면 파티션이 분할되어 있으면, 깨진 파일시스템의 파티션만 복구 하면 되므로 부팅 시 시간이 단축 된다.

    부팅 이후 파일 시스템에 문제 발생 시 문제가 발생된 파티션 언마운트하여 시스템을 검사하여 복구 할 수 있다.

      

     

    ☆ 리눅스 파티션 표시법

     

    IDE 컨트롤러에 연결되어 있는 순서에 따라 하드디스크를 표현

     

    Window

    Linux (SATA, SCSI인 경우 /dev/sda로 인식)

    Primary master HardDisk

    disk0

    /dev/hda (주변장치를 관리하는 디렉토리인 /dev)

    Primary slave HardDisk

    disk1

    /dev/hdb

    Secondary master HardDisk

    disk2

    /dev/hdc

    Secondary slave HardDisk

    disk3

    /dev/hdd

     

    리눅스 (최대 16- 주 파티션 3+ 확장 파티션 1 + 논리 파티션 12(권장))

    윈도우와 같이 드라이브가 아닌 디렉토리로 파티션을 구분한다. 실제로 파티션이 분할되어 있어도 “ / ”디렉토리(최상위 디렉토리) 아래에 하위 디렉토리로 표시되어 진다.

     

    리눅스의 partition구분법

    /dev/hda1

    Primary master하드디스크 첫 번째 파티

    /dev/hda2

    Primary master하드디스크 두 번째 파티션

    /dev/hdb1

    Primary slave하드디스크 첫 번째 파티션

    /dev/hdb2

    Primary slave하드디스크 두 번째 파티션

    [참고] 파티션을 나누게 되면 하드디스크를 ‘/dev/hd?’이므로 ‘/dev/hd?’에 숫자를 붙여서 구분하게 된다.

     

     

    ☆ 파티션 종류와 설명

     

    파티션 분할시 파티션 제약이 따르게 되는데 분할된 파티션의 정보를 담고 있는 파티션 테이블의 용량이 제한되어 있기 때문에 하나의 하드디스크로 만들 수 있는 주 파티션의 개수는 최대 4개이다. 이러한 제한을 극복하기 위해서 등장한 것이 확장 파티션과 논리 파티션이다. 주 파티션 네 개에서 더 많은 파티션이 필요한 경우 네 개의 파티션 중 하나를 확장 파티션으로 그 안에 논리 파티션 (hda5, hda6, hda7...)을 만들 수 있다. 주 파티션 및 확장 파티션의 경우 1부터 4까지의 파티션을 가지며, 5부터의 파티션은 그 하드디스크의 논리 파티션을 의미한다.

     

    파티션

    설명

    주 파티션

    주파티션(Primary Partition), 기본 파티션으로 더 이상 쪼갤 수 없는 파티션이다. 하나의 하드디스크에는 주 파티션과 확장 파티션을 네 개까지만 만들 수 있다는 제한이 있다. 네 개 이상의 파티션이 필요한 경우 확장 파티션을 만들어 그 안에 논리 파티션을 두게 된다.

    확장 파티션

    확장 파티션(Extended Partition), 하드 디스크를 여러 개의 파티션으로 나누고자 할 때 만드는 파티션이다. 확장 파티션은 저장 공간이 없으며, 안에 논리 파티션을 만들 수 있게 해주는 커다란 그릇 역할만 한다. 확장 파티션은 디스크에 하나만 만들 수 있다. (ex - hda4)

    논리 파티션

    논리적인 파티션(Logical Partition), 네 개 이상의 파티션을 사용하게 되는 경우 hda4를 확장 파티션으로 지정하여 논리 파티션을 만들게 된다.

     

     

     

    ☆ 장치 추가 후 인식 방법

     

     

    리눅스 시스템에서 새로운 장치를 붙였다면 장치을 재인식(Device Reconfiguration) 시켜야 한다.

     

    새로운 디스크 추가 작업 절차

     

    () kudzu 서비스 ON

    # chkconfig kudzu on * 이게 꺼져있으면 장치를 인식할 수 없다.

    # chkconfig list kudzu

    [참고] 서버스 설정 툴

    # ntsysv (# setup)

    # system-config-services (# serviceconf)

    # chkconfig --list

     

    () 서버 전원 OFF

    # poweroff (# init 0, # shutdown -h now, # halt)

     

    () 새로운 디스크 장착

    VMWare > VM > Setting > Add > "Hard Disk" > "Create a new virtual disk"

    > SCSI > 1G (1GB 용량의 DISK 2장을 추가한다.)

     

    () 서버 전원 ON

     

    () 부팅 후 추가된 디스크 확인

    # ls -l /dev/sd?

    # fdisk -l (# fdisk -l | grep Disk)

     

     

     

     

    [EX] 새로운 디스크(EX: /dev/sdb(1G)) 장착

    -> 위의 내용을 참고하여 새로운 디스크를 장착한다.

     

    [참고] 용어 : Hotswap 재부팅 하지 않고 새로운 장치를 인식시키는 방식.

     

     

    인식된 하드웨어 목록 확인

    하드웨어 정보 확인

    (GUI) # hal-device-manager &

    (TUI) # lshal

     

    # yum list | grep hal

    (x86) # yum -y install hal-gnome.i386

    (x64) # yum -y install hal-gnome.x86_64

     

     

     

    ☆ fdisk 명령어를 통한 디스크 파티션 구성

     

    fdisk를 이용해 새로운 파티션의 생성, 기존 파티션의 삭제, 파티션의 타입 결정 등의 작업을 수행할 수 있다. 그런데, 래드헷 계열의 배포판은 설치시 대부분 Disk Druid 유틸리티를 이용해서 파티션을 분할한다. 그렇지만, 전통적으로 fdisk를 사용하며 이것은 디스크 드루이드보다 유연하기 때문에 아직도 설치시에 이 프로그램을 사용한다.

     

    fdisk 프로그램은 한번에 한 디스크에 대해서만 작업을 수행한다. fdisk는 명령어 프롬프트 중심의 매우 간단한 인터페이스를 가지고 있다.

     

     

    (명령어 형식)

    # fdisk -l (# fdisk -l | grep Disk)

    # fdisk -l /dev/sda

     

    # fdisk /dev/sda

     

     

    (명령어 옵션)

    옵션

    설명

    -l

    List the partition tables

    -v

    Print version number of fdisk program and exit

    -s

    The size of the partition (in blocks) is printed on the standard output

    -b sectorsize

    Specify the sector size of the disk

     

    # fdisk -l

    -> 모든 디스크/파티션에 대한 정보 출력

     

     

    ☆ 파티션 작업

     

    # fdisk /dev/sdb

    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

    Building a new DOS disklabel. Changes will remain in memory only,

    until you decide to write them. After that, of course, the previous

    content won't be recoverable.

     

    Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

     

    command (m for help) : m /* fdisk command menu의 정보가 보인다*/

    Command action

    a toggle a bootable flag /* 부트 가능한 플래그로 변경 (부트 파티션 저장) */

    b edit bsd disklabel /* bsd 디스크 레이블을 편집 */

    c toggle the dos compatibility flag /* 도스 호환 플래그로 변경 */

    d delete a partition /* 파티션 삭제 */

    l list known partition types /* 알려진 파티션 형태의 목록 (지원 가능한 파티션 보기) */

    m print this menu /* 메뉴를 출력 */

    n add a new partition /* 새로운 파티션 추가 */

    o create a new empty DOS partition table /* 새로운 도스 파티션 테이블을 생성 */

    p print the partition table /* 파티션 테이블을 출력 (파티션 설정 상태 확인) */

    q quit without saving changes /* 변경을 저장하지 않고 종료 */

    s create a new empty Sun disklabel /* 새로운 Sun 디스크 레이블을 생성 */

    t change a partition's system id /* 파티션의 시스템 id를 변경 (파일 시스템 유형 변경) */

    u change display/entry units /* 표시/엔트리 단위를 변경 */

    v verify the partition table /* 파티션 테이블을 점검 */

    w write table to disk and exit /* 디스크에 테이블을 기록하고 빠져나감(파티션 정보 저장) */

    x extra functionality (experts only)

     

    Command (m for help): p

     

    Disk /dev/sdb: 1073 MB, 1073741824 bytes

    255 heads, 63 sectors/track, 130 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

     

    Device Boot Start End Blocks Id System

     

    Command (m for help): n

    Command action

    e extended

    p primary partition (1-4)

    p

    Partition number (1-4): 1

    First cylinder (1-130, default 1): <ENTER>

    Using default value 1

    Last cylinder or +size or +sizeM or +sizeK (1-130, default 130): +200M

     

    Command (m for help): p

     

    Disk /dev/sdb: 1073 MB, 1073741824 bytes

    255 heads, 63 sectors/track, 130 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

     

    Device Boot Start End Blocks Id System

    /dev/sdb1 1 25 200781 83 Linux

     

    Command (m for help): w

    The partition table has been altered!

     

    Calling ioctl() to re-read partition table.

    Syncing disks.

     

    (필요하면 명령어 수행)

    # ls -l /dev/sdb*

    # fdisk -l /dev/sdb

    [EX3] 파티션 생성 2

    # fdisk /dev/sdb

    Command (m for help): m

    Command action

    a toggle a bootable flag

    b edit bsd disklabel

    c toggle the dos compatibility flag

    d delete a partition

    l list known partition types

    m print this menu

    n add a new partition

    o create a new empty DOS partition table

    p print the partition table

    q quit without saving changes

    s create a new empty Sun disklabel

    t change a partition's system id

    u change display/entry units

    v verify the partition table

    w write table to disk and exit

    x extra functionality (experts only)

     

    Command (m for help): p

     

    Disk /dev/sdb: 1073 MB, 1073741824 bytes

    255 heads, 63 sectors/track, 130 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

     

    Device Boot Start End Blocks Id System

    /dev/sdb1 1 25 200781 83 Linux

     

    Command (m for help): n

    Command action

    e extended

    p primary partition (1-4)

    e

    Partition number (1-4): 2

    First cylinder (26-130, default 26): <ENTER>

    Using default value 26

    Last cylinder or +size or +sizeM or +sizeK (26-130, default 130): +100M

     

    Command (m for help): p

     

    Disk /dev/sdb: 1073 MB, 1073741824 bytes

    255 heads, 63 sectors/track, 130 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

     

    Device Boot Start End Blocks Id System

    /dev/sdb1 1 25 200781 83 Linux

    /dev/sdb2 26 38 104422+ 5 Extended

     

    Command (m for help): n

    Command action

    l logical (5 or over)

    p primary partition (1-4)

    l

    First cylinder (26-38, default 26): <ENTER>

    Using default value 26

    Last cylinder or +size or +sizeM or +sizeK (26-38, default 38): <ENTER>

    Using default value 38

     

    Command (m for help): p

     

    Disk /dev/sdb: 1073 MB, 1073741824 bytes

    255 heads, 63 sectors/track, 130 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

     

    Device Boot Start End Blocks Id System

    /dev/sdb1 1 25 200781 83 Linux

    /dev/sdb2 26 38 104422+ 5 Extended

    /dev/sdb5 26 38 104391 83 Linux

     

    Command (m for help): w

    The partition table has been altered!

     

    Calling ioctl() to re-read partition table.

    Syncing disks.

     

     

    [EX4] 파티션 삭제

    # fdisk /dev/sdb

    Command (m for help): p

     

    Disk /dev/sdb: 1073 MB, 1073741824 bytes

    255 heads, 63 sectors/track, 130 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

     

    Device Boot Start End Blocks Id System

    /dev/sdb1 1 25 200781 83 Linux

    /dev/sdb2 26 38 104422+ 5 Extended

    /dev/sdb5 26 38 104391 83 Linux

     

    Command (m for help): d

    Partition number (1-5): 5

     

    Command (m for help): p

     

    Disk /dev/sdb: 1073 MB, 1073741824 bytes

    255 heads, 63 sectors/track, 130 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

     

    Device Boot Start End Blocks Id System

    /dev/sdb1 1 25 200781 83 Linux

    /dev/sdb2 26 38 104422+ 5 Extended

     

    Command (m for help): d

    Partition number (1-5): 2

     

    Command (m for help): p

     

    Disk /dev/sdb: 1073 MB, 1073741824 bytes

    255 heads, 63 sectors/track, 130 cylinders

    Units = cylinders of 16065 * 512 = 8225280 bytes

     

    Device Boot Start End Blocks Id System

    /dev/sdb1 1 25 200781 83 Linux

     

    Command (m for help): w

    The partition table has been altered!

     

    Calling ioctl() to re-read partition table.

    Syncing disks.

     

     

     

     

     

     

     

    'linux > centOS' 카테고리의 다른 글

    마운트 관리  (0) 2018.06.21
    파일 시스템 작업  (1) 2018.06.20
    디렉토리 관리  (0) 2018.06.18
    원격 접속과 파일 전송  (0) 2018.06.18
    프로세스 관리  (0) 2018.06.17

    댓글

Designed by Tistory.