Mini Howto
Subject: การแบ่งและการ format partition Harddisk
By : Dome Potikanond dome@ds90.intanon.nectec.or.th> and Pruet Boonma pruet@ds90.intanon.nectec.or.th>
Date : Apr 4,1998
Update from : Apr 3,1998 <fdisk_format_Apr_3.html>
License: สงวนลิขสิทธิ์เอกสารนี้ โดย โดม โพธิการนนท์ <dome@ds90.intanon.nectec.or.th> การเผยแพร่เอกสารนี้จะต้องอยู่ภายไต้ เงื่อนไขของ GNU General Public License เวอร์ชั่น 2.0 ที่ออกโดย Free Sofware Foundation กรุฒาอ่านรายละเอียดของ GPL ที่ <http://linux.thai.net/gpl.html>

Introduction :
ในกรณีที่ต้องการ พื้นที่สำหรับเก็บข้อมูลใหม่นั้น ถ้ามีพื้นที่เหลือใน Harddisk ลูกเดิม ก็สามารถจะ fdisl/format เพื่มได้ทันที แต่ถ้าไม่มีพื้นที่เหลือ ก็ต้องนำ Harddisk ลูกใหม่ มาต่อเพิ่มและทำการ fdisk/format ใหม่
สำหรับการ fdisk นั้น จะเป็นการกำหนดขนาดพื้นที่และชนิดของ harddisk partition ที่ใช้ในการเก็บข้อมูล และการ format นั้น จะเป็นการเตรียมพื้นที่สำหรับการเก็บข้อมูล ซึ่ง harddisk partition ที่ยังไม่ได้ format นั้นจะยังใช้ในการเก็บข้อมูลไม่ได้

Prerequire :
พื้นที่ที่เหลือใน harddisk โดยอาจจะอยู่ใน harddisk ลูกเดิม หรือว่า harddisk ที่นำมาต่อใหม่ก็ได้ โดยชื่อ device ของ harddisk นั้นจะเรียงตามลำดับดังนี้ คือ
Primary Master (harddisk ที่ต่อกับสายแพร์เส้นแรก และ set เป็น master) จะเป็น /dev/hda
Primary Slave (harddisk ที่ต่อกับสายแพร์เส้นแรก และ set เป็น slave) จะเป็น /dev/hdb
Secondary Master (harddisk ที่ต่อกับสายแพร์เส้นที่สอง และ set เป็น master) จะเป็น /dev/hdc
Secondary Slave (harddisk ที่ต่อกับสายแพร์เส้นที่สอง และ set เป็น slave) จะเป็น /dev/hdd

การ fdisk :
การ fdisk จะอาศัยโปรแกรมชื่อว่า fdisk ซึ่งจะใช้ command line ในการทำงาน และมีคำสั่งที่ใช้บ่อยดังนี้คือ
d ลบ partition ที่มีอยู่เดิม
l แสดงรายชื่อ partition ที่ fdisk รู้จัก
m แสดง หน้าจอช่วยเหลือ( help )
n เพิ่ม partition ใหม่
p แสดง partition ที่มีอยู่
q ออกจาก fdisk โดยยกเลิกการแก้ไข
t เปลี่ยนชนิดของ partition
w แก้ไข partition table และออกจาก fdisk
ซึ่งจะแสดงการทำงานต่าง ๆ ดังนี้คือ
1. การเพิ่ม partition ใหม่
ทำได้โดยใช้คำสั่ง n ดังตัวอย่าง
# fdisk
Using /dev/hda as default device!

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (535-621): 535
Last cylinder or +size or +sizeM or +sizeK ([535]-621): 621

Command (m for help):

