Mengapa partisi dimulai pada sektor 2048 bukannya 63?

54

Saya punya dua drive yang dipartisi sama dan menjalankan dua partisi RAID di masing-masing.

Satu meninggal dan saya menggantinya dengan garansi untuk model yang sama.

Saat mencoba mempartisi, partisi pertama hanya dapat dimulai pada sektor 2048, bukan 63 yang sebelumnya. Drive memiliki geometri yang berbeda dengan yang sebelumnya dan yang tersisa. (Lebih sedikit kepala / lebih banyak silinder)

Drive lama:

$ sudo fdisk -c -u -l /dev/sdb 

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000aa189

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          63   174080339    87040138+  83  Linux
/dev/sdb2       174080340   182482334     4200997+  82  Linux swap / Solaris
/dev/sdb3       182482335  3907024064  1862270865   fd  Linux raid autodetect

Drive rekondisi yang diterima dari garansi:

$ sudo fdisk -c -u -l /dev/sda

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
81 heads, 63 sectors/track, 765633 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d0b5d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048  ...

Mengapa demikian?

gcb
sumber
1
Output tidak menunjukkan bahwa ini merupakan lanjutan Format 4K drive: Sector size (logical/physical): 512 bytes / 512 bytes.
bwDraco
1
Mengapa ini diturunkan?
bwDraco
1
Saya tidak setuju dengan downvote, saya juga tidak mengetahui kesalahpahaman track-alignment dan info JdeBP berguna dan relevan dengan pertanyaan yang valid.
Garrett
Pertanyaan dan jawaban yang teratasi: superuser.com/q/565577/19956 , unix.stackexchange.com/q/81556/3054 .
Poin
Menggunakan drive disk yang lebih baru, GPT direkomendasikan yang menggunakan 2048sektor mulai secara default. Disk yang lebih lama mungkin diformat dengan utilitas yang lebih lama dan menggunakan format tabel partisi non-GPT. Untuk mempartisi disk "Advanced Format 4K" yang lebih baru, gunakan GPT fdiskUtilities . Untuk RAID, pastikan untuk menggunakan tipe fd00 Linux RAIDdan label partisi Anda dengan tepat.
TrinitronX

Jawaban:

44

Karena cakram lama Anda telah dipartisi dengan utilitas lama, seperti Linux fdisk, yang tidak berguna menerapkan track-alignment menggunakan geometri cakram yang sepenuhnya palsu yang Anda lihat dilaporkan, dan cakram baru Anda telah atau sedang dipartisi oleh utilitas yang lebih baru yang (oleh default) menyelaraskan ke batas 1MiB sebagai gantinya.

Bacaan lebih lanjut

JdeBP
sumber
7
Dengan kata lain, nomor sektor LBA 63 sesuai dengan silinder 0, kepala 1, sektor 1 dalam format CHS , yang merupakan sektor pertama yang dapat Anda gunakan dalam format MBR. Namun, angka 63 tidak habis dibagi 8, yang menyebabkan masalah dengan drive 4K, sehingga beberapa alat modern memulai partisi pertama pada 2048 yang juga menyediakan kompatibilitas GPT di masa depan.
billc.cn
8
Ada saat-saat ketika seseorang merindukan cara untuk menandai komentar, terutama komentar di mana orang lain mencoba untuk menempatkan kesalahan langsung ke mulut seseorang. "Kata-kata lain" itu tidak benar , itulah sebabnya mereka bukan yang saya tulis . Sektor pertama yang dapat digunakan (seperti yang dimiliki beberapa orang) untuk partisi primer dengan tabel partisi MBR adalah LB # 2, atau bahkan LB # 1 jika seseorang tidak memerlukan kompatibilitas dengan hal-hal seperti LVM IBM. Dan penyelarasan 1MiB tidak ada hubungannya dengan kompatibilitas tabel partisi EFI.
JdeBP
Benar saya kira saya membuat kesalahan tentang bagian pertama, tetapi untuk bit kedua saya maksudkan bahwa jika Anda mulai pada 2048, Anda tidak akan memiliki masalah mengkonversi drive ke GPT di masa depan, maka kata "juga" dan "masa depan" .
billc.cn
5
Itu masih salah. Orang tidak akan memiliki masalah . Lakukan perhitungan. Bahkan penyelarasan asli ke batas trek (palsu) menyediakan lebih dari cukup ruang. 60 sektor 512-byte tersebut dapat menampung 240 entri tabel partisi EFI. Sekali lagi: Penyelarasan 1MiB tidak ada hubungannya dengan kompatibilitas tabel partisi EFI.
JdeBP
4
fdiskbukan "utilitas lama", itu dipelihara secara aktif. JANGAN gunakan "geometri disk palsu" via -c=dos(ini dinonaktifkan secara default!). Halaman manual secara eksplisit memperingatkan untuk tidak melakukan hal itu karena CHS sudah mati sebagai disko. Tautan ke halaman JdBP sudah mati, tetapi riwayat penyelarasan 1MiB (sektor 2048) dapat ditemukan pada entri Wikipedia Logical Disk Manager . Ini adalah kutil Windows Vista: "Menggunakan batas penyelarasan 1-MiB memungkinkan pengeditan tabel partisi yang lebih aman dengan Vista Disk Mgt."
David Tonhofer
36
fdisk -c=dos

