ทำไมพาร์ติชันเริ่มต้นในเซกเตอร์ 2048 แทนที่จะเป็น 63


54

ฉันมีสองไดรฟ์ที่แบ่งพาร์ติชันเดียวกันและใช้งานสองพาร์ติชั่น RAID ในแต่ละอัน

มีคนหนึ่งเสียชีวิตและฉันเปลี่ยนมันภายใต้การรับประกันสำหรับรุ่นเดียวกัน

ในขณะที่พยายามแบ่งพาร์ติชันพาร์ติชั่นแรกจะเริ่มในภาค 2048 เท่านั้นแทนที่จะเป็น 63 ก่อนหน้านี้ ไดรฟ์มีรูปทรงเรขาคณิตที่แตกต่างกันเช่นก่อนหน้าและที่เหลือ (หัวน้อย / มากกว่ากระบอกสูบ)

ไดรฟ์เก่า:

$ 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

ไดรฟ์ที่ผลิตขึ้นใหม่ที่ได้รับจากการรับประกัน:

$ 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  ...

ทำไมถึงเป็นอย่างนั้น?


1
การส่งออกไม่ได้ระบุว่าเป็นรูปแบบ 4K Sector size (logical/physical): 512 bytes / 512 bytesไดรฟ์ขั้นสูง:
bwDraco

1
ทำไมเรื่องนี้จึงถูกลดระดับลง
bwDraco

1
ฉันไม่เห็นด้วยกับ downvote ฉันก็ไม่ทราบถึงความเข้าใจผิดที่ติดตามแนวและข้อมูลของ JdeBP นั้นมีประโยชน์และเกี่ยวข้องกับคำถามที่ถูกต้อง
Garrett

คำถามและคำตอบ releated: superuser.com/q/565577/19956 , unix.stackexchange.com/q/81556/3054
คะแนน

การใช้ดิสก์ไดรฟ์รุ่นใหม่แนะนำให้ใช้GPTซึ่ง2048เป็นเซกเตอร์เริ่มต้นตามค่าเริ่มต้น ดิสก์รุ่นเก่าอาจมีการจัดรูปแบบด้วยยูทิลิตี้รุ่นเก่าและใช้รูปแบบตารางพาร์ติชันที่ไม่ใช่ GPT สำหรับการแบ่งพาร์ทิชันใหม่ "ขั้นสูงรูปแบบ 4K" ดิสก์ใช้GPTfdiskยูทิลิตี้ สำหรับ RAID ตรวจสอบให้แน่ใจว่าใช้ประเภทfd00 Linux RAIDและติดฉลากพาร์ติชั่นของคุณอย่างเหมาะสม
TrinitronX

คำตอบ:


44

เนื่องจากดิสก์เก่าของคุณได้รับการแบ่งพาร์ติชันด้วยยูทิลิตี้เก่าเช่น Linux fdiskที่ใช้การจัดตำแหน่งแทร็กโดยใช้รูปทรงเรขาคณิตของดิสก์ปลอมทั้งหมดที่คุณเห็นรายงานและดิสก์ใหม่ของคุณถูกแบ่งพาร์ติชันโดยยูทิลิตี้ใหม่ เริ่มต้น) จัดชิดกับขอบเขต 1MiB แทน

อ่านเพิ่มเติม


7
กล่าวอีกนัยหนึ่งหมายเลขเซกเตอร์ LBA 63 สอดคล้องกับ cylinder 0, head 1, เซกเตอร์ 1 ในรูปแบบCHSซึ่งเป็นเซกเตอร์แรกที่คุณสามารถใช้ในรูปแบบ MBR อย่างไรก็ตามตัวเลข 63 ไม่สามารถหารด้วย 8 ซึ่งทำให้เกิดปัญหากับไดรฟ์ 4K ดังนั้นเครื่องมือที่ทันสมัยบางอย่างจึงเริ่มพาร์ติชันแรกที่ 2048 ซึ่งให้ความเข้ากันได้ของ GPT ในอนาคต
billc.cn

8
มีหลายครั้งที่คนหนึ่งปรารถนาจะทำเครื่องหมายความคิดเห็นโดยเฉพาะความคิดเห็นที่คนอื่นพยายามใส่ความผิดพลาดเอาไว้ในปาก บรรดา "คำอื่น ๆ" มีความไม่ถูกต้องซึ่งเป็นเหตุผลที่พวกเขาจะไม่ได้สิ่งที่ผมเขียน เซกเตอร์แรกที่หนึ่งสามารถใช้ (หลาย ๆ คนมี) สำหรับพาร์ติชันหลักที่มีตารางพาร์ติชัน MBR คือ LB # 2 หรือแม้แต่ LB # 1 หากไม่ต้องการความเข้ากันได้กับสิ่งต่าง ๆ เช่น LVM ของ IBM และการจัดตำแหน่ง 1MiB นั้นไม่เกี่ยวข้องกับความเข้ากันได้ของตารางพาร์ติชัน EFI
JdeBP

