เรียนรู้คำสั่ง Linux - fdisk

ชื่อ

fdisk - ตัวจัดการตารางพาร์ทิชันสำหรับ Linux

สรุป

fdisk [-u] [-b sectorize ] [-C cyls ] [-H heads ] [-S sects ] อุปกรณ์

fdisk -l [-u] [ อุปกรณ์ ... ]

พาร์ทิชัน fdisks ...

fdisk -v

ลักษณะ

ฮาร์ดดิสก์สามารถแบ่งออกเป็นหนึ่งหรือมากกว่าหนึ่งแผ่นดิสก์ที่เรียกว่า พาร์ทิชัน ส่วนนี้อธิบายไว้ใน ตารางพาร์ติชันที่ พบในภาค 0 ของดิสก์

ในโลก BSD หนึ่งพูดถึง `แผ่นดิสก์ชิ้น 'และ` disklabel'

Linux ต้องการพาร์ติชันอย่างน้อยหนึ่งพาร์ติชันคือสำหรับระบบ ไฟล์ root สามารถใช้ไฟล์ swap และ / หรือ swap พาร์ทิชัน แต่หลังมีประสิทธิภาพมากขึ้น ดังนั้นปกติหนึ่งจะต้องการพาร์ทิชัน Linux ที่สองทุ่มเทเป็นพาร์ทิชัน swap บนฮาร์ดแวร์ที่เข้ากันได้กับ Intel BIOS ที่บูตระบบสามารถเข้าถึงไดร์เวอร์ 1024 กระบอกแรกของดิสก์เท่านั้น ด้วยเหตุนี้ผู้ที่มีดิสก์ขนาดใหญ่มักสร้างพาร์ติชันที่สามไว้เพียงไม่กี่เมกะไบต์ขนาดใหญ่มักจะติดตั้งบน / boot เพื่อเก็บภาพเคอร์เนลและไฟล์เสริมบางอย่างที่จำเป็นในเวลาบูตเพื่อให้แน่ใจว่าข้อมูลนี้เป็น เข้าถึง BIOS ได้ อาจมีเหตุผลด้านความปลอดภัยความง่ายในการจัดการและการสำรองข้อมูลหรือการทดสอบเพื่อใช้มากกว่าพาร์ติชันจำนวนขั้นต่ำ

แก้ปัญหาเรื่องการพิมพ์ประหยัดเวลาด้วยซอฟต์แวร์การจัดการคิวการพิมพ์

fdisk (ในรูปแบบแรกของการภาวนา) เป็นเมนูขับเคลื่อนโปรแกรมสำหรับการสร้างและการจัดการของตารางพาร์ทิชัน เข้าใจตารางพาร์ทิชัน DOS และ BSD หรือ SUN disklabels ชนิด

อุปกรณ์ นี้มักเป็น อุปกรณ์ ต่อไปนี้:

/ dev / hda / dev / hdb / dev / sda / dev / sdb

(/ dev / hd [ah] สำหรับดิสก์ IDE / dev / sd [ap] สำหรับดิสก์ SCSI / dev / ed [ad] สำหรับดิสก์ ESDI / dev / xd [ab] สำหรับดิสก์ XT) ชื่ออุปกรณ์หมายถึงทั้งดิสก์

พาร์ทิชัน เป็นชื่อ อุปกรณ์ ตามด้วยหมายเลขพาร์ทิชัน ตัวอย่างเช่น / dev / hda1 เป็นพาร์ทิชันแรกบนฮาร์ดดิสก์ IDE ตัวแรกในระบบ ดิสก์สามารถมีได้ถึง 15 พาร์ทิชัน ดูเพิ่มเติมที่ /usr/src/linux/Documentation/devices.txt

แผ่นดิสก์ชนิด BSD / SUN สามารถอธิบายถึงพาร์ติชันได้ 8 พาร์ติชันซึ่งส่วนที่สามควรเป็นพาร์ติชัน 'ดิสก์ทั้งหมด' อย่าเริ่มพาร์ติชันที่ใช้ภาคแรก (เช่นพาร์ทิชัน swap) ที่ cylinder 0 เนื่องจากจะทำลาย disklabel

