คำสั่ง Linux — fdisk
fdisk เป็น command-line พาร์ทิชัน ตัวแก้ไขที่ให้คุณสร้าง แก้ไข และจัดการพาร์ติชั่นบนฮาร์ดไดรฟ์ของคอมพิวเตอร์ของคุณจากบรรทัดคำสั่ง มีเครื่องมือที่คล้ายกันอื่นๆ เช่น cfdisk และ parted แต่ fdisk เป็นเครื่องมือที่เป็นสากลมากที่สุดและน่าจะง่ายที่สุด
แม้ว่าคุณจะไม่ได้วางแผนที่จะใช้งานมันเป็นประจำ แต่ก็เป็นการดีสำหรับผู้ใช้ Linux ที่จะมีแนวคิดทั่วไปเกี่ยวกับวิธีการทำงานด้วย fdisk เนื่องจากเป็นทางเลือกที่ดีเมื่อไม่มีตัวเลือกกราฟิก และอาจมีอยู่แล้วใน Linux ของคุณ ระบบ.

แบ่งพาร์ติชั่นไดรฟ์ด้วย fdisk
คู่มือนี้จะแนะนำคุณเกี่ยวกับพื้นฐานของการแบ่งพาร์ติชั่นฮาร์ดไดรฟ์ด้วย fdisk นี่เป็นเครื่องมือที่เรียบง่ายแต่ทรงพลังที่มีตัวเลือกมากมายในการจัดการไดรฟ์ของคุณ สำหรับรายละเอียดทางเทคนิคที่สมบูรณ์ยิ่งขึ้น โปรดดูคู่มือทางเทคนิคที่ส่วนท้ายของคู่มือ
การแบ่งพาร์ติชันฮาร์ดไดรฟ์ของคุณจะลบข้อมูลทั้งหมดในนั้น อย่าลืมสำรองข้อมูลของคุณหรือทำงานกับไดรฟ์เปล่า
-
เริ่มต้นด้วยการค้นหาตำแหน่งของคุณ ฮาร์ดไดรฟ์. คุณสามารถลอง:
ls /dev.
จากนั้นลองหาว่าเป็นไดรฟ์ใด ไดรฟ์หลักของคุณน่าจะเป็น /dev/sda แต่คุณต้องแน่ใจว่า
คุณยังสามารถดูที่ /etc/fstab เพื่อดูว่าไดรฟ์ใดติดตั้งอยู่ที่ใด ถ้ามันให้หมายเลข UUID แก่คุณ คุณสามารถค้นหา UUID ของแต่ละพาร์ติชั่น และดูว่าอันไหนตรงกัน
sudo blkid /dev/sda1.x
-
ถัดไป แสดงรายการตารางพาร์ติชั่นปัจจุบันบนไดรฟ์โดยใช้ปุ่ม -l ธง. แทนที่ "/dev/sda" ด้วยไดรฟ์จริงของคุณ
sudo fdisk -l /dev/sda.js
หากคุณกำลังทำงานกับไดรฟ์เปล่า ไม่น่าจะมีอะไรมาก
-
รันคำสั่ง fdisk อีกครั้ง คราวนี้ไม่มีธง สิ่งนี้จะนำคุณเข้าสู่คอนโซล fdisk
sudo fdisk /dev/sda.js
-
เมื่อคุณอยู่ในคอนโซล fdisk คุณสามารถเริ่มทำงานกับพาร์ติชั่นของคุณได้ ขั้นแรก หากคุณต้องการแสดงรายการพาร์ติชั่นเหมือนเมื่อก่อน คุณสามารถป้อน NS กุญแจ.
NS.
-
จากนั้นใช้ NS คีย์เพื่อสร้างพาร์ติชันใหม่
NS.
-
พร้อมท์จะถามว่าคุณต้องการสร้างหลักหรือ พาร์ติชันเสริม. เลือก NS(หลัก).
NS.
-
เลือกหมายเลขพาร์ติชั่น ค่าเริ่มต้นคือ 1สำหรับพาร์ติชั่นแรก ให้ใช้อันนั้น
1.
-
จากนั้นระบบจะขอให้คุณเลือกภาคแรก อย่ากังวลมากเกินไปเกี่ยวกับเรื่องนี้ แค่กด เข้า สำหรับค่าเริ่มต้น
-
พรอมต์ถัดไปจะให้คุณเลือกขนาดของพาร์ติชั่นของคุณ คุณสามารถระบุขนาดพาร์ติชันเป็นเมกะไบต์ (M) หรือกิกะไบต์ (G) สมมติว่าคุณกำลังตั้งค่าไดรฟ์เพื่อติดตั้ง Linux 512M จะเป็นจุดเริ่มต้นที่ดีสำหรับพาร์ติชันสำหรับเริ่มระบบ
+512ม.
-
เมื่อเสร็จแล้ว คุณสามารถดูพาร์ติชั่นใหม่ของคุณได้อีกครั้งด้วยปุ่ม NS กุญแจ.
-
หากคุณวางแผนที่จะใช้พาร์ติชั่นใหม่เป็นพาร์ติชั่นสำหรับบู๊ต คุณจะต้องเปิดแฟล็กที่สามารถบู๊ตได้ ทำได้โดยการกด NS. จากนั้นหากระบบถาม ให้ป้อนหมายเลขพาร์ติชั่น หากนี่เป็นรายการเดียวในไดรฟ์ของคุณ แสดงว่าเป็น 1.
NS
1. ตอนนี้คุณสามารถสร้างพาร์ติชั่นอื่นๆ บนไดรฟ์ของคุณได้ เริ่มต้นด้วยการป้อน NS อีกครั้ง.
กด 1 อีกครั้งสำหรับพาร์ติชันหลัก
ใช้หมายเลขพาร์ติชั่นเริ่มต้น หากคุณกำลังเริ่มต้นใหม่ มันคือ 2.
ใช้ภาคแรกที่เป็นค่าเริ่มต้นด้วย มันจะเริ่มทันทีหลังจากพาร์ติชั่นก่อนหน้า กด เข้า เพื่อจะดำเนินการต่อ.
-
อีกครั้ง เลือกขนาดไดรฟ์ของคุณ หากคุณต้องการตั้งค่าพาร์ติชั่นรูทด้วยโฮมพาร์ติชั่นแยกต่างหาก บางอย่างเช่น +20G จะทำงานได้ดี หากคุณต้องการใช้พื้นที่ที่เหลืออยู่เพียงกด เข้า.
+20G.
-
ทำซ้ำขั้นตอนเหล่านี้สำหรับพาร์ติชันใหม่แต่ละพาร์ติชันที่คุณต้องการสร้างบนไดรฟ์ เสร็จแล้วกด w เพื่อเขียนตารางพาร์ติชั่นลงในไดรฟ์
ว.
-
ตอนนี้คุณสามารถใช้คำสั่ง mkfs เพื่อฟอร์แมตพาร์ติชั่นเพื่อใช้งาน สำหรับระบบ Linux ส่วนใหญ่ ระบบไฟล์ EXT4 คือสิ่งที่คุณต้องการ คุณจึงสามารถเรียกใช้ชุดคำสั่งต่อไปนี้เพื่อตั้งค่าพาร์ติชันของคุณได้ นี่ถือว่าคุณกำลังทำงานกับ /dev/sda และคุณตั้งค่าพาร์ติชั่นโฮมและรูทแยกกัน
sudo mkfs.ext4 /dev/sda1
sudo mkfs.ext4 /dev/sda2
sudo mkfs.ext4 /dev/sda3. ไดรฟ์ที่แบ่งพาร์ติชันและฟอร์แมตใหม่ของคุณพร้อมใช้งานแล้ว หากคุณได้ติดตามมา คุณสามารถติดตั้งและรันลีนุกซ์ลีนุกซ์ได้เช่น Arch Linux จากพาร์ติชั่นที่คุณเพิ่งสร้างขึ้น
Fdisk เรื่องย่อ
นี่คือรายละเอียดทางเทคนิคของ fdisk รวมถึงตัวเลือกและความสามารถ:
fdisk [-u] [-b เซกเตอร์ขนาด][-ค กระบอก] [-ชม หัว] [-NS นิกาย] อุปกรณ์
fdisk -l [-u] [อุปกรณ์ ...]
fdisk -s พาร์ทิชั่น ...
fdisk -v
Fdisk และพาร์ติชั่น
ฮาร์ดดิสก์สามารถแบ่งออกเป็นโลจิคัลดิสก์หนึ่งตัวหรือมากกว่าที่เรียกว่า พาร์ทิชัน. หมวดนี้มีอธิบายไว้ใน ตารางพาร์ทิชัน พบในเซกเตอร์ 0 ของดิสก์
ในโลก BSD มีคนพูดถึง 'disk slices' และ 'disklabel'
Linux ต้องการอย่างน้อยหนึ่งพาร์ติชั่น กล่าวคือสำหรับรูท ระบบไฟล์. มันสามารถใช้ไฟล์สว็อปและ/หรือพาร์ติชั่นสว็อปได้ แต่อย่างหลังจะมีประสิทธิภาพมากกว่า ดังนั้น โดยปกติแล้ว เราต้องการพาร์ติชั่น Linux ตัวที่สองสำหรับพาร์ติชั่นสว็อปโดยเฉพาะ
บนฮาร์ดแวร์ที่เข้ากันได้กับ Intel, the ไบออส ที่บูทระบบมักจะสามารถเข้าถึง 1024 กระบอกสูบแรกของดิสก์เท่านั้น ด้วยเหตุผลนี้ ผู้ที่มีดิสก์ขนาดใหญ่มักจะสร้างพาร์ติชั่นที่สาม ซึ่งมีขนาดใหญ่เพียงไม่กี่ MB ซึ่งมักจะติดตั้งบน /bootเพื่อจัดเก็บเคอร์เนลอิมเมจและไฟล์เสริมบางไฟล์ที่จำเป็นในขณะบู๊ต เพื่อให้แน่ใจว่า BIOS สามารถเข้าถึงสิ่งนี้ได้
อาจมีสาเหตุของความปลอดภัย ความง่ายในการดูแลและสำรองข้อมูล หรือการทดสอบ เพื่อใช้มากกว่าจำนวนพาร์ติชั่นขั้นต่ำ
Fdisk ทำงานอย่างไร
fdisk (ในรูปแบบแรกของการเรียกใช้) เป็นโปรแกรมที่ขับเคลื่อนด้วยเมนูสำหรับการสร้างและจัดการตารางพาร์ติชั่น เข้าใจตารางพาร์ติชั่นประเภท DOS และดิสก์เลเบลประเภท BSD หรือ SUN
NS อุปกรณ์ มักจะเป็นอย่างใดอย่างหนึ่งต่อไปนี้:
- /dev/hda /dev/hdb /dev/sda /dev/sdb
- (/dev/hd[a-h] สำหรับดิสก์ IDE /dev/sd[a-p] สำหรับดิสก์ SCSI /dev/ed[a-d] สำหรับดิสก์ ESDI /dev/xd[ab] สำหรับดิสก์ XT)
(ชื่ออุปกรณ์หมายถึงดิสก์ทั้งหมด)
NS พาร์ทิชัน คือ อุปกรณ์ ชื่อตามด้วยหมายเลขพาร์ติชั่น ตัวอย่างเช่น, /dev/hda1 เป็นพาร์ติชั่นแรกบนฮาร์ดดิสก์ IDE ตัวแรกในระบบ ดิสก์สามารถมีได้ถึง 15 พาร์ติชั่น ดูสิ่งนี้ด้วย/usr/src/linux/Documentation/devices.txt.
Disklabel ประเภท BSD/SUN
ฉลากดิสก์ประเภท BSD/SUN สามารถอธิบายได้ 8 พาร์ติชั่น โดยพาร์ติชั่นที่สามควรเป็นพาร์ติชั่น 'ทั้งดิสก์' อย่าเริ่มพาร์ติชั่นที่ใช้เซกเตอร์แรกของมันจริงๆ (เช่น พาร์ติชั่นสว็อป) ที่กระบอกสูบ 0 เพราะนั่นจะทำลายป้ายกำกับดิสก์
RIX/SGI-Type Disklabel
ดิสก์ป้ายกำกับประเภท IRIX/SGI สามารถอธิบายได้ 16 พาร์ติชัน โดยส่วนที่ 11 ควรเป็นพาร์ติชัน 'volume' ทั้งหมด ในขณะที่ส่วนที่เก้าควรเป็น ที่มีป้ายกำกับว่า 'ส่วนหัวของไดรฟ์ข้อมูล' ส่วนหัวของโวลุ่มจะครอบคลุมตารางพาร์ติชั่นด้วย กล่าวคือ เริ่มต้นที่บล็อกศูนย์และขยายตามค่าเริ่มต้นมากกว่าห้า กระบอกสูบ พื้นที่ที่เหลืออยู่ในส่วนหัวของไดรฟ์ข้อมูลอาจถูกใช้โดยรายการไดเรกทอรีส่วนหัว
ไม่มีพาร์ติชันใดทับซ้อนกับส่วนหัวของโวลุ่ม อย่าเปลี่ยนประเภทและสร้างระบบไฟล์ขึ้นมาเพราะคุณจะสูญเสียตารางพาร์ติชั่น ใช้ป้ายกำกับประเภทนี้เมื่อทำงานกับ Linux บนเครื่อง IRIX/SGI หรือดิสก์ IRIX/SGI ภายใต้ Linux เท่านั้น
ตารางพาร์ทิชันแบบ DOS
ตารางพาร์ติชั่นประเภท DOS สามารถอธิบายพาร์ติชั่นได้ไม่จำกัดจำนวน ในเซกเตอร์ 0 มีที่ว่างสำหรับคำอธิบายของ 4 พาร์ติชั่น (เรียกว่า 'primary') หนึ่งในนั้นอาจเป็นพาร์ติชันเสริม นี่คือกล่องที่มีโลจิคัลพาร์ติชั่น โดยมีตัวอธิบายที่พบในรายชื่อเซกเตอร์ที่เชื่อมโยง โดยแต่ละอันนำหน้าโลจิคัลพาร์ติชันที่เกี่ยวข้อง พาร์ติชั่นหลักสี่พาร์ติชั่น มีอยู่หรือไม่ก็ได้ ได้ตัวเลข 1-4 โลจิคัลพาร์ติชันเริ่มนับจาก 5
ในตารางพาร์ติชั่นชนิด DOS ออฟเซ็ตเริ่มต้นและขนาดของแต่ละพาร์ติชั่นจะถูกจัดเก็บในสองวิธี: as จำนวนเซกเตอร์ที่แน่นอน (กำหนดเป็น 32 บิต) และแบบสามสูบ/หัว/เซกเตอร์ (กำหนดใน 10+8+6 บิต) อดีตก็โอเค ด้วยเซ็กเตอร์ขนาด 512 ไบต์ สิ่งนี้จะใช้งานได้สูงสุด 2 TB หลังมีปัญหาสองประการที่แตกต่างกัน ก่อนอื่น ช่อง C/H/S เหล่านี้สามารถกรอกได้ก็ต่อเมื่อทราบจำนวนหัวและจำนวนส่วนต่อแทร็กเท่านั้น
ประการที่สอง แม้ว่าเราจะรู้ว่าตัวเลขเหล่านี้ควรเป็นเท่าใด แต่ 24 บิตที่มีอยู่ก็ยังไม่เพียงพอ DOS ใช้ C/H/S เท่านั้น Windows ใช้ทั้งสองอย่าง Linux ไม่เคยใช้ C/H/S
เรขาคณิตของดิสก์
ถ้าเป็นไปได้, fdisk จะได้รับรูปทรงเรขาคณิตของดิสก์โดยอัตโนมัติ นี่ไม่จำเป็นต้องเป็นรูปทรงของดิสก์ทางกายภาพ (อันที่จริง ดิสก์สมัยใหม่ไม่มีอะไรที่เหมือนกับเรขาคณิตทางกายภาพจริงๆ ไม่ใช่เลย สิ่งที่สามารถอธิบายได้ในรูปแบบ Cylinders/Heads/Sectors แบบง่าย) แต่เป็นรูปทรงของดิสก์ที่ MS-DOS ใช้สำหรับพาร์ติชัน ตาราง.
โดยปกติทุกอย่างเป็นไปด้วยดีตามค่าเริ่มต้น และไม่มีปัญหาหาก Linux เป็นระบบเดียวในดิสก์ อย่างไรก็ตาม หากต้องแชร์ดิสก์กับระบบปฏิบัติการอื่น คุณควรปล่อยให้ fdisk จากระบบปฏิบัติการอื่นสร้างอย่างน้อยหนึ่งพาร์ติชัน เมื่อบูทลินุกซ์ มันจะดูที่ตารางพาร์ติชั่นและพยายามอนุมานว่าเรขาคณิต (ของปลอม) อะไรที่จำเป็นสำหรับการทำงานร่วมกันที่ดีกับระบบอื่น
ตรวจสอบความสม่ำเสมอ
เมื่อใดก็ตามที่พิมพ์ตารางพาร์ติชั่น จะมีการตรวจสอบความสอดคล้องในรายการตารางพาร์ติชั่น การตรวจสอบนี้จะตรวจสอบว่าจุดเริ่มต้นและปลายทางทั้งแบบฟิสิคัลและแบบลอจิคัลเหมือนกัน และพาร์ติชั่นเริ่มต้นและสิ้นสุดที่ขอบกระบอกสูบ (ยกเว้นพาร์ติชั่นแรก)
MS-DOS บางเวอร์ชันจะสร้างพาร์ติชั่นแรกที่ไม่ได้เริ่มที่ขอบเขตของกระบอกสูบ แต่ในเซกเตอร์ที่ 2 ของกระบอกสูบแรก พาร์ติชั่นที่เริ่มต้นในกระบอกสูบ 1 ไม่สามารถเริ่มบนขอบเขตของกระบอกสูบได้ แต่สิ่งนี้ไม่น่าจะทำให้เกิดความยุ่งยาก เว้นแต่ว่าคุณจะมี OS/2 ในเครื่องของคุณ
ทำการ sync() และ a BLKRRPART ioctl() (อ่านตารางพาร์ติชั่นซ้ำจากดิสก์) ก่อนออกจากตารางเมื่ออัพเดตตารางพาร์ติชั่น เมื่อนานมาแล้ว มีความจำเป็นต้องรีบูตหลังจากใช้ fdisk ฉันไม่คิดว่าเป็นเช่นนี้อีกต่อไป การรีบูตเร็วเกินไปอาจทำให้ข้อมูลที่ยังไม่ได้เขียนสูญหาย โปรดทราบว่าทั้งเคอร์เนลและฮาร์ดแวร์ดิสก์อาจบัฟเฟอร์ข้อมูล
Dos 6.x คำเตือน
คำสั่ง DOS 6.x FORMAT จะค้นหาข้อมูลบางส่วนในส่วนแรกของพื้นที่ข้อมูลของพาร์ติชั่น และถือว่าข้อมูลนี้มีความน่าเชื่อถือมากกว่าข้อมูลในตารางพาร์ติชั่น DOS FORMAT คาดว่า DOS FDISK จะล้าง 512 ไบต์แรกของพื้นที่ข้อมูลของพาร์ติชั่นทุกครั้งที่มีการเปลี่ยนแปลงขนาด DOS FORMAT จะพิจารณาข้อมูลเพิ่มเติมนี้แม้ว่าจะให้แฟล็ก /U เราก็ถือว่านี่เป็นจุดบกพร่องใน DOS FORMAT และ DOS FDISK
สิ่งสำคัญที่สุดคือถ้าคุณใช้ cfdisk หรือ fdisk เพื่อเปลี่ยนขนาดของรายการตารางพาร์ติชั่น DOS คุณต้องใช้ dd ให้เป็นศูนย์ 512 ไบต์แรกของพาร์ติชั่นนั้นก่อนที่จะใช้ DOS FORMAT เพื่อฟอร์แมตพาร์ติชั่น ตัวอย่างเช่น หากคุณใช้ cfdisk เพื่อสร้างรายการตารางพาร์ติชั่น DOS สำหรับ /dev/hda1 ดังนั้น (หลังจากออกจาก fdisk หรือ cfdisk และรีบูตเครื่อง Linux เพื่อให้ข้อมูลตารางพาร์ติชั่นถูกต้อง) คุณจะใช้คำสั่ง "dd if=/dev/zero of=/dev/hda1 bs=512 count=1" เพื่อทำให้เป็นศูนย์ 512 .แรก ไบต์ ของพาร์ติชัน
ระวังตัวไว้ให้ดี ถ้าคุณใช้ dd คำสั่ง เนื่องจากการพิมพ์ผิดเพียงเล็กน้อยอาจทำให้ข้อมูลทั้งหมดบนดิสก์ของคุณไร้ประโยชน์
เพื่อผลลัพธ์ที่ดีที่สุด คุณควรใช้โปรแกรมตารางพาร์ติชั่นเฉพาะระบบปฏิบัติการเสมอ ตัวอย่างเช่น คุณควรสร้างพาร์ติชัน DOS ด้วยโปรแกรม DOS FDISK และ ลินุกซ์ พาร์ติชันด้วยโปรแกรม Linux fdisk หรือ Linux cfdisk
ตัวเลือก fdisk
-NS เซกเตอร์ขนาด:ระบุขนาดเซกเตอร์ของดิสก์ ค่าที่ถูกต้องคือ 512, 1024 หรือ 2048 (เมล็ดล่าสุดรู้ขนาดเซกเตอร์. ใช้เฉพาะกับเมล็ดเก่าหรือเพื่อแทนที่แนวคิดของเคอร์เนล)
-ค กระบอก:ระบุจำนวนกระบอกสูบของดิสก์ เราไม่รู้ว่าทำไมใครๆ ก็อยากจะทำเช่นนั้น
-ชม หัว:ระบุจำนวนหัวของดิสก์ (ไม่ใช่ตัวเลขจริง แต่เป็นตัวเลขที่ใช้สำหรับตารางพาร์ติชัน) ค่าที่เหมาะสมคือ 255 และ 16
-NS นิกาย:ระบุจำนวนเซกเตอร์ต่อแทร็กของดิสก์ (ไม่ใช่ตัวเลขจริง แต่เป็นตัวเลขที่ใช้สำหรับตารางพาร์ติชั่น) ค่าที่เหมาะสมคือ 63
-l:แสดงรายการตารางพาร์ติชั่นสำหรับอุปกรณ์ที่ระบุ จากนั้นออก หากไม่มีอุปกรณ์ใด ๆ ระบุไว้ใน /proc/partitions (ถ้ามี) มาใช้
-ยู:เมื่อแสดงรายการตารางพาร์ติชั่น ให้ระบุขนาดเป็นส่วนๆ แทนกระบอกสูบ
-NS พาร์ทิชัน: NS ขนาด ของพาร์ติชัน (ในบล็อก) ถูกพิมพ์บนเอาต์พุตมาตรฐาน
-v:พิมพ์หมายเลขเวอร์ชันของ fdisk โปรแกรมและออก