จากตัวอย่างเป็นการสร้าง partition ใหม่ โดยเป็น primary partition ซึ่งใน Linux นั้นจะมี partition อยู่สองแบบ(สำหรับ file system แบบ EXT2) คือ primary และ extended โดยแบบ primary จะทำงานได้เร็วกว่า แต่ว่ามีได้แค่ 4 partition ดังนั้น ถ้าต้องการมากกว่า 4 partition ก็ต้องใช้แบบ extended ร่วมด้วย เมื่อเลือกชนิด partition และ หมายเลขของ partition แล้วก็ต้องกำหนดขนาดของ partition โดยมี cylinder เริ่มต้นที่ 535 โดย fdisk จะหาพื้นที่ว่างให้เอง และเมื่อกำหนด cylinder เริ่มต้นแล้ว ก็ต้องทำการกำหนด cylinder สุดท้าย หรือว่าอาจจะกำหนดขนาดก็ได้ โดยที่จะมีเครื่องหมาย + นำหน้า ถ้าเป็นการกำหนดขนาด และถ้าเป็นการกำหนดขนาดเป็น kbytes ก็จะใช้ K ตามหลัง หรือว่าถ้าเป็น Mbyte ก็จะใช้ M ตามหลังเป็นต้น
หลังจากที่ทำการเพิ่ม partition แล้ว fdisk จะ set partition type ให้เป็น Linux Native ดังนั้น ถ้าต้องการเปลี่ยนเป็น partition แบบอื่น เช่น DOS fat หรือว่า Linux swap ก็ต้องใช้คำสั่ง t ในการแก้ใขดังนี้
# fdisk
Using /dev/hda as default device!

Command (m for help): t
Partition number (1-7): 1
Hex code (type L to list codes): 82

Command (m for help):
เป็นการแก้ใข partition type ของ partition แบบ Linux Native ไปเป็นแบบ Linux Swap ซึ่งสามารถขอดูหมายเลขชนิดของ partition ได้โดยการกด L หรือว่าใช้คำสั่ง l เพื่อแสดงก็ได้
2. การลบ partition ที่มีอยู่
ทำได้โดยคำสั่ง d
# fdisk
Using /dev/hda as default device!

Command (m for help): d
Partition number (1-7): 1

Command (m for help):
ซึ่ง fdisk จะถามว่าจะลบ partition ที่เท่าไหร่ ซึ่งจะยังไม่ใช่การลบจริง ๆ กล่าวคือถ้ามีการกด q เพื่อออก ก็จะไม่มีการเปลี่ยนแปลงใด ๆ แต่ถ้ามีการกด w เพื่อออก ก็จะมีการแก้ใข partition table นั้น
3. การแสดง partition ที่มีอยู่
ทำได้โดยคำสั่ง p
#fdisk
Using /dev/hda as default device!

Command (m for help): p

Disk /dev/hda: 128 heads, 63 sectors, 621 cylinders
Units = cylinders of 8064 * 512 bytes

Device     Boot Begin Start    End     Blocks   Id  System
/dev/hda1           1     1     26     104800+  82  Linux swap
/dev/hda2          27    27    153     512064   83  Linux native
/dev/hda3         154   154    280     512064   83  Linux native
/dev/hda4         281   281    621    1374912    5  Extended
/dev/hda5         281   281    407     512032+  83  Linux native
/dev/hda6         408   408    534     512032+  83  Linux native
/dev/hda7         535   535    621     350752+  83  Linux native

Command (m for help):
โดยจะแสดงรายละเอียดของ partition table ต่าง ๆ เรียงตามลำดับ ที่สำคัญคือขนาด จะอยู่ในแถวของ Blocks หน่วยเป็น kbyte และ partition type อยู่ใน Id และ System
ข้อสังเกตุคือ ปกติ fdisk จะแก้ใข harddisk หลัก ( harddisk ที่ใช้ boot ) เท่านั้น ในกรณี ที่ต้องการแก้ไข harddisk อื่น ๆ ก็สามารถทำได้โดยการกำหนด harddisk device name ลงไปนั่นเอง เช่น
# fdisk /dev/hdb
เป็นต้น

การ format partition :
การ format partition จะใช้คำสั่ง mkfs (make file system) โดยจะต้องกำหนดชนิดของ partition ที่ต้องการ format ด้วย เช่น
# mkfs -t ext2 /dev/hdb1
เป็นการ format parition แรก ของ harddisk ที่เป็น primary slave โดย format ให้มี file system เป็นบบ EXT2 นั่นเอง
ข้อสังเกตุ คือ จะ format ได้เฉพาะ harddisk partition ที่ผ่านการ fdisk มาแล้วเท่านั้น และ partition type ก็ต้อง match กับ file system type ที่ต้องการ format ด้วย

Updated : 28 มิถุนายน 2547 / ปัญญา แสนมุข Panya Saenmuk <panya@spcom.co.th>