← สารบัญบทเรียน M8 · Storage 1 — Partition & Filesystem
M8 · หัวข้อสอบ

Storage 1: พาร์ติชัน, Filesystem & การ mount

เสียบฮาร์ดดิสก์ลูกใหม่เข้าเครื่องแล้ว… ทำไมยังเก็บไฟล์ไม่ได้? บทนี้จะพาคุณเปลี่ยน “ดิสก์เปล่าๆ ที่ไร้ประโยชน์” ให้กลายเป็นพื้นที่เก็บข้อมูลที่ใช้งานได้จริง และอยู่ถาวรแม้รีบูตเครื่อง

🌱 บทนี้เขียนเพื่อคนที่ไม่เคยแตะ Linux มาก่อนเลย

1ดิสก์เปล่าใช้งานไม่ได้ทันที

หลายคนคิดว่าพอเสียบฮาร์ดดิสก์ลูกใหม่เข้าเครื่อง ก็น่าจะเก็บไฟล์ได้เลย — แต่ความจริงไม่ใช่ ดิสก์ที่เพิ่งมาใหม่เปรียบเหมือน “ก้อนพื้นที่ดิบๆ” ที่ระบบยังไม่รู้จะเอาไปทำอะไร ต้องผ่าน 3 ขั้นตอน ก่อน ถึงจะเก็บไฟล์ได้:

💡 เปรียบเทียบให้เห็นภาพ

นึกถึงคุณซื้อ ที่ดินเปล่า มาผืนหนึ่ง:

แบ่งพาร์ติชัน = แบ่งที่ดินเป็นแปลงๆ ปักหมุดเขตให้ชัด (แปลง A, แปลง B)
สร้าง filesystem = สร้างตัวบ้าน วางผังห้อง ติดตั้งชั้นวางของในแต่ละแปลง ให้เก็บของได้จริง
mount = ทำประตู/ทางเข้าเชื่อมจากถนนหลัก (ระบบ) เข้าไปในบ้าน เพื่อให้เดินเข้าไปใช้งานได้

ถ้าไม่ทำทางเข้า (ไม่ mount) ต่อให้บ้านสวยแค่ไหน คุณก็เข้าไปเก็บของไม่ได้ — ดิสก์ก็เหมือนกัน

🎯 ทำไมบทนี้สำคัญในข้อสอบ

การสร้างพาร์ติชัน, ฟอร์แมต, และ mount ถาวรผ่าน /etc/fstab เป็นโจทย์ที่ ออกสอบเกือบทุกครั้ง และที่ร้ายกว่านั้นคือ — ถ้าทำ fstab ผิด เครื่องอาจบูตไม่ขึ้นเลย ผู้ตรวจรีบูตเครื่องแล้วเข้าไม่ได้ = คุณเสียคะแนนทั้งข้อ ดังนั้นต้องทำให้แม่นจริงๆ

2ชื่อดิสก์และพาร์ติชันใน Linux

ใน Windows ดิสก์ถูกเรียกว่า C: D: แต่ Linux เรียกดิสก์เป็น “ไฟล์” อยู่ในโฟลเดอร์ /dev (ย่อมาจาก device = อุปกรณ์) ชื่อจะเป็นแบบนี้:

/dev/sda
ดิสก์ลูกแรก (s = SCSI/SATA, a = ลูกที่ 1) — มักเป็นดิสก์ที่ลงระบบไว้
/dev/sdb
ดิสก์ลูกที่สอง (b = ลูกที่ 2) — ดิสก์ลูกใหม่ที่เราจะมาฝึกในบทนี้
/dev/vda
ดิสก์ลูกแรกบนเครื่องเสมือน (virtual machine) — v = virtual ในข้อสอบมักเจอแบบนี้
/dev/sdb1
พาร์ติชันที่ 1 ของดิสก์ sdb (ตัวเลขต่อท้าย = ลำดับพาร์ติชัน)
/dev/sdb2
พาร์ติชันที่ 2 ของดิสก์ sdb
💡 เปรียบเทียบ

คิดง่ายๆ ว่า sdb คือทั้งตึก ส่วน sdb1, sdb2 คือห้องในตึก เลขท้ายก็คือเลขห้องนั่นเอง

ดูว่าเครื่องมีดิสก์อะไรบ้าง

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

