4k 섹터 하드 드라이브를 포맷하는 방법은 무엇입니까?


12

Seagate ST3000DM001 3TB 하드 드라이브를 구입했습니다. 인클로저 내부에서 판매되었습니다. ext4로 포맷하고 일부 데이터를 복사 한 다음 인클로저에서 제거하여 마더 보드에 직접 연결했습니다. 내 데이터가 OS에 표시되지 않았으며 (약 300GiB 파티션과 나머지 공간을 여유 공간으로 보았습니다) 고급 포맷과 2TB 이상의 드라이브에 대해 읽기 시작했습니다.

디스크를 USB로 다시 연결하고 모든 데이터를 복사 한 후 다시 sata에 연결했습니다. gparted를 사용하여 GPT 파티션 테이블 (ubuntu 디스크 유틸리티를 사용하지 못함 Error synchronizing after initial wipe: Timed out waiting for object (udisks-error-quark, 0)을 만들고 하나의 큰 3Tb Ext4 파티션을 생성하고 기본값 Align to을 그대로 유지 MiB하고 형식을 지정했습니다.

드라이브가 올바르게 인식되고 올바르게 마운트됩니다. 파일을 드라이브에서 성공적으로 복사 할 수 있습니다.

하나:

Gparted는 내가 아는 512k 섹터를 가진 디스크를 보여줍니다 1

갈라진 스크린 샷

cat /sys/block/sdb/queue/physical_block_size보고 하는 동안4096

libparted512K가 아닌 섹터 2 와 MiB에 대한 정렬이 충분하다고 말하는 다른 섹터 3에 문제가있는 보고서를 발견했습니다 .

Parted는 최소를 선택하면 드라이브가 정렬되었다고보고합니다.

(parted) align-check 
alignment type(min/opt)  [optimal]/minimal? min                           
Partition number? 1                                                       
1 aligned
(parted)    

내 구성이 정확합니까? 디스크가 512k 섹터로 포맷되어 있거나 gParted가 잘못된 값을보고합니까, 아니면 모든 것을 잘못 이해했기 때문에 성능이 저하됩니까?

  1. http://www.storagereview.com/seagate_barracuda_3tb_review_1tb_platters_st3000dm001
  2. http://ubuntuforums.org/showthread.php?t=1536933&p=9754234#post9754234
  3. http://wdc.custhelp.com/app/answers/detail/a_id/5655

이 Seagte 드라이브와 WD 및 Fujitsu / HGST 3TB 드라이브가 몇 개 있으며 모두 문제없이 작동합니다. 현재 USB를 통해 연결된 Seagate Seagate는 GParted에서 4096 섹터 크기로 표시되므로 GParted에 대해 맞을 수도 있습니다. 내 GParted 버전은 0.12.1이며 quantal의 기본값입니다.
LiveWireBT

USB를 통해 연결하면 4096도 표시됩니다. USB-SATA 컨트롤러에는 약간의 마술이 있습니다.
qwazix

답변:


5

512 바이트를보고합니다. 이는 구형 OS (Windows)와의 하위 호환성을위한 논리 섹터 크기이기 때문입니다. (g) parted는 파티션을 1MiB로 정렬하는데, 이는 4k 물리 섹터를 사용하는 드라이브에서 제대로 작동하기에 충분하므로 원래의 상태입니다.


11

첫째, 대부분의 Advanced Format 드라이브 는 실제 섹터 크기가 4096 바이트 (4KiB) 이지만 논리 섹터 크기는 512 바이트 입니다. 이는 드라이브 펌웨어의 데이터 저글링을 통해 수행 되며 파티션이 올바르게 정렬되지 않으면 성능 문제가 발생할 수 있습니다 . 그러나 이것이 문제의 원인이 아니며 파티션 정렬에 대한 초점이 잘못되었습니다. (확실히 파티션 정렬 중요합니다. 문제의 원인은 아닙니다.)

내 직감은 (그와는 이다직감은 USB 인클로저와 디스크의 직접 연결 간 전환으로 인해 문제가 발생한다는 것입니다. 일부 인클로저는 디스크의 512 바이트 논리 섹터를 컴퓨터에 표시되는 4096 바이트 논리 섹터로 변환합니다. 즉, 고급 형식 디스크의 펌웨어와 반대입니다. 나는 긍정적이지는 않지만 일부 인클로저는 2TiB 이상의 디스크에서만이 작업을 수행한다고 생각합니다. MBR 및 GPT 파티션 구성표는 모두 섹터 번호로 데이터를 참조하므로 섹터 크기를 변경하면 파티션 데이터가 무효화됩니다. 따라서 이러한 방식으로 변환되는 USB 인클로저에서 디스크를 준비한 다음 디스크를 직접 사용하거나 그 반대로 사용하려고하면 파티션 (및 GPT 백업 데이터)이 작동하지 않기 때문에 오류가 표시됩니다 컴퓨터가 기대하는 곳. 눈가리개를 한 사람에게 "

이 문제에 대한 해결책은 준비하고있는 디스크를 사용하는 - 방법 중 하나 는 USB 인클로저를 사용 하거나 직접 연결, 둘 모두를 사용합니다. 어떤 이유로 든 둘 다 필요한 경우이 유형의 변환을 적용하지 않고 작동하는 인클로저를 찾아야합니다.

내 가설을 테스트하기 위해 논리 섹터 크기 parted를보고 하는 도구 (예 :)를 사용할 수 있습니다 . 예를 들어 :

sudo parted /dev/sda print
Model: ATA Hitachi HDP72505 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B

이 출력에서 ​​많은 정보를 생략했습니다. 중요한 세부 사항은 여기에 표시된 마지막 줄에 있습니다. 논리 및 물리 섹터 크기는 모두 512 바이트입니다. 이 테스트를 실행 한 다음 다른 방법으로 디스크를 다시 연결하고 다시 실행하면 결과를 비교할 수 있습니다. 디스크를 연결하는 방법에 따라 논리 섹터 크기가 변경되면 내 가설이 정확하고 문제의 원인이됩니다. 아니면 적어도 하나의 문제입니다. 다른 사람들도있을 수 있습니다. 특히 Error synchronizing after initial wipe언급 한 오류는 다른 문제를 나타낼 수 있습니다. OTOH, 그 부작용은parted디스크 끝에서 백업 GPT 데이터를 읽으려고합니다. 어느 쪽이든 논리 섹터 크기가 변경되면 다른 문제를 처리하기 전에 해당 문제를 해결해야합니다. 디스크를 다시 분할하려고하지만 Error synchronizing오류로 인해 문제가 발생하면 GParted 대신 gdisk또는 cgdisk( gdisk패키지에서) parted사용하십시오. gdisk가족은보다 오류에 대한 더 강력 parted가족.


문제는 USB와 내부 간 전환 때문이라고 생각합니다. 실제로 그것은 나의 초기 생각이었고 그래서 디스크를 다시 PC에 넣고 sata와 연결 한 후 파티션 테이블 다시 만들었습니다 . (데이터를 꺼내기 위해 처음부터 가져 왔습니다). USB를 통해보고 된 논리 섹터를 테스트하기 위해 다시 제거하고 싶지 않지만 모든 사실이 이것을 제안합니다.
qwazix

SATA 인터페이스에서 준비된 상태에서 인터페이스를 계속 스위칭하지 않으려 고합니다. 나는 당신이 언급 한 성능 불이익에 대해 걱정하고 있으며 실제로 일어나는 일을 이해하고 싶습니다. parted /dev/sdb print반환 512/4096은 gparted를가 @LiveWireBT가 위와 같이 당신의 직감을 확인도 (USB를 통해 연결) 같은 디스크 4096을보고 이유를 설명 논리 섹터 크기를보고하는 것 같다 있도록.
qwazix

Verbatim Store'n'Go 외장 드라이브와 동일한 문제가 발생하면 논리 섹터 크기는 512이고 실제 크기는 4096입니다.
gaborous

4

고급 형식 드라이브를 지원하기 위해 Linux 커널과 유틸리티가 모두 변경되었습니다. 이러한 변경으로 Advanced Format 드라이브의 모든 파티션이 4K 섹터 경계에 올바르게 정렬됩니다. Advanced Format 드라이브에 대한 커널 지원은 커널 버전 2.6.31 이상에서 사용할 수 있습니다. 고급 포맷 드라이브 분할 및 포맷 지원은 다음 Linux 유틸리티에서 사용할 수 있습니다.

Fdisk : GNU Fdisk는 하드 드라이브를 분할하는 명령 줄 유틸리티입니다. 버전 1.2.3 이상은 고급 형식 드라이브를 지원합니다.

Parted : GNU Parted는 하드 드라이브 파티션을위한 그래픽 유틸리티입니다. 버전 2.1 이상은 고급 형식 드라이브를 지원합니다.

4K 네이티브 (4Kn) 디스크의 논리 섹터 크기는 4KB입니다. 최신 운영 체제는 이러한 디스크에 데이터를 저장할 수 있지만 일반적으로 이러한 디스크에서 부팅 할 수는 없습니다. 이 디스크는 일반적으로 USB 연결이있는 외부 드라이브입니다.

미디어 저장 장치로 사용되는 파티션을 만들려면 키보드에서 Ctrl+ Alt+ T를 눌러 터미널을 엽니 다. 열리면 아래 명령을 실행하십시오.

sudo mkfs.ext4 -m 0 /dev/sdb1

대부분의 4k 디스크는 물리 섹터 크기가 4096 바이트이므로 플레이트에 3TB를 넣을 수 있지만 한 섹터가 512B가 될 것으로 예상되는 OS와의 호환성을 위해 여전히 512B 논리 섹터 크기가 있습니다. 섹터 크기 논리 / 물리적 512B / 4096B는 세부 사항을 인쇄하기 위해 부분적으로 print 명령을 사용하는 이유입니다. 정상입니다.

이 "변환"은 디스크 자체의 인텔리전스에 의해 수행되며 정상입니다. 그것이 작동하는 방식입니다.

BIOS에서 전체 3TB를 먼저 볼 수 없다면 디스크 크기를 제한하지 않는지 확인하십시오. 디스크를 지원하려면 BIOS 업데이트가 필요할 수 있습니다.

또한 parted를 사용하여 0에서 시작하는 파티션을 만드는 것은 실수입니다. 최적 성능을 위해 디스크의 파티션이 정렬되도록 1MiB와 동일한 섹터 2048에서 첫 번째 파티션을 시작해야합니다.

따라서 장치를 MiB로 변경하고 디스크 세부 정보를 인쇄하여 디스크 크기를 MiB로 인쇄하고 1MiB에서 시작하여 마지막 MiB에서 끝나는 마지막 파티션 또는 마지막 MiB에서 끝나는 파티션 (단일 파티션 만 원하는 경우)을 만듭니다. .

예를 들어, 3TB 디스크에는 실제로 2,861,022 MiB와 같은 것이 있어야합니다. 따라서 / dev / sdX라는 디스크 장치에서 전체 디스크에 걸쳐 단일 파티션을 만드는 것은 다음과 같습니다 (X를 올바른 문자로 바꿉니다).

sudo parted /dev/sdX
unit MiB
mklabel gpt
print (to see the total size in MiB)
mkpart primary 1 2861022
quit

디스크 크기가 MiB보다 적거나 2861022보다 작 으면 종료 위치를 조정하십시오.

그게 다야. 그런 다음 파티션에서 원하는 파일 시스템을 만듭니다.

출처 및 추가 자료

4K 섹터 드라이브 및 Linux

Linux에서 오류 확인 및 4K 드라이브 설치

우분투 포럼


답변 주셔서 감사하지만 실제로 내 질문에 대답하지 않습니다. 나는 커널이 드라이브의 섹터 크기를 인식하고 gparted 도 그것을 인식 해야한다고 생각 하지만 그렇지 않으면보고하고 그것에 대한 설명이 있거나 버그이거나 잘못된 일이 있는지 궁금합니다. .
qwazix

0

파티션을 4KB의 배수로 정렬하는 한 괜찮습니다. 4KB 물리 섹터가있는 드라이브에 대해서는 특별한 작업을 수행 할 필요가 없습니다.

오래된 파티셔닝 소프트웨어는 여러 63x512B 섹터의 파티션을 정렬했는데, 이는 드라이브에 4KB의 물리적 섹터가 4KB의 배수가 아니라 31KB 반이기 때문에 성능이 저하 될 수 있습니다.

현재 우분투에서 사용할 수있는 파티션 소프트웨어는 거의 없습니다 (어떻게 든 요청하지 않는 한). 대부분은 기본적으로 여러 1MiB (2048x512B 섹터, 256x4KB 섹터)에 정렬됩니다.

정렬하지 않으면 어떻게됩니까?

파티션을 4KB의 배수로 정렬하지 않으면 최악의 성능 저하 (작은 파일의 경우 상당한 성능 저하)가 발생합니다. 4KB 섹터가있는 드라이브는 기존 시스템과의 호환성을 위해 512B 섹터를 에뮬레이트하는 경향이 있습니다. 512B 섹터 드라이브로 취급하면 완벽하게 작동합니다. 그러나 단일 512B 영역에 쓰면 전체 4KB 섹터가 다시 작성됩니다.

따라서 성능상의 이유로 파일 시스템에서 사용하는 4KB 클러스터가 드라이브의 4KB 섹터와 정렬되도록하여 단일 클러스터 쓰기로 인해 드라이브에 두 개의 4KB 섹터를 쓸 필요가 없도록하는 것이 중요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.