Anda menggunakan tabel partisi DOS lama saat membuat partisi Anda. Versi yang lebih baru fdisktidak menggunakan mode kompatibilitas dos secara default.

Mike
sumber
3
Jawaban yang diterima memiliki beberapa informasi berharga tetapi jawaban ini memiliki permata yang saya butuhkan untuk memperbaiki masalah saya.
jcbwlkr
fdisk tidak akan membiarkan saya membuat ulang partisi yang dimulai pada sektor 2048 tanpa argumen ini - saya dapatFirst sector (3072-314572799, default 3072):
Tomfanning
5
Ini sangat penting jika Anda mencoba mengubah ukuran partisi, yang dengan fdisk berarti menghapus dan membuatnya kembali; Anda memerlukan partisi untuk memulai di tempat yang sama.
mcr
tidak lagi berfungsi dengan fdisk from util-linux 2.28: /
akostadinov
1
menemukannya fdisk -c=dos -u=cylinders /dev/sdbdi gist
gist.github.com/jkullick/febf46756435f1fa99dc56f00782de03
7

Mungkin akan bermanfaat untuk menambahkan komentar di sini. Untuk partisi LUKS, dikatakan untuk menghapus dan membuat ulang partisi di tempat yang sama, tetapi lebih besar sebelum memanggil cryptsetup resize. Tetapi ketika Anda membuat partisi Anda lama, itu mulai di sektor 63. Menggunakan fdisk, partisi akan dibuat ulang pada offset yang salah, menghasilkan partisi yang hilang.

Saya sudah berhasil memulihkannya menggunakan fdisk -c=dosuntuk dapat membuat partisi dari sektor 63, tanpa masalah.

Adrien Clerc
sumber
1

Tidak yakin mengapa ini dimulai pada 63 di tempat pertama, tetapi menurut fdisk, ukuran sektor Anda adalah 512.

Jadi, jika Anda ingin partisi Anda, dan dengan demikian klaster disejajarkan, offset awal Anda harus dapat dibagi dengan 512. 2048 cukup umum akhir-akhir ini.

Jika Anda lebih suka sektor yang tidak selaras, maka Anda selalu dapat membuat GPart untuk memindahkan partisi Anda kembali ke 63.

Sunting:

Ups. Tidak melihat bahwa Anda memiliki RAID. Anda mungkin harus memposting ukuran RAID dan stripe Anda.

surfasb
sumber
1
63 adalah 111111 dalam biner. BIOS dari PC, nomor sektor adalah / dikodekan dalam enam bit, menghasilkan jumlah maksimal 111111 (63) sektor per trek. Maksimum ini masih digunakan untuk geometri CHS virtual.
Chris Reid
1

Sementara saya menyadari bahwa pertanyaan sebenarnya telah dijawab, perbaikan cepat untuk masalah silinder pertama 63 vs 2048 adalah sesuatu seperti:

sfdisk -d /dev/sdb | sfdisk --force /dev/sda

(jika Anda yakin drive Anda memiliki ukuran yang sama)

Anda kemudian dapat melanjutkan dengan menambahkan berbagai partisi kembali ke dalam RAID di mana Anda mendapat keluhan tentang partisi tidak dengan ukuran yang sama karena perbedaan mulai silinder 63/2048 melepaskan ukuran partisi akhirnya.

Jason Byrne
sumber
Anda harus menjelaskan apa fungsinya, sumber tujuan?
Pawel Cioch
0

Pilihan 1 MiB (2048 * 512-byte emulated block size) adalah pilihan yang bagus untuk semua konfigurasi penyimpanan perangkat keras. Karena struktur data sistem file umumnya selaras dengan titik awal partisi, ini dapat menjadi penting untuk memaksimalkan kecepatan baca / tulis penyimpanan.

Sebagai contoh:

RAID dapat menggunakan strip data mulai dari ukuran 16 hingga 256 KiB. 1 MiB adalah kelipatan bilangan bulat dari ini, sehingga memulai partisi pada 1 MiB kompatibel dengan model RAID yang mendasarinya.

SSD biasanya memiliki ukuran blok hapus 128 hingga 256 halaman NAND, yang tergantung pada drive mungkin 256 KiB atau 512 KiB. Jadi di sini sekali lagi, memulai partisi pada 1 MiB kompatibel dengan karakteristik penyimpanan SSD yang mendasarinya.

Advance Format 512e spinning HDDs memiliki ukuran blok fisik 4 KiB, dan sekali lagi, 1 MiB adalah multiple integer (walaupun agak besar).

Jadi sementara jika Anda memiliki drive AF dan mempartisi sebagai GPT, Anda mungkin sangat senang dengan partisi pertama Anda mulai dari LBA blok 40 (kelipatan integer dari 8 blok logis di setiap blok fisik HDD Anda), hampir tidak ada penyimpanan dunia hilang hanya dengan mulai di blok LBA 2048 (1 MiB), yang merupakan nilai yang lebih fleksibel untuk mempartisi perangkat lunak ke standar karena cocok untuk hampir semua konfigurasi perangkat keras.

Ryan Feeley
sumber