ใช่ฉันเดาว่าฉันทำผิดเกี่ยวกับส่วนแรก แต่สำหรับบิตที่สองฉันหมายความว่าถ้าคุณเริ่มต้นที่ 2048 คุณจะไม่มีปัญหาในการแปลงไดรฟ์เป็น GPT ในอนาคตดังนั้นคำว่า "ยัง" และ "อนาคต" .
billc.cn

5
นั่นยังไม่ถูกต้อง หนึ่งจะต้องไม่มีปัญหาอยู่แล้ว ทำเลขคณิต แม้แต่การจัดแนวดั้งเดิมไปยังขอบเขตแทร็ค (ปลอม) ให้พื้นที่มากกว่าเพียงพอ 60 เซกเตอร์ 512 ไบต์เหล่านั้นสามารถเก็บรายการตารางพาร์ติชัน EFI 240 รายการ อีกครั้ง: การจัดตำแหน่ง 1MiB นั้นไม่เกี่ยวข้องกับความเข้ากันได้ของตารางพาร์ติชัน EFI
JdeBP

4
fdiskไม่ใช่ "ยูทิลิตี้เก่า" แต่ได้รับการดูแลอย่างดี อย่าใช้ "รูปทรงดิสก์ปลอม" ผ่าน-c=dos(โดยค่าเริ่มต้นจะปิด!) manpage เตือนอย่างชัดเจนไม่ให้ทำเช่นนั้นเพราะ CHS นั้นตายแล้วเหมือนดิสโก้ ลิงค์ไปยังหน้า JdBP คือตาย แต่ประวัติศาสตร์ของ 1MiB (2,048 ภาค) การจัดตำแหน่งที่สามารถพบรายการวิกิพีเดียตรรกะจัดการดิสก์ เป็นหูด Windows Vista: "การใช้ขอบเขตการจัดตำแหน่ง 1-MiB ช่วยให้การแก้ไขตารางพาร์ติชันได้อย่างปลอดภัยยิ่งขึ้นด้วย Vista Disk Mgt"
David Tonhofer

36
fdisk -c=dos

คุณใช้ตารางพาร์ติชัน DOS เก่าเมื่อสร้างพาร์ติชันของคุณ เวอร์ชันที่ใหม่กว่าfdiskจะไม่ใช้โหมดความเข้ากันได้ของ DOS ตามค่าเริ่มต้น


3
คำตอบที่ยอมรับมีข้อมูลที่มีค่า แต่คำตอบนี้มีอัญมณีที่ฉันต้องการเพื่อแก้ไขปัญหาของฉัน
jcbwlkr

fdisk จะไม่ให้ฉันสร้างพาร์ติชันใหม่ที่เริ่มต้นที่เซกเตอร์ 2048 โดยไม่มีอาร์กิวเมนต์นี้ - ฉันได้First sector (3072-314572799, default 3072):
tomfanning

5
นี่เป็นสิ่งสำคัญหากคุณพยายามปรับขนาดพาร์ติชันซึ่งด้วย fdisk หมายถึงการลบและสร้างใหม่ คุณต้องการพาร์ติชันเพื่อเริ่มต้นที่เดียวกัน
mcr

ไม่ทำงานกับfdisk from util-linux 2.28: /
akostadinov

1
พบมันfdisk -c=dos -u=cylinders /dev/sdbในส่วนสำคัญ - gist.github.com/jkullick/febf46756435f1fa99dc56f00782de03
akostadinov

7

อาจจะมีประโยชน์ในการเพิ่มความคิดเห็นที่นี่ สำหรับพาร์ทิชัน LUKS ก็บอกว่าจะลบและสร้างพาร์ทิชันในสถานที่เดียวกัน cryptsetup resizeแต่มีขนาดใหญ่ก่อนที่จะเรียก แต่เมื่อคุณสร้างพาร์ติชั่นมานานแล้วพาร์ติชั่นจะเริ่มต้นที่ภาค 63 ใช้ fdisk พาร์ติชั่นจะถูกสร้างใหม่ที่ออฟเซ็ตที่ไม่ถูกต้องทำให้พาร์ทิชันหายไป

ฉันจัดการกู้คืนโดยใช้fdisk -c=dosเพื่อให้สามารถสร้างพาร์ติชันจากภาค 63 โดยไม่มีปัญหา