⌨️ ดูรายชื่อดิสก์ทั้งหมด
[root@server1 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda      8:0    0   20G  0 disk
├─sda1   8:1    0    1G  0 part /boot
└─sda2   8:2    0   19G  0 part /
sdb      8:16   0    5G  0 disk          ← ดิสก์ลูกใหม่ ยังว่าง ไม่มีพาร์ติชัน
lsblk“list block devices” — แสดงดิสก์และพาร์ติชันแบบต้นไม้ อ่านง่ายที่สุด
SIZEขนาดของดิสก์/พาร์ติชัน
MOUNTPOINTSถ้ามีค่า = พาร์ติชันนั้นถูก mount อยู่ ถ้าว่าง = ยังไม่ได้ใช้

สังเกตว่า sdb ยังไม่มีลูก (ไม่มี sdb1) แปลว่ายังเป็นดิสก์เปล่าที่รอเราแบ่งพาร์ติชัน อีกคำสั่งที่ใช้ดูได้ละเอียดคือ fdisk -l (ต้องเป็น root):

⌨️ ดูรายละเอียดดิสก์ทั้งหมด
[root@server1 ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Disklabel type: dos

3ตารางพาร์ติชัน: MBR vs GPT

ก่อนแบ่งพาร์ติชัน ดิสก์ต้องมี “สารบัญ” ที่จดว่ามีพาร์ติชันอะไรบ้าง อยู่ตรงไหน — เรียกว่า ตารางพาร์ติชัน (partition table) มี 2 แบบหลักที่ต้องรู้จัก:

แบบจุดเด่น / ข้อจำกัด
MBR
(dos)
แบบเก่า รองรับดิสก์สูงสุด 2 TB และมีพาร์ติชันหลัก (primary) ได้แค่ 4 อัน — fdisk เรียกมันว่า dos
GPTแบบใหม่ รองรับดิสก์ขนาดใหญ่มาก (เกิน 2 TB) และมีพาร์ติชันได้ถึง 128 อัน — เครื่องสมัยใหม่ใช้แบบนี้
💡 ในห้องสอบไม่ต้องคิดมาก

ถ้าโจทย์ไม่ได้สั่งเจาะจง ใช้ค่าตั้งต้นของเครื่องมือไปได้เลย — fdisk สร้าง MBR, ส่วน parted ถ้าจะใช้ GPT ก็สั่ง mklabel gpt ก่อน สิ่งที่สำคัญกว่าคือ “สร้างพาร์ติชันให้ได้ขนาดตามโจทย์” มากกว่าเลือกชนิดตาราง

4สร้างพาร์ติชันด้วย fdisk

fdisk เป็นเครื่องมือแบ่งพาร์ติชันแบบ “เมนูโต้ตอบ” — พิมพ์ตัวอักษรสั่งงานทีละขั้น สั่งผิดก็ยังไม่เกิดอะไรขึ้นจนกว่าจะกด w เพื่อบันทึก ดังนั้นกล้าลองได้ ตัวคำสั่งหลักที่ต้องจำ:

กดทำอะไร
pprint — ดูพาร์ติชันที่มีตอนนี้
nnew — สร้างพาร์ติชันใหม่
ddelete — ลบพาร์ติชัน
ttype — เปลี่ยนชนิดพาร์ติชัน (เช่นเปลี่ยนเป็น swap)
wwrite — บันทึกแล้วออก (ก่อนหน้านี้ยังไม่มีอะไรเปลี่ยนจริง)
qquit — ออกโดยไม่บันทึก (เผื่อทำพลาด อยากยกเลิก)
⌨️ สร้างพาร์ติชันขนาด 1GB บน /dev/sdb
[root@server1 ~]# fdisk /dev/sdb
Welcome to fdisk. Changes will remain in memory only,
until you decide to write them.

Command (m for help): n          ← สร้างใหม่
Partition type p primary / e extended
Select (default p): p             ← เลือก primary
Partition number (1-4, default 1):   ← กด Enter รับค่า default (1)
First sector (... default 2048):    ← Enter รับค่าเริ่มต้น
Last sector (...): +1G             ← พิมพ์ +1G = ขนาด 1GB
Created a new partition 1 of type 'Linux' and of size 1 GiB.

Command (m for help): p          ← ดูผลก่อนบันทึก
/dev/sdb1   2048  2099199  2097152  1G 83 Linux

Command (m for help): w          ← บันทึกจริงแล้วออก
The partition table has been altered.
+1Gวิธีบอกขนาดที่ง่ายที่สุด — ใส่ +ขนาด เช่น +500M, +1G, +2G ไม่ต้องคำนวณ sector เอง
หมายถึงกดปุ่ม Enter เพื่อรับค่าเริ่มต้น (default) ส่วนใหญ่ค่า default ใช้ได้เลย
wสำคัญที่สุด — ถ้าไม่กด w ทุกอย่างที่ทำมาจะหายไปทันทีเมื่อออกจาก fdisk

ทางเลือก: parted

parted ทำงานคล้ายกัน แต่สั่งงานเป็นบรรทัดเดียวได้ และรองรับ GPT ตรงๆ ตัวอย่างสร้าง GPT แล้วแบ่งพาร์ติชันขนาด 1GB:

⌨️ สร้างพาร์ติชันด้วย parted
[root@server1 ~]# parted /dev/sdb mklabel gpt      ← วางตารางแบบ GPT
[root@server1 ~]# parted /dev/sdb mkpart primary 1MiB 1025MiB
[root@server1 ~]# parted /dev/sdb print           ← ดูผล

mkpart primary 1MiB 1025MiB = สร้างพาร์ติชันเริ่มที่ตำแหน่ง 1MiB จบที่ 1025MiB (กว้างราว 1GB) ต่างจาก fdisk ตรงที่ parted ใช้ “ตำแหน่งเริ่ม–จบ” ไม่ใช่ขนาด

⚠️ ระวังเลือกดิสก์ผิดลูก

ก่อนสั่ง fdisk หรือ parted ให้เช็ก lsblk ทุกครั้งว่าเรากำลังทำกับ /dev/sdb จริงๆ — ถ้าเผลอไปทำกับ /dev/sda (ดิสก์ที่ลงระบบ) คุณอาจพังทั้งเครื่อง!

5แจ้ง kernel ให้รู้: partprobe

บางครั้งหลังสร้างพาร์ติชันเสร็จ ระบบ (kernel) ยัง “ไม่รู้” ว่ามีพาร์ติชันใหม่เกิดขึ้น เพราะมันยังจำตารางพาร์ติชันเดิมอยู่ในหัว ผลคือคุณจะหา /dev/sdb1 ไม่เจอ คำสั่งที่บอกให้ kernel “อ่านตารางพาร์ติชันใหม่อีกครั้ง” คือ:

⌨️ บอก kernel ให้อัปเดต
[root@server1 ~]# partprobe /dev/sdb
[root@server1 ~]# lsblk /dev/sdb
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sdb      8:16   0   5G  0 disk
└─sdb1   8:17   0   1G  0 part           ← เห็น sdb1 แล้ว!

ถ้าทำตามขั้นตอนแล้วยังไม่เห็นพาร์ติชันใหม่ — partprobe คือคำตอบ จำไว้เลยว่า “สร้างพาร์ติชันเสร็จแล้วหาไม่เจอ → partprobe”

💡 เปรียบเทียบ

เหมือนคุณแก้เบอร์โทรในสมุดโทรศัพท์ แต่เพื่อนยังจำเบอร์เก่าได้ขึ้นใจ partprobe ก็เหมือนบอกเพื่อนว่า “เปิดสมุดดูใหม่นะ เบอร์เปลี่ยนแล้ว”

6สร้าง filesystem (ฟอร์แมต)

ตอนนี้เรามีพาร์ติชัน /dev/sdb1 แล้ว แต่มันยังเป็น “ห้องเปล่าที่ไม่มีชั้นวางของ” — เก็บไฟล์ไม่ได้ ต้องวาง filesystem (ระบบจัดเก็บไฟล์) ลงไปก่อน ขั้นนี้คนทั่วไปเรียกว่า “ฟอร์แมต” คำสั่งคือตระกูล mkfs (make filesystem)

⌨️ สร้าง filesystem แบบ XFS (ค่าเริ่มต้นของ RHEL 9)
[root@server1 ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1   isize=512    agcount=4 ...
Done.

mkfs.xfs วางระบบไฟล์แบบ XFS ลงในพาร์ติชัน — XFS เป็นค่ามาตรฐานของ RHEL 9 เร็วและทนทาน เหมาะกับข้อมูลขนาดใหญ่

⌨️ หรือสร้างแบบ ext4
[root@server1 ~]# mkfs.ext4 /dev/sdb1
Creating filesystem with 262144 4k blocks ...
Filesystemใช้เมื่อไร
xfsค่าเริ่มต้นของ RHEL — ถ้าโจทย์ไม่ระบุชนิด ใช้ตัวนี้ ขยายเพิ่มได้ แต่ ลดขนาดไม่ได้
ext4ระบบไฟล์คลาสสิกที่ใช้กันกว้าง ขยายและลดขนาดได้ โจทย์มักระบุชัดถ้าต้องใช้ตัวนี้
⚠️ mkfs ลบข้อมูลเกลี้ยง

การ mkfs ทับพาร์ติชันที่มีข้อมูลอยู่ = ลบทุกอย่างในนั้นทันที และกู้คืนแทบไม่ได้ ตรวจให้แน่ใจเสมอว่ากำลัง mkfs พาร์ติชันที่ถูกต้อง (/dev/sdb1 ไม่ใช่ /dev/sda1)

7mount ชั่วคราว: ทำทางเข้า

มีบ้านมีชั้นวางของแล้ว แต่ยัง “เข้าไปไม่ได้” เพราะยังไม่มีทางเข้า — การ mount คือการผูกพาร์ติชันเข้ากับโฟลเดอร์หนึ่ง (เรียกว่า mount point) พอ mount เสร็จ ทุกอย่างที่เราเขียนลงโฟลเดอร์นั้นจะไปอยู่บนดิสก์ลูกใหม่

⌨️ mount /dev/sdb1 เข้ากับ /mnt/data
[root@server1 ~]# mkdir /mnt/data           ← สร้างโฟลเดอร์ไว้เป็นทางเข้า
[root@server1 ~]# mount /dev/sdb1 /mnt/data
[root@server1 ~]# df -h                     ← ดูว่า mount สำเร็จไหม
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       1.0G   40M  961M   5% /mnt/data   ← เห็นแล้ว = mount สำเร็จ
mkdir /mnt/dataสร้างโฟลเดอร์ว่างไว้ก่อน เพื่อใช้เป็น “จุดเข้า” (mount point)
mount A Bผูกพาร์ติชัน A (/dev/sdb1) เข้ากับโฟลเดอร์ B (/mnt/data)
df -h“disk free” — ดูพื้นที่ว่างและรายการที่ mount อยู่ (-h = แสดงหน่วยอ่านง่าย G/M)
umount /mnt/dataถอด mount ออก (สังเกตว่าสะกด umount ไม่มี n)
⚠️ mount แบบนี้ “ชั่วคราว”

การ mount ด้วยคำสั่งตรงๆ แบบนี้จะหายไปทันทีเมื่อ รีบูตเครื่อง! ถ้าอยากให้ดิสก์ติดมาทุกครั้งที่บูต ต้องไปเขียนใน /etc/fstab — ซึ่งคือหัวใจของหัวข้อถัดไป

8mount ถาวรผ่าน /etc/fstab

ไฟล์ /etc/fstab (filesystem table) คือ “รายการสั่งงาน” ที่ระบบอ่าน ทุกครั้งที่บูต เพื่อ mount ดิสก์ต่างๆ ให้อัตโนมัติ ถ้าเราเพิ่มบรรทัดที่ถูกต้องลงไป ดิสก์ลูกใหม่ก็จะ mount เองทุกครั้ง ไม่ต้องสั่งมือ

fstab มี 6 คอลัมน์

แต่ละบรรทัดในไฟล์มี 6 ช่อง คั่นด้วยช่องว่าง เรียงตามนี้:

คอลัมน์คือ
1. อุปกรณ์พาร์ติชันที่จะ mount — แนะนำให้ใช้ UUID (เดี๋ยวอธิบาย)
2. จุด mountโฟลเดอร์ที่จะให้เข้าไป เช่น /mnt/data
3. ชนิด fsชนิด filesystem เช่น xfs, ext4, swap
4. optionsตัวเลือกการ mount — ส่วนใหญ่ใช้ defaults
5. dumpเกี่ยวกับการ backup รุ่นเก่า — ใส่ 0
6. passลำดับการตรวจ filesystem ตอนบูต — root ใส่ 1, อื่นๆ ใส่ 2, swap ใส่ 0

ทำไมต้องใช้ UUID ไม่ใช่ /dev/sdb1

ชื่ออย่าง /dev/sdb1 ขึ้นอยู่กับ “ลำดับ” ที่ระบบเจอดิสก์ — ถ้าวันหนึ่งคุณเสียบดิสก์เพิ่ม หรือถอดสายสลับช่อง ดิสก์ที่เคยเป็น sdb อาจกลายเป็น sdc ผลคือ fstab ชี้ผิดที่ และ บูตไม่ขึ้น ทางแก้คือใช้ UUID — รหัสประจำตัวที่ติดกับพาร์ติชันนั้นไปตลอด ไม่เปลี่ยนตามลำดับ

💡 เปรียบเทียบ

/dev/sdb1 เหมือนเรียกคนด้วย “คนที่ยืนคนที่สองจากซ้าย” — พอมีคนมาแทรกหรือสลับที่ ก็ชี้ผิดคนทันที ส่วน UUID เหมือน “เลขบัตรประชาชน” ติดตัวคนนั้นไปตลอด ยืนตรงไหนก็เรียกถูกคน

⌨️ หา UUID ด้วย blkid
[root@server1 ~]# blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-5678-90ef-1234-567890abcdef" TYPE="xfs"

blkid แสดง UUID และชนิด filesystem ของแต่ละพาร์ติชัน เคล็ดลับห้องสอบ: ส่ง UUID เข้าไฟล์ตรงๆ ด้วย blkid /dev/sdb1 >> /etc/fstab แล้วค่อยจัดบรรทัดให้ถูก จะได้ไม่พิมพ์ UUID ยาวๆ ผิด

📄 บรรทัดที่เพิ่มลงใน /etc/fstab
# <อุปกรณ์>                                  <จุด mount>  <ชนิด> <options> <dump> <pass>
UUID=a1b2c3d4-5678-90ef-1234-567890abcdef  /mnt/data   xfs    defaults  0      2

6 ช่องเรียงครบ: UUID → จุด mount → ชนิด → options → dump → pass ตามตารางด้านบนเป๊ะ

🛑 สำคัญที่สุดของบทนี้: ทดสอบก่อนรีบูตเสมอ!

หลังแก้ /etc/fstab ห้ามรีบูตทันที ให้รันคำสั่งทดสอบก่อน:

[root@server1 ~]# systemctl daemon-reload   ← ให้ systemd อ่าน fstab ใหม่
[root@server1 ~]# mount -a                ← ลอง mount ทุกบรรทัดใน fstab

mount -a จะลอง mount ทุกบรรทัดใน fstab — ถ้า ไม่มี error ขึ้น = ปลอดภัย รีบูตได้ แต่ถ้า fstab ผิดและคุณ ไม่ทดสอบ แล้วรีบูตเลย → เครื่องจะค้างตอนบูต เข้าระบบไม่ได้ ต้องไปกู้ด้วยวิธีในบท M7 (Boot & Recovery) ซึ่งเสียเวลามาก

✅ ลำดับที่ปลอดภัย จำให้ขึ้นใจ

แก้ fstab → systemctl daemon-reloadmount -a → ดู df -h ว่าขึ้นถูก → ถ้าไม่มี error ถึงค่อยรีบูตได้อย่างมั่นใจ

9Swap — หน่วยความจำสำรองบนดิสก์

Swap คือพื้นที่บนดิสก์ที่ระบบเอามาใช้ “แทน RAM ชั่วคราว” เมื่อ RAM (หน่วยความจำหลัก) เริ่มเต็ม ระบบจะย้ายข้อมูลที่ไม่ค่อยใช้ออกมาพักไว้ที่ swap เพื่อเอา RAM ไปทำงานเร่งด่วน — ช้ากว่า RAM มาก แต่ช่วยกันไม่ให้เครื่องล่มตอนหน่วยความจำหมด

💡 เปรียบเทียบ

RAM เหมือน โต๊ะทำงาน ที่กว้างจำกัด ของที่ใช้บ่อยวางบนโต๊ะ พอโต๊ะเต็ม คุณก็เอาของที่ไม่ค่อยใช้ไปวางที่ ชั้นเก็บของหลังห้อง (swap) ก่อน — หยิบช้ากว่า แต่โต๊ะไม่รก ทำงานต่อได้

ขั้นตอนสร้าง swap คล้ายการทำ filesystem แต่ใช้คำสั่งคนละชุด สมมติเราแบ่ง /dev/sdb2 ไว้แล้ว:

⌨️ สร้างและเปิดใช้งาน swap
[root@server1 ~]# fdisk /dev/sdb   ← สร้าง sdb2 แล้วกด t เปลี่ยน type เป็น swap (รหัส 82)
[root@server1 ~]# mkswap /dev/sdb2            ← จัดเตรียมพาร์ติชันให้เป็น swap
Setting up swapspace ... UUID=f9e8d7c6-...
[root@server1 ~]# swapon /dev/sdb2            ← เปิดใช้งาน swap เดี๋ยวนี้
[root@server1 ~]# swapon --show                ← ดูว่ามี swap ทำงานอยู่ไหม
NAME      TYPE      SIZE USED PRIO
/dev/sdb2 partition   1G   0B   -2
t (ใน fdisk)เปลี่ยนชนิดพาร์ติชันเป็น Linux swap (รหัส 82 สำหรับ MBR)
mkswap“ฟอร์แมต” พาร์ติชันให้เป็น swap (เทียบได้กับ mkfs ของ filesystem ปกติ)
swaponเปิดใช้ swap ทันที / swapoff = ปิด
free -hดูภาพรวม RAM และ swap ที่ใช้อยู่ทั้งหมด
📄 บรรทัด swap ใน /etc/fstab (ให้ติดทุกครั้งที่บูต)
UUID=f9e8d7c6-...   none   swap   defaults   0   0

swap ไม่มี “จุด mount” จริง จึงใส่ช่องที่ 2 ว่า none, ชนิดเป็น swap, และ pass (ช่องสุดท้าย) ใส่ 0 เพราะไม่ต้องตรวจตอนบูต

📌 อย่าลืมทดสอบเหมือนกัน

เพิ่มบรรทัด swap ใน fstab แล้ว ทดสอบด้วย swapon -a (เปิด swap ทุกบรรทัดใน fstab) ถ้าไม่ error แล้วค่อยมั่นใจว่าจะติดตอนบูต

10ข้อผิดพลาดที่เจอบ่อย

11สรุปคำสั่งบทนี้ (Cheat Sheet)

คำสั่งทำอะไร
lsblkดูดิสก์และพาร์ติชันทั้งหมดแบบต้นไม้
fdisk -lดูรายละเอียดดิสก์
fdisk /dev/sdbเข้าเมนูแบ่งพาร์ติชัน (n สร้าง, p ดู, d ลบ, t type, w บันทึก, q ออก)
parted /dev/sdbแบ่งพาร์ติชันแบบบรรทัดเดียว / รองรับ GPT
partprobe /dev/sdbบอก kernel ให้อ่านตารางพาร์ติชันใหม่
mkfs.xfs /dev/sdb1สร้าง filesystem XFS (ค่าเริ่มต้น RHEL)
mkfs.ext4 /dev/sdb1สร้าง filesystem ext4
mount /dev/sdb1 /mnt/datamount ชั่วคราว (หายเมื่อรีบูต)
umount /mnt/dataถอด mount ออก
df -hดูพื้นที่ว่างและรายการที่ mount อยู่
blkidหา UUID และชนิด fs ของพาร์ติชัน
mount -aทดสอบ fstab — mount ทุกบรรทัด (รันก่อนรีบูตเสมอ!)
systemctl daemon-reloadให้ systemd อ่าน fstab ที่แก้ใหม่
mkswap /dev/sdb2เตรียมพาร์ติชันให้เป็น swap
swapon /dev/sdb2เปิดใช้ swap / swapoff = ปิด
swapon --showดู swap ที่ทำงานอยู่
free -hดูภาพรวม RAM และ swap
✅ จบบทนี้คุณควรทำได้

เห็นดิสก์เปล่า (lsblk) → แบ่งพาร์ติชัน (fdisk + partprobe) → สร้าง filesystem (mkfs.xfs) → mount ชั่วคราวลองดู (mount + df -h) → ทำให้ถาวรด้วย UUID ใน /etc/fstab แล้ว ทดสอบด้วย mount -a ก่อนรีบูต → และสร้าง swap ได้ครบวงจร เท่านี้คุณก็จัดการ storage พื้นฐานของ RHCSA ได้แล้ว!