ดิสก์ไลบรารีชนิด IRIX / SGI สามารถอธิบายถึง 16 พาร์ติชันซึ่งหนึ่งในสิบเอ็ดของควรเป็นพาร์ติชัน 'volume' ทั้งหมดในขณะที่ส่วนที่เก้าควรมีชื่อว่า `header volume ' ส่วนหัวของโวลุ่มจะครอบคลุมตารางพาร์ติชันด้วยเช่นกันโดยเริ่มต้นที่ศูนย์ป้องกันและขยายโดยค่าเริ่มต้นเป็นเวลาห้ากระบอกสูบ ส่วนที่เหลือในส่วนหัวของไดรฟ์ข้อมูลอาจถูกใช้โดยรายการไดเรกทอรีส่วนหัว ไม่มีพาร์ติชันที่อาจทับซ้อนกับส่วนหัวของไดรฟ์ข้อมูล ยังไม่เปลี่ยนชนิดและทำให้ระบบแฟ้มบางอย่างในนั้นเนื่องจากคุณจะสูญเสียตารางพาร์ทิชัน ใช้ป้ายกำกับประเภทนี้เฉพาะเมื่อทำงานกับ Linux บนเครื่อง IRIX / SGI หรือดิสก์ IRIX / SGI ภายใต้ Linux

ตารางพาร์ติชันชนิด DOS สามารถอธิบายได้ไม่ จำกัด จำนวนพาร์ติชัน ในภาค 0 มีที่ว่างสำหรับคำอธิบายของ 4 พาร์ติชัน (เรียกว่า `หลัก ') หนึ่งเหล่านี้อาจเป็นพาร์ทิชันขยาย; นี่คือกล่องที่มีพาร์ทิชันลอจิกที่มีตัวอธิบายที่พบในรายการที่เชื่อมโยงกันของภาคก่อนหน้านี้แต่ละพาร์ติชันลอจิกที่สอดคล้องกัน สี่พาร์ทิชันหลักปัจจุบันหรือไม่ได้รับหมายเลข 1-4 พาร์ติชันลอจิกเริ่มต้นการนับจาก 5

ในตารางพาร์ทิชันชนิด DOS ค่าเริ่มต้นและขนาดของพาร์ติชันจะถูกเก็บไว้ในสองวิธีคือเป็นจำนวนเซ็ตทรี่ที่แน่นอน (ให้ใน 32 บิต) และเป็นกระบอกสูบ / ส่วนหัว / เซ็ตเตอร์สามตัว (ให้ใน 10 + 8 + 6 บิต) ก่อนหน้านี้ทำได้ดี - 512 ไบต์จะทำงานได้ถึง 2 TB หลังมีสองปัญหาที่แตกต่างกัน ประการแรกฟิลด์ C / H / S เหล่านี้สามารถกรอกข้อมูลได้เมื่อจำนวนหัวและจำนวนเซกเตอร์ต่อแทร็กเท่านั้นที่รู้จัก ประการที่สองแม้ว่าเราจะรู้ว่าตัวเลขเหล่านี้ควรเป็นอย่างไรก็ตาม 24 บิตที่มีอยู่ไม่เพียงพอ DOS ใช้ C / H / S เท่านั้น Windows ใช้ทั้งสองระบบ Linux ไม่เคยใช้ C / H / S

ถ้าเป็นไปได้ fdisk จะได้รูปเรขาคณิตของดิสก์โดยอัตโนมัติ ไม่จำเป็นต้องมีรูปทรงเรขาคณิตของดิสก์ทางกายภาพ (แน่นอนว่าดิสก์ที่ทันสมัยไม่ค่อยมีอะไรเหมือนรูปเรขาคณิตทางกายภาพแน่นอนไม่ใช่สิ่งที่สามารถอธิบายได้ในรูปทรงกระบอก / ส่วนหัว / แบบฟอร์ม) แต่เป็นรูปทรงเรขาคณิตของดิสก์ที่ MS-DOS ใช้ สำหรับตารางพาร์ทิชัน

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

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

บางรุ่นของ MS-DOS สร้างพาร์ติชันแรกที่ไม่ได้เริ่มต้นในเขตแดนของกระบอก แต่ในภาค 2 ของกระบอกแรก พาร์ทิชันที่เริ่มต้นในกระบอกสูบ 1 ไม่สามารถเริ่มต้นได้ในขอบเขตของกระบอกสูบ แต่นี่ไม่น่าจะทำให้เกิดปัญหาเว้นแต่คุณจะมี OS / 2 ในเครื่องของคุณ

ซิงค์ () และ ioctl BLKRRPART () (ตารางพาร์ติเคิล reread จากดิสก์) จะดำเนินการก่อนที่จะออกเมื่อตารางพาร์ทิชันได้รับการปรับปรุง เมื่อนานมาแล้วจะต้องใช้รีบูตหลังจากใช้ fdisk ฉันไม่คิดว่านี่เป็นกรณีอีกต่อไปแล้ว - การรีบูตเครื่องเร็วเกินไปอาจทำให้ข้อมูลที่ไม่ได้เขียนยังสูญหาย โปรดทราบว่าทั้งเคอร์เนลและฮาร์ดแวร์ดิสก์อาจใช้ข้อมูลบัฟเฟอร์

