Bagaimana memformat hard drive sektor 4k?

12

Saya membeli hard drive Seagate ST3000DM001 3TB. Itu dijual di dalam kandang. Saya diformat ke ext4, menyalin beberapa data ke dalamnya dan kemudian saya menghapusnya dari kandang dan menghubungkannya langsung ke motherboard. Data saya tidak dapat dilihat oleh OS (melihat partisi yang tidak diketahui ~ 300GiB dan sisanya sebagai ruang kosong) jadi saya mulai membaca tentang Format Lanjutan dan> drive 2TB.

Saya menghubungkan disk dengan USB lagi, menyalin semua data, dan terhubung ke sata sekali lagi. Saya menggunakan GParted untuk membuat tabel partisi GPT (utilitas ubuntu disk tidak akan membiarkan saya dengan Error synchronizing after initial wipe: Timed out waiting for object (udisks-error-quark, 0), dibuat satu partisi 3TB Ext4 besar, meninggalkan default Align tonilai MiBdan diformat.

Drive dikenali dengan benar, dan dipasang dengan benar. File dapat disalin dari dan ke drive dengan sukses.

Namun:

Gparted menunjukkan disk memiliki sektor 512k yang saya tahu tidak benar 1

tangkapan layar gparted

saat cat /sys/block/sdb/queue/physical_block_sizemelapor4096

Saya telah menemukan beberapa laporan yang libpartedmemiliki masalah dengan sektor non-512k 2 dan 3 lainnya yang mengatakan bahwa menyelaraskan ke MiB sudah cukup.

Sebagian laporan bahwa drive disejajarkan ketika saya memilih minimal:

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

Apakah konfigurasi saya benar? Apakah saya memiliki penalti kinerja karena disk diformat dengan sektor 512k, apakah gParted melaporkan nilai-nilai salah atau saya mengerti semuanya salah?

  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
qwazix
sumber
Saya memiliki beberapa drive Seagte ini serta drive WD dan Fujitsu / HGST 3TB dan semuanya bekerja tanpa masalah. Anda mungkin benar tentang GParted, karena Seagate saya yang saat ini terhubung melalui USB muncul dengan 4096 ukuran sektor di GParted. Versi GParted saya adalah 0.12.1, standar dari kuantal.
LiveWireBT
Saya percaya bahwa itu akan menunjukkan 4096 di sini juga jika saya menghubungkannya melalui USB. Ada beberapa keajaiban di pengontrol USB-SATA di sana.
qwazix
QA yang relevan: superuser.com/questions/679725/…
qwazix

Jawaban:

5

Ini melaporkan 512 byte karena itu adalah ukuran sektor logis untuk kompatibilitas mundur dengan OS lama (Windows). (g) parted menyelaraskan partisi ke 1 MiB, yang lebih dari cukup untuk bekerja dengan baik menggunakan drive yang menggunakan sektor fisik 4k, jadi tidak masalah seperti itu.

psusi
sumber
11

Pertama, sebagian besar drive Format Lanjutan menghadirkan ukuran sektor logis 512 byte, meskipun ukuran sektor fisik 4096 byte (4KiB). Ini dilakukan melalui juggling data di firmware drive, dan ini dapat mengakibatkan masalah kinerja jika partisi tidak selaras dengan benar. Kemungkinannya, ini bukan sumber masalah Anda, dan fokus Anda pada perataan partisi salah. (Yang pasti, penyelarasan partisi itu penting; itu bukan sumber masalah Anda.)

Firasat saya (dan itu adalahhanya firasat) adalah bahwa masalah Anda hasil dari beralih antara kandang USB dan koneksi langsung dari disk. Beberapa penutup menerjemahkan sektor logis 512-byte pada disk ke dalam sektor logis 4096-byte yang disajikan ke komputer - yaitu, kebalikan dari apa yang dilakukan firmware pada disk Format Lanjutan. Saya tidak positif, tetapi saya menduga bahwa beberapa lampiran hanya melakukan ini pada disk yang melebihi 2TiB. Skema partisi MBR dan GPT merujuk pada data berdasarkan nomor sektor, jadi mengubah ukuran sektor akan membuat data partisi tidak valid. Dengan demikian, jika Anda menyiapkan disk di enklosur USB yang diterjemahkan dengan cara ini dan kemudian mencoba menggunakan disk secara langsung (atau sebaliknya), Anda akan melihat kesalahan karena partisi (dan bahkan data cadangan GPT) tidak akan di mana komputer mengharapkannya. Itu seperti memberitahu orang yang ditutup matanya untuk "

Solusi untuk masalah ini adalah menyiapkan dan menggunakan disk dengan satu cara - baik menggunakan penutup USB atau menggunakan koneksi langsung, bukan keduanya. Jika keduanya diperlukan karena alasan tertentu, Anda harus menemukan enklosur yang berfungsi tanpa menerapkan jenis terjemahan ini.

Untuk menguji hipotesis saya, Anda dapat menggunakan alat (seperti parted) yang melaporkan ukuran sektor logis . Contohnya:

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

Saya telah menghilangkan banyak informasi dari output ini. Detail penting ada di baris terakhir yang ditunjukkan di sini: Ukuran sektor logis dan fisik keduanya 512 byte. Jika Anda menjalankan tes ini, kemudian pasang kembali disk dengan cara lain dan jalankan lagi, Anda dapat membandingkan hasilnya. Jika ukuran sektor logis berubah tergantung pada bagaimana Anda memasang disk, maka hipotesis saya sudah benar dan itu adalah sumber masalah Anda. Atau setidaknya, itu satu masalah; mungkin ada yang lain juga. Secara khusus, Error synchronizing after initial wipekesalahan yang Anda sebutkan dapat mengindikasikan masalah lain. OTOH, itu bisa menjadi efek samping daripartedmencoba membaca data cadangan GPT dari luar disk. Either way, jika Anda melihat perubahan dalam ukuran sektor logis, Anda harus mengatasi masalah itu sebelum berurusan dengan hal lain. Jika Anda ingin mempartisi ulang disk tetapi memiliki masalah karena Error synchronizingkesalahan, coba gunakan gdiskatau cgdisk(dalam gdiskpaket) daripada partedatau GParted; yang gdiskkeluarga lebih kuat terhadap kesalahan daripada adalah partedkeluarga.

Rod Smith
sumber
Saya percaya bahwa masalahnya adalah karena beralih antara usb dan internal. Memang itu adalah pemikiran awal saya dan itulah sebabnya saya menciptakan kembali tabel partisi setelah meletakkan disk kembali ke pc dan terhubung dengan sata. (Saya mengambilnya di tempat pertama hanya untuk mengambil data saya). Saya tidak ingin menghapusnya lagi untuk menguji sektor logis yang dilaporkan melalui USB tetapi semua fakta menyarankan ini.
qwazix
Saya tidak bermaksud untuk terus berpindah antarmuka, disk berfungsi seperti sekarang, disiapkan di bawah koneksi SATA. Saya hanya khawatir tentang hukuman kinerja yang Anda sebutkan dan saya ingin memahami apa yang sebenarnya terjadi. parted /dev/sdb printmengembalikan 512/4096sehingga nampaknya gParted melaporkan ukuran sektor logis yang menjelaskan mengapa @LiveWireBT melihat 4096 untuk disk yang sama (terhubung melalui USB) dan juga mengkonfirmasi firasat Anda seperti di atas.
qwazix
Punya masalah yang sama dengan drive eksternal Verbatim Store'n'Go, ukuran sektor logis adalah 512 sedangkan ukuran fisik 4096.
gaborous
4

Perubahan telah dilakukan pada kernel Linux dan utilitas untuk mendukung drive Format Lanjutan. Perubahan ini memastikan bahwa semua partisi pada drive Format Lanjutan disejajarkan dengan benar pada batas sektor 4K. Dukungan kernel untuk drive Format Lanjutan tersedia dalam versi kernel 2.6.31 dan di atasnya. Dukungan untuk membagi dan memformat drive Format Lanjutan tersedia di utilitas Linux berikut:

Fdisk: GNU Fdisk adalah utilitas baris perintah yang mempartisi hard drive. Versi 1.2.3 dan di atas mendukung drive Format Lanjutan.

Parted: GNU Parted adalah utilitas grafis untuk mempartisi hard drive. Versi 2.1 dan di atas mendukung drive Format Lanjutan.

Disk 4K asli (4Kn) memiliki ukuran sektor logis 4 KB. Sistem operasi modern dapat menyimpan data pada disk ini, tetapi mereka umumnya tidak bisa boot dari disk ini. Disk ini biasanya drive eksternal dengan koneksi USB.

Untuk membuat partisi yang digunakan sebagai perangkat penyimpanan media, cukup tekan Ctrl+ Alt+ Tdi keyboard Anda untuk membuka Terminal. Saat terbuka, jalankan perintah di bawah ini:

sudo mkfs.ext4 -m 0 /dev/sdb1

Sebagian besar disk 4k memiliki ukuran sektor fisik 4096 byte sehingga 3TB dapat ditaruh di piring, tetapi mereka masih memiliki ukuran sektor logis 512B untuk kompatibilitas dengan OS yang mengharapkan satu sektor menjadi 512B. Itu sebabnya ketika Anda menggunakan perintah cetak di bagian untuk mencetak rincian, dikatakan ukuran sektor logis / fisik 512B / 4096B. Itu normal.

"Konversi" ini dilakukan oleh intelijen pada disk itu sendiri, dan itu normal. Begitulah cara kerjanya.

Jika Anda tidak dapat melihat keseluruhan 3TB, periksa terlebih dahulu di BIOS bahwa itu tidak membatasi ukuran disk. Mungkin Anda memerlukan pembaruan bios untuk mendukung disk.

Juga menggunakan parted untuk membuat partisi mulai dari 0 yang merupakan kesalahan. Anda perlu memulai partisi pertama pada sektor 2048 yang setara dengan 1MiB sehingga partisi pada disk sejajar untuk kinerja yang optimal.

Jadi, ubah unit menjadi MiB, cetak rincian disk yang juga akan mencetak ukuran disk di MiB, dan buat partisi (jika Anda hanya ingin partisi tunggal) mulai dari 1MiB dan berakhir pada MiB terakhir (atau satu sebelum yang terakhir) .

Sebagai contoh, disk 3TB seharusnya memiliki sesuatu seperti 2.861.022 MiB. Jadi membuat partisi tunggal yang mencakup seluruh disk pada perangkat disk yang disebut / dev / sdX akan seperti (ganti X dengan huruf yang benar):

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

Jika ukuran disk beberapa MiB lebih atau kurang dari 2861022 sesuaikan lokasi akhir.

Itu dia. Setelah itu buat sistem file yang Anda inginkan di partisi.

Sumber, dan bacaan ekstra

Drive sektor 4K dan Linux

Kesalahan memeriksa dan menginstal drive 4k di Linux

Forum Ubuntu

Mitch
sumber
Terima kasih atas tanggapannya, tetapi itu tidak benar-benar menjawab pertanyaan saya. Saya mengetahui bahwa kernel mengenali ukuran sektor drive dan bahwa gparted seharusnya juga mengenali itu, tetapi ia melaporkan sebaliknya dan saya ingin tahu apakah ada penjelasan untuk itu, apakah itu bug, atau jika saya telah melakukan sesuatu yang salah .
qwazix
0

Selama Anda menyelaraskan partisi Anda pada kelipatan 4KB, Anda baik-baik saja. Anda tidak harus melakukan sesuatu yang khusus untuk drive dengan sektor fisik 4KB.

Perangkat lunak partisi lama menyelaraskan partisi pada kelipatan 63x512B sektor, yang akan menghasilkan kinerja yang buruk jika drive memiliki sektor fisik 4KB karena itu adalah 31 setengah KiloBytes, BUKAN kelipatan 4KB.

Sebenarnya tidak ada perangkat lunak pemartisian yang tersedia sekarang di Ubuntu yang akan melakukan ini lagi (kecuali jika Anda secara khusus memintanya). Sebagian besar akan menyelaraskan ke kelipatan 1MiB (sektor 2048x512B, yang juga merupakan sektor 256x4KB) secara default.

Apa yang akan terjadi jika Anda tidak menyelaraskannya?

Jika Anda tidak menyelaraskan partisi ke kelipatan 4KB, yang terburuk yang akan terjadi adalah kehilangan kinerja (yang cukup signifikan untuk file kecil). Drive dengan sektor 4KB cenderung meniru sektor 512B untuk kompatibilitas dengan sistem yang ada. Jadi mereka berfungsi dengan baik jika Anda hanya memperlakukan mereka sebagai drive sektor 512B. Tetapi ketika Anda menulis ke area 512B tunggal, itu akan menulis ulang seluruh sektor 4KB.

Jadi, untuk alasan kinerja, penting untuk memastikan bahwa cluster 4KB yang Anda gunakan di sistem file Anda sejajar dengan sektor 4KB pada drive, sehingga penulisan satu cluster tidak akan menghasilkan keharusan untuk menulis dua sektor 4KB pada drive.

thomasrutter
sumber