Làm thế nào để định dạng ổ cứng 4k sector?


12

Tôi đã mua một ổ cứng Seagate ST3000DM001 3TB. Nó đã được bán trong một bao vây. Tôi định dạng thành ext4, sao chép một số dữ liệu vào nó và sau đó tôi gỡ nó ra khỏi vỏ và kết nối trực tiếp với bo mạch chủ. Dữ liệu của tôi không hiển thị với HĐH (nó nhìn thấy một phân vùng ~ 300GiB không xác định và phần còn lại là không gian trống) vì vậy tôi bắt đầu đọc về Định dạng Nâng cao và các ổ đĩa> 2TB.

Tôi đã kết nối lại đĩa với USB, sao chép tất cả dữ liệu và cắm lại vào sata một lần nữa. Tôi đã sử dụng gparted để tạo bảng phân vùng GPT (tiện ích đĩa Error synchronizing after initial wipe: Timed out waiting for object (udisks-error-quark, 0ub Ubuntu sẽ không cho phép tôi ), tạo một phân vùng Ext4 3Tb lớn, để lại Align togiá trị mặc định MiBvà được định dạng.

Ổ đĩa được nhận dạng chính xác, và gắn kết đúng. Tập tin có thể được sao chép từ và vào ổ đĩa thành công.

Tuy nhiên:

Gparted cho thấy đĩa có 512k sector mà tôi biết là không đúng 1

ảnh chụp màn hình

trong khi cat /sys/block/sdb/queue/physical_block_sizebáo cáo4096

Tôi đã tìm thấy một số báo cáo libpartedcó vấn đề với các phần 2 không phải 512k và các phần 3 khác nói rằng việc căn chỉnh với MiB là đủ.

Một phần báo cáo rằng ổ đĩa được căn chỉnh khi tôi chọn tối thiểu:

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

Cấu hình của tôi có đúng không? Tôi có bị phạt hiệu suất vì đĩa được định dạng với 512k sector, gParted báo cáo giá trị sai hay tôi đã hiểu toàn bộ điều sai?

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

Tôi có một vài trong số các ổ Seagte này cũng như các ổ WD và Fujitsu / HGST 3TB và tất cả đều hoạt động mà không gặp vấn đề gì. Bạn có thể đúng về GParted, bởi vì Seagate của tôi hiện đang được kết nối qua USB hiển thị với kích thước 4096 cung trong GParted. Phiên bản GParted của tôi là 0.12.1, mặc định từ định lượng.
LiveWireBT

Tôi tin rằng nó cũng sẽ hiển thị 4096 ở đây nếu tôi kết nối nó qua USB. Có một số phép thuật trong bộ điều khiển USB-SATA ở đó.
qwazix

Câu trả lời:


5

Nó báo cáo 512 byte vì đó là kích thước cung cấp logic để tương thích ngược với các HĐH cũ hơn (Windows). .


11

Đầu tiên, hầu hết các ổ Định dạng Nâng cao có kích thước cung cấp logic là 512 byte, mặc dù kích thước cung vật lý là 4096 byte (4KiB). Điều này được thực hiện thông qua việc xử lý dữ liệu trong phần sụn của ổ đĩa và nó có thể dẫn đến các vấn đề về hiệu năng nếu các phân vùng không được căn chỉnh chính xác. Tuy nhiên, rất có thể đây không phải là nguồn gốc của vấn đề của bạn và sự tập trung của bạn vào việc căn chỉnh phân vùng bị đặt sai chỗ. (Để chắc chắn, căn chỉnh phân vùng quan trọng; nó không phải là nguồn gốc của vấn đề của bạn.)

Linh cảm của tôi (và nó chỉ là một linh cảm) là vấn đề của bạn xuất phát từ việc chuyển đổi giữa vỏ USB và kết nối trực tiếp của đĩa. Một số vỏ bọc dịch các phần logic 512 byte trên đĩa thành các phần logic 4096 byte được trình bày cho máy tính - nghĩa là ngược lại với phần sụn trong đĩa Định dạng Nâng cao. Tôi không tích cực, nhưng tôi nghi ngờ rằng một số vỏ bọc chỉ làm điều này trên các đĩa trên 2TiB. Cả hai lược đồ phân vùng MBR và GPT đều đề cập đến dữ liệu theo số ngành, do đó việc thay đổi kích thước cung sẽ làm mất hiệu lực dữ liệu phân vùng. Do đó, nếu bạn chuẩn bị đĩa trong vỏ USB dịch theo cách này và sau đó thử sử dụng đĩa trực tiếp (hoặc ngược lại), bạn sẽ thấy lỗi vì các phân vùng (và thậm chí dữ liệu sao lưu GPT) sẽ không nơi máy tính mong đợi nó được. Nó giống như nói với một người bịt mắt "

Giải pháp cho vấn đề này là để chuẩn bị và sử dụng đĩa trong một cách - hoặc là sử dụng bao vây USB hoặc sử dụng kết nối trực tiếp, không phải cả hai. Nếu cả hai đều cần thiết vì một số lý do, bạn sẽ cần tìm một bao vây hoạt động mà không áp dụng loại dịch này.

Để kiểm tra giả thuyết của tôi, bạn có thể sử dụng một công cụ (như parted) báo cáo kích thước khu vực logic . Ví dụ:

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

Tôi đã bỏ qua một loạt thông tin từ đầu ra này. Chi tiết quan trọng nằm ở dòng cuối cùng được hiển thị ở đây: Kích thước khu vực logic và vật lý đều là 512 byte. Nếu bạn chạy thử nghiệm này, sau đó gắn lại đĩa theo cách khác và chạy lại, bạn có thể so sánh kết quả. Nếu kích thước khu vực logic thay đổi tùy thuộc vào cách bạn gắn đĩa, thì giả thuyết của tôi là chính xác và đó là nguồn gốc của vấn đề của bạn. Hoặc ít nhất, đó là một vấn đề; cũng có thể có người khác Cụ thể, Error synchronizing after initial wipelỗi bạn đề cập có thể chỉ ra một vấn đề khác. OTOH, đó có thể là một tác dụng phụ củapartedcố gắng đọc dữ liệu GPT sao lưu từ bên ngoài đĩa. Dù bằng cách nào, nếu bạn thấy sự thay đổi trong quy mô khu vực logic, bạn nên giải quyết vấn đề đó trước khi xử lý bất cứ điều gì khác. Nếu bạn muốn phân vùng lại đĩa nhưng gặp sự cố do Error synchronizinglỗi, hãy thử sử dụng gdiskhoặccgdisk (trong gdiskgói) thay vì partedhoặc GParted; các gdiskgia đình là mạnh mẽ hơn chống lại các lỗi hơn là partedgia đình.


Tôi tin rằng vấn đề là do chuyển đổi giữa usb và nội bộ. Quả thực đó là suy nghĩ ban đầu của tôi và đó là lý do tại sao tôi tạo lại bảng phân vùng sau khi đưa đĩa trở lại máy tính và kết nối với sata. (Tôi đã lấy nó ra ngay từ đầu chỉ để lấy dữ liệu của mình ra). Tôi không muốn xóa nó một lần nữa để kiểm tra khu vực logic được báo cáo qua USB nhưng tất cả sự thật đều cho thấy điều này.
qwazix

Tôi không có ý định tiếp tục chuyển đổi giao diện, đĩa hoạt động như hiện tại, được chuẩn bị dưới kết nối SATA. Tôi chỉ lo lắng về các hình phạt hiệu suất mà bạn đề cập và tôi muốn hiểu những gì thực sự xảy ra. parted /dev/sdb printtrả về 512/4096để có vẻ như gParted báo cáo kích thước khu vực logic giải thích tại sao @LiveWireBT thấy 4096 cho cùng một đĩa (được kết nối qua USB) và cũng xác nhận linh cảm của bạn như trên.
qwazix

Có cùng một vấn đề với một ổ đĩa ngoài Verbatim Store, kích thước khu vực logic là 512 trong khi kích thước vật lý là 4096.
gabious 12/2/2015

4

Các thay đổi đã được thực hiện cho cả nhân Linux và các tiện ích để hỗ trợ các ổ đĩa Định dạng Nâng cao. Những thay đổi này đảm bảo rằng tất cả các phân vùng trên ổ đĩa Định dạng Nâng cao được căn chỉnh chính xác trên ranh giới của khu vực 4K. Hỗ trợ kernel cho ổ đĩa Format Format có sẵn trong các phiên bản kernel 2.6.31 trở lên. Hỗ trợ chia phần và định dạng ổ đĩa Định dạng Nâng cao có sẵn trong các tiện ích Linux sau:

Fdisk: GNU Fdisk là một tiện ích dòng lệnh phân vùng ổ đĩa cứng. Phiên bản 1.2.3 trở lên hỗ trợ ổ đĩa Định dạng Nâng cao.

Parted: GNU Parted là một tiện ích đồ họa để phân vùng ổ cứng. Phiên bản 2.1 trở lên hỗ trợ ổ đĩa Định dạng Nâng cao.

Các đĩa gốc 4K (4Kn) có kích thước cung cấp logic 4 KB. Các hệ điều hành hiện đại có thể lưu trữ dữ liệu trên các đĩa này, nhưng chúng thường không thể khởi động từ các đĩa này. Các đĩa này thường là ổ đĩa ngoài có kết nối USB.

Để tạo phân vùng được sử dụng làm thiết bị lưu trữ phương tiện, chỉ cần nhấn Ctrl+ Alt+ Ttrên bàn phím để mở Terminal. Khi nó mở, chạy (các) lệnh bên dưới:

sudo mkfs.ext4 -m 0 /dev/sdb1

Hầu hết các đĩa 4k có kích thước cung cấp vật lý là 4096 byte để 3TB có thể vừa với các đĩa, nhưng chúng vẫn có kích thước cung cấp logic 512B để tương thích với các HĐH dự kiến ​​một cung là 512B. Đó là lý do tại sao khi bạn sử dụng lệnh in chia tay để in chi tiết, có nghĩa là kích thước logic / vật lý 512B / 4096B. Đó là bình thường.

Việc "chuyển đổi" này được thực hiện bởi chính trí thông minh trên đĩa và nó là bình thường. Đó là cách nó nên hoạt động.

Nếu bạn không thể thấy toàn bộ 3TB, hãy kiểm tra BIOS trước rằng nó không giới hạn kích thước đĩa. Có lẽ bạn cần cập nhật bios để hỗ trợ đĩa.

Cũng sử dụng parted để tạo phân vùng bắt đầu từ 0, đó là một sai lầm. Bạn cần bắt đầu phân chia đầu tiên trên sector 2048 tương đương với 1MiB để các phân vùng trên đĩa được căn chỉnh để có hiệu suất tối ưu.

Vì vậy, hãy thay đổi đơn vị thành MiB, in chi tiết đĩa cũng sẽ in kích thước đĩa trong MiB và tạo phân vùng (nếu bạn chỉ muốn phân vùng duy nhất) bắt đầu từ 1MiB và kết thúc ở MiB cuối cùng (hoặc một trước cuối cùng) .

Ví dụ, một đĩa 3TB nên có trong thực tế khoảng 2.861.022 MiB. Vì vậy, việc tạo một phân vùng duy nhất bao trùm toàn bộ đĩa trên một thiết bị đĩa có tên / dev / sdX sẽ như thế nào (thay thế X bằng chữ cái chính xác):

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

Nếu kích thước đĩa ít MiB nhiều hơn hoặc ít hơn 2861022, hãy điều chỉnh vị trí kết thúc.

Đó là nó. Sau đó tạo hệ thống tập tin bạn muốn trên phân vùng.

Nguồn và đọc thêm

Ổ đĩa 4K và Linux

Kiểm tra lỗi và cài đặt ổ đĩa 4k trong Linux

Diễn đàn Ubuntu


Cảm ơn đã trả lời, nhưng nó không thực sự trả lời câu hỏi của tôi. Tôi hiểu rằng kernel nhận ra kích thước sector của ổ đĩa và gparted đó cũng phải nhận ra điều đó, nhưng nó báo cáo khác và tôi tò mò liệu có giải thích cho điều đó không, nếu đó là một lỗi, hoặc nếu tôi đã làm gì đó sai .
qwazix

0

Miễn là bạn căn chỉnh các phân vùng của mình trên nhiều 4KB, bạn sẽ ổn. Bạn không phải làm bất cứ điều gì đặc biệt cho các ổ đĩa với các lĩnh vực vật lý 4KB.

Phần mềm phân vùng cũ đã căn chỉnh các phân vùng trên nhiều lĩnh vực 63x512B, điều này sẽ dẫn đến hiệu suất kém nếu ổ đĩa có các khu vực vật lý 4KB vì đó là KiloBytes 31 và một nửa, KHÔNG phải là bội số của 4KB.

Hầu như không có phần mềm phân vùng nào hiện có trong Ubuntu sẽ làm điều này nữa (trừ khi bạn đặc biệt yêu cầu phần mềm này bằng cách nào đó). Hầu hết sẽ liên kết với nhiều nhóm 1MiB (2048x512B, cũng là các ngành 256x4KB) theo mặc định.

Điều gì sẽ xảy ra nếu bạn không căn chỉnh nó?

Nếu bạn không căn chỉnh các phân vùng thành nhiều 4KB, điều tồi tệ nhất sẽ xảy ra là mất hiệu suất (một lỗi khá quan trọng đối với các tệp nhỏ). Các ổ đĩa với các lĩnh vực 4KB có xu hướng mô phỏng các lĩnh vực 512B để tương thích với các hệ thống hiện có. Vì vậy, chúng hoạt động hoàn toàn tốt nếu bạn chỉ coi chúng là ổ đĩa 512B. Nhưng khi bạn ghi vào một vùng 512B, nó sẽ viết lại toàn bộ khu vực 4KB.

Vì vậy, vì lý do hiệu suất, điều quan trọng là phải đảm bảo rằng các cụm 4KB bạn sử dụng trong hệ thống tệp của mình phù hợp với các thành phần 4KB trên ổ đĩa, do đó, một cụm ghi duy nhất sẽ không dẫn đến việc phải ghi hai cung 4KB trên ổ đĩa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.