1

ไม่แน่ใจว่าทำไมเริ่มต้นที่ 63 ในตอนแรก แต่ตาม fdisk ขนาดเซกเตอร์ของคุณคือ 512

ดังนั้นหากคุณต้องการพาร์ติชันของคุณและจัดกลุ่มให้สอดคล้องออฟเซ็ตเริ่มต้นของคุณควรหารด้วย 512 2048 เป็นเรื่องธรรมดาในทุกวันนี้

หากคุณต้องการภาคที่ไม่ตรงแนวคุณสามารถรับ GPart เพื่อย้ายพาร์ติชั่นกลับไปที่ 63 ได้ตลอดเวลา

แก้ไข:

อ๊ะ ไม่เห็นว่าคุณมี RAID คุณควรโพสต์ RAID และขนาดแถบของคุณ


1
63 คือ 111111 ในไบนารี ไบออสของพีซีหมายเลขเซกเตอร์คือ / ถูกเข้ารหัสในหกบิตทำให้มีจำนวนสูงสุด 111111 (63) เซ็กเตอร์ต่อแทร็ค ค่าสูงสุดนี้ยังคงใช้สำหรับเรขาคณิต CHS เสมือน
Chris Reid

1

ในขณะที่ฉันรู้ว่าตอบคำถามจริงการแก้ไขปัญหาอย่างรวดเร็วสำหรับปัญหาถังแรก 63 กับ 2048 คือ:

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

(ถ้าคุณแน่ใจว่าคุณมีไดรฟ์ที่มีขนาดเท่ากัน)

จากนั้นคุณสามารถดำเนินการเพิ่มพาร์ติชั่นต่าง ๆ กลับเข้าไปใน RAID ที่คุณได้รับการร้องเรียนเกี่ยวกับพาร์ติชันที่ไม่ได้มีขนาดเท่ากันเนื่องจากความแตกต่างเริ่มต้นของถัง 63/2548 เริ่มจากขนาดพาร์ติชันในที่สุด


คุณควรอธิบายว่ามันทำอะไรปลายทางต้นทาง?
Pawel Cioch

0

ตัวเลือก 1 MiB (ขนาดบล็อกจำลอง 2048 * 512- ไบต์) เป็นตัวเลือกที่ยอดเยี่ยมสำหรับการกำหนดค่าที่เก็บฮาร์ดแวร์ต่างๆ เนื่องจากโดยทั่วไปโครงสร้างข้อมูลระบบไฟล์จะสอดคล้องกับจุดเริ่มต้นของพาร์ติชันจึงเป็นสิ่งสำคัญในการเพิ่มความเร็วในการอ่าน / เขียนของหน่วยเก็บ

ตัวอย่างเช่น:

RAID อาจใช้แถบข้อมูลตั้งแต่ขนาด 16 ถึง 256 KiB 1 MiB เป็นจำนวนเต็มจำนวนเต็มดังนั้นการเริ่มต้นพาร์ติชันที่ 1 MiB เข้ากันได้กับรุ่น RAID พื้นฐาน

SSD มักมีขนาดบล็อกการลบ 128 ถึง 256 หน้า NAND ซึ่งขึ้นอยู่กับไดรฟ์อาจเป็น 256 KiB หรือ 512 KiB ดังนั้นที่นี่อีกครั้งการเริ่มพาร์ติชันที่ 1 MiB เข้ากันได้กับคุณสมบัติการจัดเก็บ SSD พื้นฐาน

ฟอร์แมตล่วงหน้า 512e HDDs หมุนได้มีขนาดบล็อกทางกายภาพ 4 KiB และอีกครั้ง 1 MiB เป็นจำนวนเต็มหลายตัว (แม้ว่าจะค่อนข้างใหญ่)

ดังนั้นในขณะที่ถ้าคุณมีไดรฟ์ AF และแบ่งพาร์ติชันเป็น GPT คุณอาจพอใจกับพาร์ติชันแรกของคุณเริ่มต้นที่ LBA บล็อก 40 (จำนวนเต็มเต็มจำนวนของบล็อกโลจิคัล 8 บล็อกในแต่ละฟิสิคัลบล็อกของฮาร์ดดิสก์ของคุณ) พื้นที่จัดเก็บข้อมูลในโลกจะหายไปโดยเริ่มต้นที่ LBA block 2048 (1 MiB) ซึ่งเป็นค่าที่ยืดหยุ่นมากขึ้นสำหรับการแบ่งพาร์ติชันซอฟต์แวร์เป็นค่าเริ่มต้นเนื่องจากมันเหมาะสำหรับการกำหนดค่าฮาร์ดแวร์ใด ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.