Linux

12. 하드디스크 구조

jih0ssang 2023. 9. 18. 16:49

Disk Sector(디스크 섹터)

https://ko.wikipedia.org/wiki/%EB%94%94%EC%8A%A4%ED%81%AC_%EC%84%B9%ED%84%B0

 
하드디스크의 물리적 구조  

 

논리적 구조  

 섹터 sector : 가장 작은 단위 ( 512byte)

 트랙 track : 섹터가 모여서 하나의 원을 구성함.

 실린더 cylinder : 여러 동심 트랙(track)에 대한 스택 구조, 트랙의 집합

 섹터 < 트랙 < 실린더 < 파티션 partition < 디스크 disk

 

하드디스크를 추가하고 사용하기까지의 과정을 알아봅시다.

disk 장치 추가> 인식> 파티셔닝> 파일시스템 생성> 포맷> 마운트> 장치 사용

 

 

 

MBR 파티션? GPT 파티션? 각각 부팅 방식이 다르다!

 BIOS? --> MBR 파티션

 EFI 혹은 UEFI 인터페이스? --> GPT 파티션

 

 

마스터 부트 레코드(MBR)

 하드 디스크에 대한 가장 처음 섹터(512byte)

 0: 코드 영역 (부팅정보)

 440: 디스크 서명

 446: 파티션 나눈 거 적혀있는 테이블 16byte*4 = 64byte

   ◇ 파티션 테이블에 파티션 크기를 4byte로 저장하여 디스크의 최대크기 제한이 발생함.

   한 개의 섹터는 일반적으로 512byte, 4byte의 데이터로 지정할 수 있는

   최대 섹터 수는 2^32,

   약 43억개, 용량으로 환산하면 2TB(테라바이트) 최대 2TB까지만 인식 가능

 

 첫 섹터영역을 참고하여 CPU가 운영체제를 로딩한다.

해당영역 첫 440Bytes는 코드 영역으로 CPU가 명령어로 인식하는 부분이다.

해당 부분이 수정되면 정상부팅이 불가능하다.

  ◇ 주 파티션 4개까지 생성가능

  ◇디스크 용량 최대 2TB까지 인식 -->부족하다...

  ◇ BIOS가 설치된 PC에서 사용

 문제점 : disk 2TB이상이면 MBR 방식으로 파티션을 하면 2TB는 할당할 수 있지만,

   2TB 이후영역은 주소시정을 할 수 없음.

 해결방안 : GPT 방식!!

 

 

마스터 부트 레코드는 마스터 파티션 테이블 , 디스크 서명 및 마스터 부트 코드 의 세 가지 주요 부분으로 구성됩니다.

 

다음은 컴퓨터가 처음 시작될 때 마스터 부트 레코드가 재생되는 단순화된 버전의 역할입니다.

 

BIOS는 먼저 마스터 부트 레코드가 들어있는 부팅 대상 장치를 찾습니다.

일단 MBR의 부트 코드가 발견되면 특정 파티션 의 볼륨 부트 코드 를 사용하여 시스템 파티션의 위치를 ​​식별합니다.

그런 다음 특정 파티션의 부트 섹터를 사용하여 운영 체제 를 시작합니다.

하드 드라이브가 분할 될 때 생성되지만 파티션 내에 위치하지 않습니다. , 플로피 디스크와 같은 파티션되지 않은 저장 매체에는 마스터 부트 레코드가 포함되지 않습니다.

 

GPT (GUID Partition Table, guid 파티션 테이블)

https://ko.wikipedia.org/wiki/GUID_%ED%8C%8C%ED%8B%B0%EC%85%98_%ED%85%8C%EC%9D%B4%EB%B8%94

 

 확장 펌웨어 인터페이스 (EFI)의 일부에 포함된 디스크 파티션 테이블 레이아웃 표준.

 차이

 주파티션 128개까지 생성 가능

 섹터 주소를 64bit로 저장, 최대 8ZB(제타바이트)까지 인식

 GPT 중요 데이터를 백업함(마지막부분-장애복구용)

 문제점 : 부팅코드(BIOS) 부분이 없어서 부팅이 안됨. --> 펌웨어 지원

 해결책 : BIOS (Basic Input/Output System 대신에 EFI 혹은 UEFI (Extensibe firmware Interface/Unified EFI) 방식의 펌웨어 지원

 

 

 

디스크 이름

1) E-IDE(Advanced Technology Attachment 병렬 ATA) 방식

2) SATA(Serial ATA) / SCSI 방식

 

리눅스에 따라

hda = E-IDE 방식의 HDD

sda = SCSI 방식의 HDD

내 장비가 다 SATA sda만 나올 것임...

 

메인보드와 disk를 연결하는 인터페이스 방식 (컴퓨터에 HDD 등 장치 연결)

 SCSI (Small Computer System Interface): 병렬, 주변기기 제어

 SA-SCSI (Serial Attached SCSI, SAS): 직렬

 

1) SCSI (Small Computer System Interface)

 주변기기 제어하는 기능 (디스크 안에 파일 시스템으로..)

 

2) SA-SCSI (Serial Atached SCSI:SAS) 직렬통신

 sda , sdb, sdc, sdd ,...sdf sd로 부른다.

-->sda : 첫 번째 sas 디스크이다.

서버용으로 주로 사용

 

 

 

장치 추가 -> 파티셔닝 -> 포맷 -> 장치를 연결(마운트) -> 장치사용(data 쓰기)

mbr 파일시스템종류 수동, 자동 LVM

gpt

여러 툴

 

 

 

확장파티션 extended

[ primary 1 | primary 2 | primary 3 | extended = partition 4 ]

------------------------------------------------

[ partition 5 + partition 6 + partition 7 ]

 

 

파티션 4개 이내

primary 1~4

 

파티션 4개 이상

primary 1~3

primary 4 --> extended 로 변경

logical 5~ == partition 5~ == primary 4의 크기를 논리적으로 나누어 할당

 

 

fdisk : 파티션 테이블을 관리하는 명령어. 디스크 파티션을 생성, 수정, 삭제 가능

<option>

 -l : 현재 모든 디스크의 파티션 설정 확인

 

fdisk /dev/sdb

 a : 부팅 파티션 설정

 b : BSD disk Label 설정

 d : 파티션 삭제

 l : 설정 가능한 파티션 타입 목록 보기

 m : 파티션 설정 도움말 보기

 n : 새로운 파티션 생성

 o : 새로운 Dos 파티션 생성

 p : 현재 설정된 파티션 정보 확인

 q : 설정된 정보를 저장하지 않고 빠져나가기

 w : 현재까지 설정한 파티션 정보를 저장하고 fdisk를 빠져나가기

 t : 파티션 타입 변경

 

 

 

'Linux' 카테고리의 다른 글

14. 사용자 및 시스템 정보 표시  (0) 2023.10.10
13. swap과 mount  (0) 2023.09.18
11. 스케쥴링(Scheduling)  (0) 2023.09.18
10. ACL(Access Control List, 접근제어목록)  (0) 2023.09.18
9. 아카이브(archive)와 압축  (0) 2023.09.18