10 คำสั่ง fdisk เพื่อจัดการพาร์ติชันดิสก์ Linux
fdisk ย่อมาจาก “fixed disk หรือ format disk“) เป็นยูทิลิตีการจัดการดิสก์ที่ใช้บรรทัดคำสั่งที่ใช้บ่อยที่สุดสำหรับ ระบบ Linux/Unix ด้วยความช่วยเหลือของคำสั่ง fdisk คุณสามารถดู สร้าง ปรับขนาด ลบ เปลี่ยนแปลง คัดลอก และย้ายพาร์ติชันบนฮาร์ดไดรฟ์โดยใช้อินเทอร์เฟซที่ขับเคลื่อนด้วยเมนูตามข้อความที่เป็นมิตรกับผู้ใช้
เครื่องมือนี้มีประโยชน์มากในแง่ของการสร้างพื้นที่สำหรับพาร์ติชันใหม่ การจัดระเบียบพื้นที่สำหรับไดรฟ์ใหม่ การจัดระเบียบไดรฟ์เก่าใหม่ และการคัดลอกหรือย้ายข้อมูลไปยังดิสก์ใหม่ ช่วยให้คุณสร้างพาร์ติชัน หลัก ใหม่ได้สูงสุด 4 พาร์ติชัน และจำนวนพาร์ติชันแบบลอจิคัล (ขยาย) ขึ้นอยู่กับขนาดของฮาร์ดดิสก์ที่คุณมีในระบบของคุณ
บทความนี้จะอธิบาย คำสั่ง fdisk พื้นฐาน 10 ข้อเพื่อจัดการตารางพาร์ติชันในระบบที่ใช้ Linux คุณต้องเป็นผู้ใช้ รูท จึงจะรันคำสั่ง fdisk ได้ ไม่เช่นนั้น คุณจะได้รับข้อผิดพลาด “ไม่พบคำสั่ง”
1. ดูพาร์ติชั่นดิสก์ทั้งหมดใน Linux
คำสั่งพื้นฐานต่อไปนี้แสดงรายการพาร์ติชันดิสก์ที่มีอยู่ทั้งหมดบนระบบของคุณ อาร์กิวเมนต์ '-l' ย่อมาจาก (แสดงรายการพาร์ติชันทั้งหมด) ใช้กับคำสั่ง fdisk เพื่อดูพาร์ติชันที่มีอยู่ทั้งหมดบน Linux พาร์ติชั่นจะแสดงตามชื่ออุปกรณ์ ตัวอย่างเช่น: /dev/sda, /dev/sdb หรือ /dev/sdc
[[email ~]# fdisk -l
Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2624 20972857+ 83 Linux
/dev/sda3 2625 4582 15727635 83 Linux
/dev/sda4 4583 77541 586043167+ 5 Extended
/dev/sda5 4583 5887 10482381 83 Linux
/dev/sda6 5888 7192 10482381 83 Linux
/dev/sda7 7193 7845 5245191 83 Linux
/dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris
/dev/sda9 8368 77541 555640123+ 8e Linux LVM
2. ดูพาร์ติชั่นดิสก์เฉพาะใน Linux
หากต้องการดูพาร์ติชันทั้งหมดของฮาร์ดดิสก์เฉพาะให้ใช้ตัวเลือก '-l' พร้อมชื่ออุปกรณ์ ตัวอย่างเช่น คำสั่งต่อไปนี้จะแสดงพาร์ติชันดิสก์ทั้งหมดของอุปกรณ์ /dev/sda หากคุณมีชื่ออุปกรณ์ที่แตกต่างกัน ให้เขียนชื่ออุปกรณ์แบบง่ายๆ เป็น /dev/sdb หรือ /dev/sdc
[[email ~]# fdisk -l /dev/sda
Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2624 20972857+ 83 Linux
/dev/sda3 2625 4582 15727635 83 Linux
/dev/sda4 4583 77541 586043167+ 5 Extended
/dev/sda5 4583 5887 10482381 83 Linux
/dev/sda6 5888 7192 10482381 83 Linux
/dev/sda7 7193 7845 5245191 83 Linux
/dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris
/dev/sda9 8368 77541 555640123+ 8e Linux LVM
3. ตรวจสอบคำสั่ง fdisk ที่มีอยู่ทั้งหมด
หากคุณต้องการดูคำสั่งทั้งหมดที่มีสำหรับ fdisk เพียงใช้คำสั่งต่อไปนี้โดยระบุชื่อฮาร์ดดิสก์ เช่น /dev/sda ดังที่แสดงด้านล่าง คำสั่งต่อไปนี้จะให้ผลลัพธ์คล้ายกับด้านล่าง
[root@tecmint ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help):
พิมพ์ 'm' เพื่อดูรายการคำสั่งที่มีอยู่ทั้งหมดของ fdisk ซึ่งสามารถดำเนินการบนฮาร์ดดิสก์ /dev/sda หลังจากนั้น ฉันป้อน 'm' บนหน้าจอ คุณจะเห็นตัวเลือกที่มีอยู่ทั้งหมดสำหรับ fdisk ซึ่งคุณสามารถใช้บนอุปกรณ์ /dev/sda
[root@tecmint ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help):
4. พิมพ์ตารางพาร์ติชั่นทั้งหมดใน Linux
หากต้องการพิมพ์ตารางพาร์ติชันทั้งหมดของฮาร์ดดิสก์ คุณต้องอยู่ในโหมดคำสั่งของฮาร์ดดิสก์เฉพาะโดยพูดว่า /dev/sda
[root@tecmint ~]# fdisk /dev/sda
จากโหมดคำสั่ง ให้ป้อน 'p' แทน 'm' เหมือนที่เราทำก่อนหน้านี้ เมื่อฉันป้อน 'p' ระบบจะพิมพ์ตารางพาร์ติชัน /dev/sda เฉพาะ
Command (m for help): p
Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2624 20972857+ 83 Linux
/dev/sda3 2625 4582 15727635 83 Linux
/dev/sda4 4583 77541 586043167+ 5 Extended
/dev/sda5 4583 5887 10482381 83 Linux
/dev/sda6 5888 7192 10482381 83 Linux
/dev/sda7 7193 7845 5245191 83 Linux
/dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris
/dev/sda9 8368 77541 555640123+ 8e Linux LVM
Command (m for help):
5. วิธีการลบพาร์ติชันใน Linux
หากคุณต้องการลบพาร์ติชันเฉพาะ (เช่น /dev/sda9) ออกจากฮาร์ดดิสก์เฉพาะ เช่น /dev/sda คุณต้องอยู่ในโหมดคำสั่ง fdisk เพื่อทำสิ่งนี้
[root@tecmint ~]# fdisk /dev/sda
จากนั้นป้อน 'd' เพื่อลบชื่อพาร์ติชันที่กำหนดออกจากระบบ ขณะที่ฉันป้อน 'd' ระบบจะแจ้งให้ป้อนหมายเลขพาร์ติชันที่ฉันต้องการลบออกจากฮาร์ดดิสก์ /dev/sda สมมติว่าฉันป้อนหมายเลข '4' ที่นี่ จากนั้นมันจะลบดิสก์พาร์ติชันหมายเลข '4' (เช่น /dev/sda4) และแสดงว่าง พื้นที่ในตารางพาร์ทิชัน ป้อน 'w' เพื่อเขียนตารางลงดิสก์และออกหลังจากทำการเปลี่ยนแปลงตารางพาร์ติชันใหม่ การเปลี่ยนแปลงใหม่จะเกิดขึ้นหลังจากการรีบูตระบบครั้งถัดไปเท่านั้น สามารถเข้าใจได้ง่ายจากผลลัพธ์ด้านล่าง
[root@tecmint ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): d
Partition number (1-4): 4
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
You have new mail in /var/spool/mail/root
คำเตือน : โปรดใช้ความระมัดระวังในขณะที่ดำเนินการขั้นตอนนี้ เนื่องจากการใช้ตัวเลือก 'd' จะลบพาร์ติชันออกจากระบบอย่างสมบูรณ์ และอาจสูญเสียข้อมูลทั้งหมดในพาร์ติชัน
6. วิธีสร้างพาร์ติชั่นใหม่ใน Linux
หากคุณมีพื้นที่ว่างเหลือบนอุปกรณ์เครื่องใดเครื่องหนึ่งของคุณ ให้พูดว่า /dev/sda และต้องการสร้างพาร์ติชันใหม่ข้างใต้ จากนั้นคุณจะต้องอยู่ในโหมดคำสั่ง fdisk ของ /dev/sda พิมพ์คำสั่งต่อไปนี้เพื่อเข้าสู่โหมดคำสั่งของฮาร์ดดิสก์เฉพาะ
[root@tecmint ~]# fdisk /dev/sda
หลังจากเข้าสู่โหมดคำสั่ง ให้กดคำสั่ง “n” เพื่อสร้างพาร์ติชันใหม่ภายใต้ /dev/sda ที่มีขนาดเฉพาะ สิ่งนี้สามารถแสดงให้เห็นได้ด้วยความช่วยเหลือของผลลัพธ์ที่กำหนดต่อไปนี้
[root@tecmint ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
ในขณะที่สร้างพาร์ติชันใหม่ ระบบจะขอให้คุณสองตัวเลือก 'ขยาย' หรือ 'หลัก' การสร้างพาร์ติชัน กด 'e' สำหรับพาร์ติชันเสริมและ 'p' สำหรับพาร์ติชันหลัก จากนั้นระบบจะขอให้คุณป้อนอินพุตสองรายการต่อไปนี้
- หมายเลขกระบอกสูบแรกของพาร์ติชันที่จะสร้าง
- หมายเลขกระบอกสูบสุดท้ายของพาร์ติชันที่จะสร้าง (กระบอกสูบสุดท้าย +กระบอกสูบ หรือ +ขนาด)
คุณสามารถป้อนขนาดของกระบอกสูบได้โดยการเพิ่ม “+5000M” ในกระบอกสูบสุดท้าย ในที่นี้ '+' หมายถึงการเพิ่ม และ 5000M หมายถึงขนาดของพาร์ติชันใหม่ (เช่น 5000MB) โปรดจำไว้ว่าหลังจากสร้างพาร์ติชั่นใหม่ คุณควรรันคำสั่ง 'w' เพื่อแก้ไขและบันทึกการเปลี่ยนแปลงใหม่ลงในตารางพาร์ติชั่น และสุดท้ายให้รีบูทระบบของคุณเพื่อตรวจสอบพาร์ติชั่นที่สร้างขึ้นใหม่
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
7. วิธีจัดรูปแบบพาร์ติชันใน Linux
หลังจากสร้างพาร์ติชั่นใหม่แล้ว อย่าข้ามไปฟอร์แมตพาร์ติชั่นที่สร้างขึ้นใหม่โดยใช้คำสั่ง 'mkfs' พิมพ์คำสั่งต่อไปนี้ในเทอร์มินัลเพื่อฟอร์แมตพาร์ติชัน ที่นี่ /dev/sda4 คือพาร์ติชันที่สร้างขึ้นใหม่ของฉัน
[root@tecmint ~]# mkfs.ext4 /dev/sda4
8. วิธีตรวจสอบขนาดของพาร์ติชั่นใน Linux
หลังจากฟอร์แมตพาร์ติชันใหม่แล้ว ให้ตรวจสอบขนาดของพาร์ติชันนั้นโดยใช้แฟล็ก 's' (แสดงขนาดเป็นบล็อก) ด้วยคำสั่ง fdisk วิธีนี้ทำให้คุณสามารถตรวจสอบขนาดของอุปกรณ์เฉพาะใดๆ ได้
[root@tecmint ~]# fdisk -s /dev/sda2
5194304
9. วิธีแก้ไขลำดับตารางพาร์ติชั่น
หากคุณลบโลจิคัลพาร์ติชันแล้วสร้างใหม่อีกครั้ง คุณอาจสังเกตเห็นปัญหา 'พาร์ติชันไม่เรียงลำดับ' หรือข้อความแสดงข้อผิดพลาดเช่น 'รายการตารางพาร์ติชันไม่อยู่ในลำดับดิสก์ '.
ตัวอย่างเช่น เมื่อมีการลบโลจิคัลพาร์ติชันสามพาร์ติชัน เช่น (sda4, sda5 และ sda6) และสร้างพาร์ติชันใหม่ คุณอาจคาดหวังว่า ชื่อพาร์ติชันจะเป็น sda4 แต่ระบบจะสร้างมันเป็น sda5 สิ่งนี้เกิดขึ้นเนื่องจากหลังจากลบพาร์ติชั่นแล้ว พาร์ติชั่น sda7 ได้ถูกย้ายเป็น sda4 และมีการเลื่อนพื้นที่ว่างไปยังจุดสิ้นสุด
หากต้องการแก้ไขปัญหาลำดับพาร์ติชันดังกล่าว และกำหนด sda4 ให้กับพาร์ติชันที่สร้างขึ้นใหม่ ให้ออก 'x' เพื่อเข้าสู่ส่วนฟังก์ชันการทำงานเพิ่มเติม จากนั้นป้อน 'f<' คำสั่งผู้เชี่ยวชาญเพื่อแก้ไขลำดับของตารางพาร์ติชั่นดังที่แสดงด้านล่าง
[root@tecmint ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): x
Expert command (m for help): f
Done.
Expert command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
หลังจากเรียกใช้คำสั่ง 'f' อย่าลืมเรียกใช้คำสั่ง 'w' เพื่อบันทึกและออกจากโหมดคำสั่ง fdisk เมื่อแก้ไขลำดับตารางพาร์ติชันแล้ว คุณจะไม่ได้รับข้อความแสดงข้อผิดพลาดอีกต่อไป
10. วิธีปิดการใช้งาน Boot Flag (*) ของพาร์ติชั่น
ตามค่าเริ่มต้น คำสั่ง fdisk จะแสดงสัญลักษณ์การบูต (เช่น '*') ในแต่ละพาร์ติชัน หากคุณต้องการเปิดใช้งานหรือปิดใช้งานแฟล็กการบูตบนพาร์ติชันเฉพาะ ให้ทำตามขั้นตอนต่อไปนี้
[root@tecmint ~]# fdisk /dev/sda
กดคำสั่ง 'p' เพื่อดูตารางพาร์ติชันปัจจุบัน คุณจะเห็นว่ามีธงบูต (สัญลักษณ์ดอกจัน (*) เป็นสีส้ม) บน /dev/ sda1 ดังภาพด้านล่าง
[root@tecmint ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p
Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 2624 20972857+ 83 Linux
/dev/sda3 2625 4582 15727635 83 Linux
/dev/sda4 4583 77541 586043167+ 5 Extended
/dev/sda5 4583 5887 10482381 83 Linux
/dev/sda6 5888 7192 10482381 83 Linux
/dev/sda7 7193 7845 5245191 83 Linux
/dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris
/dev/sda9 8368 77541 555640123+ 8e Linux LVM
ถัดไปให้ป้อนคำสั่ง 'a' เพื่อปิดใช้งานแฟล็กการบูต จากนั้นป้อนหมายเลขพาร์ติชัน '1' เป็น (เช่น /dev/sda1) ในกรณีของฉัน . การดำเนินการนี้จะปิดใช้งานแฟล็กการบูตบนพาร์ติชัน /dev/sda1 การดำเนินการนี้จะลบเครื่องหมายดอกจัน (*)
Command (m for help): a
Partition number (1-9): 1
Command (m for help): p
Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 13 104391 83 Linux
/dev/sda2 14 2624 20972857+ 83 Linux
/dev/sda3 2625 4582 15727635 83 Linux
/dev/sda4 4583 77541 586043167+ 5 Extended
/dev/sda5 4583 5887 10482381 83 Linux
/dev/sda6 5888 7192 10482381 83 Linux
/dev/sda7 7193 7845 5245191 83 Linux
/dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris
/dev/sda9 8368 77541 555640123+ 8e Linux LVM
Command (m for help):
ฉันพยายามอย่างเต็มที่ที่จะรวมคำสั่งพื้นฐานเกือบทั้งหมดของคำสั่ง fdisk แต่ fdisk ยังมีคำสั่งผู้เชี่ยวชาญอื่นๆ มากมายที่คุณสามารถใช้ได้โดยการป้อน 'x' สำหรับข้อมูลโดยละเอียดเพิ่มเติม โปรดดูคำสั่ง 'man fdisk' จากเทอร์มินัล หากฉันพลาดคำสั่งสำคัญใด ๆ โปรดแบ่งปันกับฉันในส่วนความคิดเห็น
อ่านเพิ่มเติม :
- 12 “df” คำสั่งเพื่อตรวจสอบพื้นที่ดิสก์ใน Linux
- 10 คำสั่ง “du” ที่มีประโยชน์เพื่อค้นหาการใช้งานดิสก์ของไฟล์และไดเร็กทอรี