Mount ดิสก์แบบถาวรด้วย /etc/fstab และ UUID
เมื่อเพิ่มดิสก์ใหม่ให้เซิร์ฟเวอร์และสั่ง mount ด้วยมือ ดิสก์จะใช้งานได้จนกว่าเครื่องจะรีบูต หลังจากนั้นโฟลเดอร์จะว่างเปล่าเพราะระบบไม่รู้ว่าต้อง Mount อะไร การทำให้ Mount อัตโนมัติทุกครั้งต้องเพิ่มบรรทัดในไฟล์ /etc/fstab และควรอ้างอิงดิสก์ด้วย UUID แทนชื่ออย่าง /dev/vdb1 เพราะชื่ออุปกรณ์อาจสลับกันได้เมื่อเพิ่มหรือถอดดิสก์ ขณะที่ UUID เป็นค่าประจำ Filesystem ที่ไม่เปลี่ยน
บทความนี้เริ่มจากดิสก์ที่มีพาร์ติชันแล้วหรือดิสก์ว่าง ถ้ายังไม่ได้สร้างพาร์ติชัน ดูบทความ เพิ่ม Data Disk บน Linux (fdisk) ประกอบ
สิ่งที่ต้องเตรียม
- เซิร์ฟเวอร์ Ubuntu 22.04/24.04 หรือ AlmaLinux/Rocky Linux 8-9 และสิทธิ์ sudo
- ดิสก์ที่เพิ่มเข้าเครื่องแล้ว (เห็นใน
lsblk) - ช่องทางเข้าหน้าจอ Console ของเซิร์ฟเวอร์ เผื่อกรณี fstab ผิดจนบูตไม่ขึ้น ดู การ Remote เข้า Console Server ผ่าน Web UI
ขั้นตอนที่ 1: หาดิสก์และตรวจว่ามี Filesystem หรือยัง
lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
vda
└─vda1 ext4 1.0 0b6c8f5e-... 35G 22% /
vdb
└─vdb1
ในตัวอย่าง vdb1 คือพาร์ติชันใหม่ที่ยังไม่มี Filesystem (คอลัมน์ FSTYPE และ UUID ว่าง) ถ้าเป็นดิสก์ที่มีข้อมูลเดิมอยู่แล้ว จะเห็น FSTYPE และ UUID ทันที ให้ข้ามขั้นตอนที่ 2
ขั้นตอนที่ 2: สร้าง Filesystem (เฉพาะดิสก์ใหม่)
หมายเหตุ: คำสั่ง
mkfsลบข้อมูลทั้งหมดบนพาร์ติชันที่ระบุ ห้ามรันกับพาร์ติชันที่มีข้อมูลหรือพาร์ติชันของระบบ ตรวจชื่อจากlsblk -fให้แน่ใจว่าเป็นพาร์ติชันใหม่ที่ว่าง
# ext4 (นิยมบน Ubuntu)
sudo mkfs.ext4 -L data /dev/vdb1
# XFS (ค่าเริ่มต้นของ AlmaLinux / Rocky)
sudo mkfs.xfs -L data /dev/vdb1
เลือกอย่างใดอย่างหนึ่ง ทั้งสองแบบใช้งานได้ดี ข้อต่างที่สำคัญคือ ext4 ลดขนาดได้ (แบบ Offline) ส่วน XFS ขยายได้อย่างเดียว
ขั้นตอนที่ 3: หา UUID
sudo blkid /dev/vdb1
/dev/vdb1: LABEL="data" UUID="3f1c2a7e-9b1d-4c55-8f0a-2d6e4b7c9a10" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="..."
ให้ใช้ค่า UUID ไม่ใช่ PARTUUID คัดลอกเก็บไว้ ค่าในบทความนี้เป็นตัวอย่าง ให้ใช้ค่าจากเครื่องของคุณ
ขั้นตอนที่ 4: สร้าง Mount Point และทดสอบ Mount ด้วยมือ
sudo mkdir -p /data
sudo mount /dev/vdb1 /data
df -h /data
ถ้า df แสดงขนาดของดิสก์ใหม่ แปลว่า Filesystem ใช้งานได้ จากนั้น Unmount ออกก่อนเพื่อทดสอบผ่าน fstab จริง
sudo umount /data
ขั้นตอนที่ 5: สำรองและแก้ไข /etc/fstab
sudo cp -a /etc/fstab /etc/fstab.bak-$(date +%F)
sudo nano /etc/fstab
เพิ่มบรรทัดใหม่ท้ายไฟล์ ตามชนิดของ Filesystem
# ext4
UUID=3f1c2a7e-9b1d-4c55-8f0a-2d6e4b7c9a10 /data ext4 defaults,nofail 0 2
# XFS
UUID=3f1c2a7e-9b1d-4c55-8f0a-2d6e4b7c9a10 /data xfs defaults,nofail 0 0
แต่ละบรรทัดมี 6 ช่อง คั่นด้วยช่องว่างหรือ Tab
| ช่อง | ตัวอย่าง | ความหมาย |
|---|---|---|
| 1 | UUID=... | อุปกรณ์ที่จะ Mount |
| 2 | /data | Mount Point (ต้องมีโฟลเดอร์อยู่แล้ว) |
| 3 | ext4 / xfs | ชนิด Filesystem |
| 4 | defaults,nofail | Option การ Mount |
| 5 | 0 | dump (ปัจจุบันไม่ได้ใช้ ใส่ 0) |
| 6 | 2 หรือ 0 | ลำดับการตรวจ fsck ตอนบูต: 1 สำหรับ /, 2 สำหรับดิสก์อื่นที่เป็น ext4, 0 สำหรับ XFS เพราะ XFS ไม่ใช้ fsck ตอนบูต |
Option nofail สำคัญมากสำหรับดิสก์ข้อมูล ถ้าดิสก์หายหรือเสีย ระบบจะบูตต่อไปได้ แทนที่จะค้างใน Emergency Mode Option อื่นที่พบบ่อยคือ noatime (ลดการเขียนดิสก์จากการบันทึกเวลาอ่านไฟล์) และ ro (อ่านอย่างเดียว)
ขั้นตอนที่ 6: ทดสอบ fstab ก่อนรีบูต
ขั้นตอนนี้ห้ามข้าม fstab ที่ผิดอาจทำให้เครื่องบูตไม่ขึ้นและเข้า SSH ไม่ได้
sudo findmnt --verify
sudo systemctl daemon-reload
sudo mount -a
findmnt /data
findmnt --verify ตรวจ Syntax และตรวจว่าอุปกรณ์ที่ระบุมีอยู่จริง ถ้าถูกต้องจะจบด้วย Success, no errors or warnings detected daemon-reload ให้ systemd อ่าน fstab ใหม่ (ถ้าไม่ทำ systemd จะเตือนว่า fstab เปลี่ยนแปลง) ส่วน mount -a Mount ทุกบรรทัดที่ยังไม่ได้ Mount ถ้าคำสั่งไม่แสดงอะไรเลย แปลว่าสำเร็จ และ findmnt /data ต้องแสดง UUID หรืออุปกรณ์ของดิสก์ใหม่
ขั้นตอนที่ 7: ตั้งเจ้าของโฟลเดอร์
Filesystem ใหม่จะเป็นของ root ถ้าแอปหรือผู้ใช้อื่นต้องเขียน ให้ตั้งเจ้าของหลัง Mount แล้ว (ถ้าตั้งก่อน Mount จะเป็นการตั้งค่าที่โฟลเดอร์ว่างข้างใต้ ซึ่งถูกซ่อนเมื่อ Mount)
sudo chown deploy:deploy /data
ls -ld /data
รายละเอียดเรื่องสิทธิ์อยู่ใน ทำความเข้าใจสิทธิ์ไฟล์บน Linux ด้วย chmod และ chown
ตรวจสอบผลลัพธ์
รีบูตเครื่องในช่วงเวลาที่เหมาะสม แล้วตรวจ
sudo reboot
# หลังเข้า SSH ใหม่
df -h /data
findmnt /data
lsblk -f
/data ต้อง Mount อยู่โดยไม่ต้องสั่งเอง ทดลองสร้างไฟล์ด้วย touch /data/test.txt แล้วลบออกเพื่อยืนยันว่าเขียนได้
ปัญหาที่พบบ่อย
เครื่องบูตไม่ขึ้น ค้างที่ Emergency Mode
มักเกิดจาก UUID ผิด ชนิด Filesystem ผิด หรือไม่ได้ใส่ nofail ให้เข้าผ่าน Console ของเซิร์ฟเวอร์ ใส่รหัสผ่าน root ที่หน้า Emergency Mode แล้วแก้ไข
mount -o remount,rw /
nano /etc/fstab
systemctl daemon-reload
reboot
ถ้าไม่แน่ใจว่าบรรทัดไหนผิด ให้ใส่ # หน้าบรรทัดที่เพิ่มใหม่เพื่อปิดไว้ก่อน หรือคัดลอกไฟล์ /etc/fstab.bak-วันที่ กลับมา
mount: wrong fs type, bad option, bad superblock
ชนิด Filesystem ในช่องที่ 3 ไม่ตรงกับของจริง หรือพาร์ติชันยังไม่ได้ mkfs ตรวจด้วย lsblk -f แล้วแก้ให้ตรง
ข้อมูลเดิมในโฟลเดอร์หายไปหลัง Mount
ข้อมูลไม่ได้หาย แต่ถูกซ่อนอยู่ใต้ดิสก์ที่ Mount ทับ ถ้าต้องการย้ายข้อมูลเดิมเข้าดิสก์ใหม่ ให้ Mount ดิสก์ใหม่ที่โฟลเดอร์ชั่วคราว คัดลอกข้อมูลด้วย rsync -a แล้วจึงเปลี่ยน Mount Point
ดิสก์เต็มแต่ต้องการขยาย
ถ้าดิสก์ข้อมูลอยู่บน LVM ดู ขยาย Logical Volume (LVM) บน Linux ถ้าเป็นพาร์ติชันธรรมดา ดู การขยายพื้นที่ Partition หลังเพิ่มพื้นที่ Disk Space (Linux)
หากทำตามขั้นตอนแล้วยังติดปัญหา สามารถติดต่อทีมงาน THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/ โดยแจ้งชื่อเซิร์ฟเวอร์ ระบบปฏิบัติการ คำสั่งที่ใช้ และข้อความ Error ที่พบ เพื่อให้ตรวจสอบได้รวดเร็วขึ้น
- Categories:
- Cloud
- Tags:
- Cloud
- Cloud Server
Related Posts
หมวดหมู่ที่น่าสนใจ
- Account Settings
- AD Server
- AI
- Alibaba Cloud
- Anti-Spam Gateway
- AWS Amazon Web Services
- Campaign
- CentOS/AlmaLinux
- Cloud
- Cloud Backup
- Cloud Communication
- Cloud Migration
- Cloud Security
- Cloud Server Management
- Cloud Solution
- Cloud Solution for Government
- Cloud Solutions by Industry
- Cloud Storage
- Cloud VPS App Plus +
- Cloud VPS DirectAdmin
- Cloud VPS Plesk
- CSR
- Cyber Security
- Cybersecurity
- Data Sovereignty
- Database Server
- DDoS
- Digital Tranformation
- Digital Transformation
- Direct Mail
- Directadmin
- Domainname
- Ecommerce
- ERP
- Generative AI
- Getting Started
- Google Cloud
- Google G Suite
- Huawei Cloud
- IT News
- Linux Server
- Managed Cloud Services
- Managed Service Provider
- Manual
- Microsoft
- Microsoft 365
- Microsoft Azure
- News
- On-premise
- Private Mail Server
- Promotion
- Recommend Solution (Enterprise)
- Server
- Sovereign Cloud
- THAI DATA CLOUD Platform
- Ubuntu
- Ubuntu
- Uncategorized
- VMware
- VPS Server
- Web Design
- Web Hosting
- Web Hosting (DirectAdmin)
- Web Hosting (Plesk)
- Web Technologies
- Windows Server
- Wordpress
- Zimbra
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี


