ค้นหาเว็บไซต์

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' สำหรับพาร์ติชันหลัก จากนั้นระบบจะขอให้คุณป้อนอินพุตสองรายการต่อไปนี้

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

คุณสามารถป้อนขนาดของกระบอกสูบได้โดยการเพิ่ม “+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' จากเทอร์มินัล หากฉันพลาดคำสั่งสำคัญใด ๆ โปรดแบ่งปันกับฉันในส่วนความคิดเห็น

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

  1. 12 “df” คำสั่งเพื่อตรวจสอบพื้นที่ดิสก์ใน Linux
  2. 10 คำสั่ง “du” ที่มีประโยชน์เพื่อค้นหาการใช้งานดิสก์ของไฟล์และไดเร็กทอรี