위로 아래

하드 디스크 구조

플래터 (Platter)

  1. 하드 디스크는 한 개 이상의 원형 플래터로 구성
  2. 플래터는 층층이 쌓여 동시에 회전
  3. 플래터의 위, 아래면은 자기 매체(Magnectic media)로 코팅돼어 있다
  4. 모든 disk는 똑같은 규격으로 생성

 

암, 헤드 (Arm, Head)

  1. 암 (Arm) : Platter의 양면을 읽기 위한 도구. 각 Platter마다 Arm이 한 개씩 달려 있다
  2. 헤드 (Head) : Arm의 위/아래로 1개씩 달려서, 각 Platter의 윗/아랫면에 데이터를 읽고 쓴다 (자기장을 이용해 Platter와의 직접 접촉 없이 데이터 읽고 쓰기 가능)
  3. Platter가 5개인 하드 디스크에는 Arm이 5개, Head가 10개 달려 있다

 

트랙, 섹터 (Track, Sector)

  1. 트랙 (Track) : Platter의 바깥 쪽에서부터 0으로 시작하여 안쪽으로 진행
  2. 섹터 (Sector) : 각 Track을 512 Byte씩 나눈 영역. (512 Byte = 1 Sector)
  3. Sector는 하드 디스크 주소가 할당되는 가장 작은 저장 단위. (각 Sector 마다 한 개의 주소가 할당)
  4. 각 Track마다 Sector가 새로 시작되며 1부터 부여.

 

실린더 (Cylinder)

 

  1. 실린더 (Cylinder) : 여러 Platter들의 Track 집합
  2. 예시 : Cylinder 1 = Platter가 3개인 하드 디스크의 1번 Track 집합 = Platter 1층의 Track 3 + Platter 2층의 Track 3 + Platter 3층의 Track 3

 

 

 

 


섹터 주소 표기 방법

 섹터 주소 지정 방식

  1. CHS (Cylinder-Head-Sector)
  2. LBA (Logical Block Address)

 

디스크 저장용량 계산

Sector 당 저장 용량 : 512 byte

Track 당 Sector 개수 : 63

Cylinder 당 Track 개수 (= Platter 개수) : 16

Cylinder 개수 ( = Track 수) : 4092

 

하드디스크 총 용량 = 512 * 63 * 4092 * 16 = 2,111,864,832 bytes = 2GB

 

 

 

 


CHS

CHS (Cylinder-Head-Sector)

  1. 하드 디스크 드라이브의 데이터 구조
  2. 운영 체제가 하드 디스크 내의 데이터(섹터)를 찾아 읽고 쓰기 위한 방법
  3. 구조
    1. Cylinder : Track 번호를 특정
    2. Head : Platter의 앞/뒤 면을 특정
    3. Sector : 해당 Platter의 해당 Track에서 몇 번 Sector인지 특정
  4. 예시 : CHS(10,5,1) = 5번째 Head를 10번째 Sylinder의 1번째 Sector에 위치시키고 데이터 Read/Write

 

한계점

  1. 제한 사항 존재 (일정 GB 이상의 용량을 가지는 하드 디스크는 CHS 주소 방식으로 표현할 수 없는 등)
  2. 디스크 Platter의 Track 길이가 바깥쪽으로 갈수록 길어지는데도, CHS 방식의 경우 안쪽과 바깥쪽의 Track을 동일한 개수의 Sector로 나누어서 낭비가 있다
  3. 논리 주소 방식인 LBA 등장 (OS가 하드 디스크의 주소 필요 없이 숫자 주소만 확인하면 데이터 위치를 찾을 수 있다. TB 단위의 하드 디스크까지 사용 가능)

 

 

 


LBA

LBA (Logical Block Addressing)

  1. 하드 디스크의 물리적 구조(원형)과 상관 없이 섹터를 일렬로 나열하여 0부터 번호를 매겨서 논리적으로 사용
  2. 논리적인 주소 LBA를 물리적 주소 CHS로 변환하는 건 해당 Disk Controller가 알아서 하므로 OS가 상관하지 않아도 된다

 

 

 


CHS와 LBA 조회 Command

CHS 조회

fdisk -l

 

 

LBA 조회

fdisk -lu

 

 

 

 


CHS <-> LBA 변환 방법

CHS->LBA 변환
LBA = ((Cylinder * heads_per_cylinder + Head) * sectors_per_track) + Sector - 1

 

LBA -> CHS 변환

Cylinder = LBA / (heads_per_cylinder * sectros_per_track)

Head = (LBA / sectors_per_track) % heads_per_cylinder

Sector = (LBA % sectors_per_track) + 1

 

 

 

 

 

참고 : https://m.blog.naver.com/ginger2009/221985406342

 

[Forensics] 하드 디스크의 구조와 CHS, LBA

이번 글은 하드디스크의 내부 구조를 알아보고 섹터의 지정 방식인 CHS와 LBA 주소에 대해 정리할 것...

blog.naver.com

 

참고 : https://ljhblog.tistory.com/46

 

CHS 주소 지정 방식과 LBA 주소 지정 방식

(참고 : http://forensic-proof.com/archives/355) CHS 주소 지정 방식CHS는 Cylinder-Head-Sector의 약자이며 실린더,헤드,섹터로 이루어져있는 하드디스크의 물리적 구조를 기반으로 탐색하는 주소 지정 방식이다.

ljhblog.tistory.com

 

참고 : https://bubble-dev.tistory.com/entry/%ED%95%98%EB%93%9C%EB%94%94%EC%8A%A4%ED%81%AC-%EA%B5%AC%EC%A1%B02

 

하드디스크 구조2

지난 번에는 하드디스크의 기본적인 장치 구조에 대해 알아봤어요 이번에는 하드디스크의 구체적인 장치와 동작방식에 대해 알아볼거에요 Sector 트랙을 구성하는 최소 단위 = 가장 작은 저장 단

bubble-dev.tistory.com