คำเตือน Dos 6.x

คำสั่ง DOS 6.x FORMAT ค้นหาข้อมูลบางส่วนในภาคแรกของพื้นที่ข้อมูลของพาร์ติชันและถือว่าข้อมูลนี้เป็นข้อมูลที่เชื่อถือได้มากกว่าข้อมูลในตารางพาร์ติชัน DOS FORMAT คาดว่า DOS FDISK จะล้างข้อมูล 512 ไบต์แรกของพื้นที่ข้อมูลของพาร์ติชันเมื่อมีการเปลี่ยนแปลงขนาดเกิดขึ้น DOS FORMAT จะดูข้อมูลเพิ่มเติมนี้แม้ว่าจะมีการตั้งค่า / U flag ไว้ก็ตามเราถือว่าเป็นข้อผิดพลาดใน DOS FORMAT และ DOS FDISK

บรรทัดล่างคือถ้าคุณใช้ cfdisk หรือ fdisk เพื่อเปลี่ยนขนาดของรายการพาร์ทิชัน DOS ตารางจากนั้นคุณต้องใช้ dd เป็นศูนย์แรก 512 ไบต์ของพาร์ติชันนั้นก่อนที่จะใช้รูปแบบ DOS เพื่อฟอร์แมตพาร์ติชัน ตัวอย่างเช่นถ้าคุณใช้ cfdisk เพื่อสร้างรายการพาร์ติชัน DOS สำหรับ / dev / hda1 จากนั้น (หลังจากออกจาก fdisk หรือ cfdisk แล้วรีบู๊ตลินุกซ์เพื่อให้ข้อมูลตารางพาร์ติชันถูกต้อง) คุณจะใช้คำสั่ง "dd if = dev / zero of = / dev / hda1 bs = 512 count = 1 "เป็นศูนย์แรก 512 ไบต์ ของพาร์ติชัน

ระมัดระวังเป็นพิเศษ ถ้าคุณใช้คำสั่ง dd เนื่องจากการพิมพ์ผิดขนาดเล็กสามารถทำให้ข้อมูลทั้งหมดบนดิสก์ของคุณไม่มีประโยชน์

เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดคุณควรใช้โปรแกรมตารางพาร์ติชันเฉพาะระบบปฏิบัติการ ตัวอย่างเช่นคุณควรทำพาร์ติชัน DOS ด้วยโปรแกรม DOS FDISK และพาร์ติชัน Linux พร้อมกับ Linux fdisk หรือ Linux cfdisk program

ตัวเลือก

-b แบ่งเป็นกลุ่ม

ระบุขนาดเซกเตอร์ของดิสก์ ค่าที่ถูกต้องคือ 512, 1024 หรือ 2048 (เมล็ดล่าสุดทราบขนาดเซกเตอร์ใช้เฉพาะบนเมล็ดเก่าหรือเพื่อแทนที่ความคิดของเคอร์เนล)

-C cyls

ระบุจำนวนกระบอกสูบของดิสก์ ฉันไม่มีความคิดว่าทำไมใครต้องการจะทำเช่นนั้น

-H หัว

ระบุจำนวนหัวของดิสก์ (ไม่ใช่ตัวเลขทางกายภาพ แต่จำนวนที่ใช้สำหรับตารางพาร์ทิชัน) ค่าที่เหมาะสมคือ 255 และ 16

- นิกาย

ระบุจำนวนเซกเตอร์ต่อการติดตามของดิสก์ (ไม่ใช่ตัวเลขทางกายภาพแน่นอน แต่ตัวเลขที่ใช้สำหรับตารางพาร์ทิชัน) ค่าที่สมเหตุสมผลคือ 63

-l

แสดงตารางพาร์ติชันสำหรับอุปกรณ์ที่ระบุและจากนั้นออก หากไม่มีอุปกรณ์ใดที่ระบุไว้ใน / proc / พาร์ทิชัน (ถ้ามี) จะใช้

-ยู

เมื่อระบุตารางพาร์ติชันให้กำหนดขนาดในภาคแทนกระบอกสูบ

พาร์ทิชัน

ขนาด ของพาร์ทิชัน (ในบล็อก) ถูกพิมพ์ออกมาตรฐาน

-v

พิมพ์หมายเลขเวอร์ชันของโปรแกรม fdisk และออก