วิธีตั้งค่าการสร้างสแนปช็อต Btrfs อัตโนมัติบน Ubuntu Desktop

คู่มือการติดตั้ง Ubuntu Desktop 26.04 LTS แสดงรายการตัวเลือกการตั้งค่าดิสก์แบบมาตรฐานและขั้นสูง แต่ไม่ได้ระบุ Btrfs เป็นตัวเลือกการติดตั้ง คู่มือนี้ได้รับการอัปเดตครั้งล่าสุดเมื่อวันที่ 6 พฤษภาคม 2026 นั่นหมายความว่า Ubuntu Desktop ที่ใช้ Btrfs อาจใช้โครงสร้างพาร์ติชั่นหรือซับโวลุ่มแบบกำหนดเอง ก่อนที่จะทำการสร้างสแนปช็อตโดยอัตโนมัติ ให้ตรวจสอบว่ามีการเมานต์อะไรอยู่จริง ๆ/คำสั่ง Snapper ที่สมมติว่าซับโวลุ่มรูท Btrfs อาจล้มเหลวหรือปกป้องข้อมูลที่ไม่ถูกต้อง คู่มือนี้จะตั้งค่าสแนปช็อตไทม์ไลน์รายชั่วโมงด้วย Snapper บนซับโวลุ่ม Btrfs ที่ได้รับการตรวจสอบแล้ว จากนั้นเปิดใช้งานการล้างข้อมูลตามกำหนดเวลาเพื่อไม่ให้สแนปช็อตเก่าสะสมไปเรื่อย ๆ

Snapper มีอยู่ในคลังซอฟต์แวร์ของ Ubuntu และแพ็กเกจ Ubuntu 26.04 LTS (Resolute) ก็มีหน่วย systemd สำหรับงานสร้างไทม์ไลน์และล้างข้อมูล คำสั่งด้านล่างนี้ใช้สำหรับเครื่องที่มีเป้าหมายในการสร้างสแนปช็อตเป็นซับโวลุ่ม Btrfs หากการติดตั้ง Ubuntu ของคุณใช้ ext4, LVM หรือการเมานต์ระดับบนสุดของ Btrfs แทนที่จะเป็นซับโวลุ่มที่คุณต้องการปกป้อง ให้หยุดที่การตรวจสอบโครงสร้างและแก้ไขปัญหานั้นก่อน

สแนปช็อตของ Btrfs ช่วยปกป้องอะไร?

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

สแนปช็อตจะไม่บันทึกข้อมูลของซับวอลุ่มที่ซ้อนกันแบบวนซ้ำ หาก/homeเป็นซับวอลุ่มแยกต่างหาก สแนปช็อตของซับวอลุ่มหลักจะไม่รวมเนื้อหาของซับวอลุ่มแยกต่างหากนั้น/homeควรวางแผนการกำหนดค่า Snapper หนึ่งรายการสำหรับแต่ละซับวอลุ่มที่คุณต้องการปกป้อง หรือใช้การสำรองข้อมูลแยกต่างหากสำหรับข้อมูลผู้ใช้ เก็บสำเนาที่สองไว้ในอุปกรณ์อื่นหรือระบบระยะไกลเพื่อการกู้คืนในกรณีเกิดภัยพิบัติ

1. ตรวจสอบว่า Ubuntu กำลังทำงานบนระบบไฟล์ Btrfs หรือไม่

เปิดเทอร์มินัลและตรวจสอบการเมานต์รูท:

findmnt -no SOURCE,FSTYPE,OPTIONS /
sudo btrfs subvolume show /
sudo btrfs subvolume list /

คำสั่งแรกควรรายงานbtrfsประเภทของระบบไฟล์ ตรวจสอบตัวเลือกการเมานต์สำหรับsubvol=รายการ และใช้รายการซับโวลุ่มเพื่อทำความเข้าใจโครงสร้าง คำสั่งที่สองควรระบุซับโวลุ่มที่เมานต์อยู่ที่/หากประเภทของระบบไฟล์ไม่ใช่ Btrfs ขั้นตอน Snapper นี้จะไม่สามารถใช้งานได้ หากคำสั่งรายงานว่า/ไม่ใช่ซับโวลุ่ม หรือแสดงว่าเป็นซับโวลุ่มระดับบนสุด อย่าพยายามสร้างการกำหนดค่า Snapper รูทโดยไม่ตรวจสอบให้ดี ซับโวลุ่มระดับบนสุดของ Btrfs มีข้อจำกัดพิเศษ ให้ใช้โครงสร้างซับโวลุ่มที่ออกแบบอย่างถูกต้อง หรือสร้างสแนปช็อตของซับโวลุ่มแยกต่างหากที่ได้รับการตรวจสอบแล้วแทน

ตรวจสอบแยกต่างหากว่า/homeเป็นจุดเชื่อมต่อหรือไดรฟ์ย่อยที่มีfindmnt /homeและ หรือsudo btrfs subvolume show /homeไม่ หากแยกต่างหากและคุณต้องการสร้างสแนปช็อตของไฟล์ส่วนตัว จะต้องมีการกำหนดค่าเฉพาะสำหรับจุดเชื่อมต่อดังกล่าว นอกจากนี้ ให้พิจารณาด้วยว่าเส้นทางสำคัญอื่นๆ เช่น จุดเชื่อมต่อข้อมูลแยกต่างหาก อยู่บนระบบไฟล์อื่นหรือไม่ สแนปช็อตของรูทจะไม่รวมเส้นทางเหล่านั้นโดยอัตโนมัติ

2. ติดตั้ง Snapper และเครื่องมือ Btrfs

เมื่อคุณยืนยันแล้วว่าเป้าหมายคือซับโวลุ่ม Btrfs ให้ติดตั้งแพ็กเกจ Ubuntu:

sudo apt update
sudo apt install snapper btrfs-progs

snapperจัดการการกำหนดค่าและการเก็บรักษาสแนปช็อต; btrfs-progsมีเครื่องมือระบบไฟล์ที่เป็นประโยชน์สำหรับการตรวจสอบ Btrfs ตรวจสอบการกำหนดค่าที่มีอยู่แล้วก่อนที่จะสร้างการกำหนดค่าใหม่:

sudo snapper list-configs

หากการกำหนดค่าที่มีชื่อrootอยู่แล้วชี้ไปยังซับโวลุ่มรูทที่ถูกต้อง ให้คงการกำหนดค่านั้นไว้และตรวจสอบการตั้งค่าแทนที่จะสร้างสำเนา หากผลลัพธ์ว่างเปล่าและ/ได้รับการยืนยันว่าเป็นซับโวลุ่มที่คุณต้องการปกป้อง ให้สร้างการกำหนดค่า:

sudo snapper -c root create-config /

คำสั่ง นี้create-configจะสร้างการกำหนดค่า Snapper และไดเร็กทอรีสแนปช็อตสำหรับซับโวลุ่มที่เลือก หากระบบแจ้งว่าการกำหนดค่ามีอยู่แล้วหรือว่าเส้นทางไม่ใช่ซับโวลุ่ม ให้หยุดและตรวจสอบการตั้งค่าปัจจุบัน อย่าลบการกำหนดค่าที่มีอยู่เพื่อบังคับให้คำสั่งทำงานต่อไป

3. เลือกกำหนดการถ่ายภาพสแนปช็อตและนโยบายการเก็บรักษาข้อมูล

โหมดไทม์ไลน์ของ Snapper สามารถสร้างสแนปช็อตรายชั่วโมงได้ และอัลกอริทึมการล้างไทม์ไลน์สามารถเก็บสแนปช็อตรายชั่วโมง รายวัน รายสัปดาห์ รายเดือน และรายปีที่เลือกไว้ได้ สำหรับเดสก์ท็อปที่มีพื้นที่ว่างจำกัด ควรเริ่มต้นด้วยนโยบายที่เหมาะสมและตรวจสอบพื้นที่จัดเก็บข้อมูลแทนที่จะเก็บประวัติแบบไม่จำกัด ตัวอย่างนี้ขอสแนปช็อตรายชั่วโมง 6 รายการ รายวัน 7 รายการ รายสัปดาห์ 4 รายการ และรายเดือน 3 รายการ โดยไม่มีสแนปช็อตรายปี:

sudo snapper -c root set-config 'TIMELINE_CREATE=yes TIMELINE_CLEANUP=yes TIMELINE_LIMIT_HOURLY=6 TIMELINE_LIMIT_DAILY=7 TIMELINE_LIMIT_WEEKLY=4 TIMELINE_LIMIT_MONTHLY=3 TIMELINE_LIMIT_YEARLY=0'

ค่าเหล่านี้อธิบายถึงหมวดหมู่การเก็บรักษาข้อมูล ไม่ใช่ข้อจำกัดที่ตายตัวของพื้นที่ดิสก์ ไฟล์ขนาดใหญ่ที่เปลี่ยนแปลงหรือลบไปแล้วอาจยังคงเก็บข้อมูลเก่าไว้ได้ตราบเท่าที่สแนปช็อตยังอ้างอิงถึงข้อมูลเหล่านั้น พื้นที่ว่างยังขึ้นอยู่กับซับโวลุ่มและไฟล์อื่นๆ ในระบบไฟล์ Btrfs ด้วย ตรวจสอบdf -h /เป็นsudo btrfs filesystem usage /ระยะ และลดระยะเวลาการเก็บรักษาหรือเพิ่มพื้นที่จัดเก็บหากระบบไฟล์ใกล้เต็ม หลีกเลี่ยงการแก้ไขการตั้งค่าหลายๆ อย่างพร้อมกัน: ให้เรียกใช้sudo snapper -c root get-configและตรวจสอบค่าอีกครั้งหลังจากเปลี่ยนแปลงแล้ว

4. เปิดใช้งานตัวจับเวลา systemd ของ Snapper

ใน Ubuntu 26.04 LTS รายการไฟล์แพ็กเกจ Snapper ประกอบด้วยsnapper-timeline.timerและsnapper-cleanup.timerเปิดใช้งานทั้งสองอย่างเพื่อให้ systemd สร้างสแนปช็อตไทม์ไลน์เป็นระยะและเรียกใช้การล้างข้อมูล:

sudo systemctl enable --now snapper-timeline.timer snapper-cleanup.timer

ตรวจสอบว่าได้โหลดไฟล์แล้ว และดูว่ามีกำหนดการครั้งต่อไปเมื่อใด:

systemctl list-timers snapper-timeline.timer snapper-cleanup.timer
systemctl status snapper-timeline.timer snapper-cleanup.timer

ตัวจับเวลาที่แสดงว่าทำงานอยู่หมายความว่า systemd ได้โหลดกำหนดการแล้ว แต่ไม่ได้หมายความว่า Snapper สร้างสแนปช็อตสำเร็จเสมอไป หลังจากเรียกใช้ไทม์ไลน์ครั้งถัดไป ให้ตรวจสอบการกำหนดค่าและรายการสแนปช็อต:

sudo snapper list-configs
sudo snapper -c root list

หากไม่มีภาพรวมไทม์ไลน์ปรากฏขึ้นหลังจากเรียกใช้ตามกำหนดเวลา ให้ยืนยันว่าTIMELINE_CREATEได้ตั้งค่าเป็น จากyesนั้นตรวจสอบบันทึกบริการด้วยjournalctl -u snapper-timeline.service -bอย่าสร้างตัวจับเวลาแบบกำหนดเองจนกว่าคุณจะตรวจสอบหน่วยและบันทึกที่บรรจุแล้ว กำหนดการที่ซ้ำกันอาจสร้างภาพรวมมากกว่าที่ตั้งใจไว้

5. เพิ่มการตั้งค่าแยกต่างหากสำหรับซับโวลุ่มโฮม Btrfs

ทำขั้นตอนนี้ก็ต่อเมื่อการตรวจสอบโครงสร้างยืนยันแล้วว่านั่น/homeคือซับโวลุ่ม Btrfs และเป้าหมายของคุณรวมถึงไฟล์ของผู้ใช้ ก่อนอื่นsudo snapper list-configsให้ตรวจสอบให้แน่ใจว่าชื่อนั้นhomeยังไม่ได้ถูกใช้งาน จากนั้นสร้างการกำหนดค่าสำหรับซับโวลุ่มนั้นและใช้ นโยบายการเก็บรักษาข้อมูลแยกต่างหาก:

sudo snapper -c home create-config /home
sudo snapper -c home set-config 'TIMELINE_CREATE=yes TIMELINE_CLEANUP=yes TIMELINE_LIMIT_HOURLY=6 TIMELINE_LIMIT_DAILY=7 TIMELINE_LIMIT_WEEKLY=4 TIMELINE_LIMIT_MONTHLY=3 TIMELINE_LIMIT_YEARLY=0'

ตัวจับเวลา systemd เดียวกันจะประมวลผลการกำหนดค่า Snapper ที่เปิดใช้งานการสร้างและการล้างไทม์ไลน์ ดังนั้นโดยปกติแล้วจึงไม่จำเป็นต้องใช้ตัวจับเวลาแยกต่างหาก ยืนยันว่าsudo snapper -c home listใช้งานได้และsudo snapper -c home get-configแสดงค่าที่ต้องการ ไดเร็กทอรีที่มีชื่อนั้น/homeไม่ได้เป็นซับโวลุ่มแยกต่างหากโดยอัตโนมัติ ตรวจสอบให้แน่ใจก่อนเรียกcreate-configใช้

คุณรู้ได้อย่างไรว่าระบบอัตโนมัติทำงานได้ดี?

  • การกำหนดค่า: sudo snapper list-configsแสดงชื่อและไดรฟ์ย่อยที่ต้องการ
  • นโยบาย: sudo snapper -c root get-configเปิดใช้งานการสร้างและการล้างข้อมูลไทม์ไลน์รายงาน
  • ตารางเวลา: systemctl list-timersแสดงตัวจับเวลา Snapper สองตัวและเวลาการทำงานครั้งต่อไปของแต่ละตัว
  • ภาพรวม: sudo snapper -c root listแสดงรายการที่มีวันที่ระบุไว้หลังจากที่ตัวจับเวลาทำงานเสร็จสิ้น
  • สถานะการทำงานของระบบ: journalctl -u snapper-timeline.service -bไม่มีข้อผิดพลาดที่เกิดขึ้นซ้ำๆ ซึ่งขัดขวางการสร้างสแนปช็อต

หากคอมพิวเตอร์ของคุณปิดเครื่องตามเวลาที่กำหนด ตัวจับเวลาอาจทำงานในภายหลัง ขึ้นอยู่กับการตั้งค่าของเครื่องนั้นๆ แต่การตรวจสอบสแนปช็อตที่ได้นั้นไม่ใช่สิ่งทดแทนการทดสอบด้วยตนเอง การทดสอบเล็กๆ น้อยๆ ด้วยตนเองสามารถตรวจสอบได้ว่า Snapper สามารถสร้างสแนปช็อตได้หรือไม่: เรียกใช้คำสั่ง จากsudo snapper -c root create --description 'setup test'นั้นแสดงรายการสแนปช็อตอีกครั้ง การทดสอบนี้จะทดสอบการกำหนดค่า ไม่ใช่ตัวจับเวลา ลบสแนปช็อตทดสอบในภายหลังก็ต่อเมื่อคุณแน่ใจว่าได้เลือกรายการที่ถูกต้องแล้ว

อะไรบ้างที่อาจผิดพลาดได้ และอะไรบ้างที่คุณควรหลีกเลี่ยง?

ประการแรก การสร้างสแนปช็อตจะใช้พื้นที่ของระบบไฟล์ร่วมกันไปเรื่อยๆ การควบคุมการเก็บรักษาจะช่วยลดประวัติเก่าๆ แต่ปริมาณข้อมูลที่เก็บรักษาไว้จะแตกต่างกันไปตามการเปลี่ยนแปลงของไฟล์ ตรวจสอบพื้นที่ว่างและตรวจสอบให้แน่ใจว่าการล้างข้อมูลกำลังทำงานอยู่ ประการที่สอง สแนปช็อตของรูทอาจละเว้นซับโวลุ่มที่ซ้อนกัน เช่น/home; คำสั่งที่สำเร็จไม่ได้หมายความว่าทุกเส้นทางที่เมานต์ได้รับการปกป้อง ประการที่สาม สแนปช็อตของ Snapper เพียงอย่างเดียวไม่รับประกันว่าจะสามารถบูตเพื่อย้อนกลับได้ Snapper ระบุว่าการย้อนกลับต้องใช้ระบบ Btrfs ที่กำหนดค่าอย่างถูกต้อง รูปแบบการเมานต์ การกำหนดค่าการบูต การเข้ารหัส และระบบไฟล์ที่แยกต่างหากของ Ubuntu จะเป็นตัวกำหนดว่าการกู้คืนใดเป็นไปได้ ก่อนที่จะพึ่งพาการย้อนกลับ ให้ทดสอบแผนการกู้คืนด้วยสื่อสำรองและกู้คืนที่แยกต่างหาก

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

เอกสารอ้างอิงอย่างเป็นทางการ

ฝากความเห็น

Fix Screen Tearing on Intel Graphics in Pardus Linux: A Result-Focused Guide

Fix Screen Tearing on Intel Graphics in Pardus Linux: A Result-Focused Guide

Fix Intel graphics screen tearing in Pardus Linux by checking X11 vs. Wayland, compositor settings, refresh rate, active Xorg driver, and TearFree only when appropriate.

วิธีการตั้งค่าไฟร์วอลล์ SLES 15 ด้วย firewall-cmd

วิธีการตั้งค่าไฟร์วอลล์ SLES 15 ด้วย firewall-cmd

กำหนดค่า firewalld บน SLES 15: ตรวจสอบโซน อนุญาตบริการหรือพอร์ต บันทึกกฎถาวร โหลดใหม่ได้อย่างปลอดภัย และตรวจสอบการเข้าถึง

คู่มือการตั้งค่าการอัปเดต SLES Live Patching: อัปเดตเคอร์เนลโดยไม่ต้องรีบูตเครื่อง

คู่มือการตั้งค่าการอัปเดต SLES Live Patching: อัปเดตเคอร์เนลโดยไม่ต้องรีบูตเครื่อง

เปิดใช้งานการแพตช์เคอร์เนลแบบเรียลไทม์บน SLES 15 SP7 ใช้การแก้ไขที่รองรับโดยไม่ต้องรีบูต ตรวจสอบแพตช์ที่ใช้งานอยู่ และทำความเข้าใจว่าเมื่อใดที่ยังจำเป็นต้องรีสตาร์ทเคอร์เนล

วิธีเปิดใช้งานโหมด FIPS บน SUSE Linux Enterprise Server 15

วิธีเปิดใช้งานโหมด FIPS บน SUSE Linux Enterprise Server 15

เปิดใช้งานโหมด FIPS บน SLES 15 โดยใช้ยูทิลิตี้การตั้งค่าที่ SUSE รองรับ รีบูตอย่างปลอดภัย ตรวจสอบสถานะเคอร์เนลและนโยบายการเข้ารหัส และตรวจสอบขีดจำกัดการรับรอง

วิธีการติดตั้ง Google Chrome บน Gooroom OS โดยไม่ละเมิดนโยบายความปลอดภัย

วิธีการติดตั้ง Google Chrome บน Gooroom OS โดยไม่ละเมิดนโยบายความปลอดภัย

ติดตั้ง Google Chrome บน Gooroom OS อย่างปลอดภัยด้วยแพ็กเกจ .deb อย่างเป็นทางการ, APT, การตรวจสอบนโยบาย, คำแนะนำในการอัปเดต และการแก้ไขสำหรับอุปกรณ์ที่ได้รับการจัดการ

วิธีการส่งออกบันทึกระบบ SLES ไปยังเซิร์ฟเวอร์ Syslog ระยะไกลอย่างปลอดภัย

วิธีการส่งออกบันทึกระบบ SLES ไปยังเซิร์ฟเวอร์ Syslog ระยะไกลอย่างปลอดภัย

ส่งต่อบันทึกระบบ SLES ไปยังเซิร์ฟเวอร์ syslog ระยะไกลอย่างปลอดภัยด้วย rsyslog, ใบรับรอง TLS, การตรวจสอบชื่อคู่ค้า, คิว, การตรวจสอบความถูกต้อง และการทดสอบ

การผสานรวม Active Directory กับ SSSD ใน SLES 15: คู่มือทีละขั้นตอน

การผสานรวม Active Directory กับ SSSD ใน SLES 15: คู่มือทีละขั้นตอน

เชื่อมต่อ SLES 15 เข้ากับ Active Directory ด้วย SSSD โดยใช้ YaST เตรียม DNS และเวลา กำหนดค่าการเข้าสู่ระบบโดเมน ตรวจสอบ Kerberos และเปรียบเทียบ SSSD, Winbind และ realmd

แก้ไขปัญหาไดรเวอร์ Wi-Fi Realtek RTL8821CE บน Pardus Linux

แก้ไขปัญหาไดรเวอร์ Wi-Fi Realtek RTL8821CE บน Pardus Linux

แก้ไขปัญหา Wi-Fi RTL8821CE บน Pardus Linux โดยตรวจสอบไดรเวอร์ rtw88 ในตัว เฟิร์มแวร์ Realtek คำสั่ง rfkill, NetworkManager และตัวเลือกการสำรองข้อมูลที่ปลอดภัย

แก้ไขปัญหา "ความล้มเหลวชั่วคราวในการแก้ไข DNS" ใน Debian 12 ด้วย systemd-resolved

แก้ไขปัญหา "ความล้มเหลวชั่วคราวในการแก้ไข DNS" ใน Debian 12 ด้วย systemd-resolved

วินิจฉัยและแก้ไขปัญหาการแก้ไขชื่อโดเมน (DNS resolution) บน Debian 12 ที่ใช้ systemd-resolved รวมถึง resolv.conf, NetworkManager, networkd, cache และการตรวจสอบความถูกต้อง

วิธีการติดตั้งระบบปฏิบัติการ Pardus Linux ควบคู่กับ Windows 11 อย่างปลอดภัย

วิธีการติดตั้งระบบปฏิบัติการ Pardus Linux ควบคู่กับ Windows 11 อย่างปลอดภัย

ติดตั้ง Pardus 25.2 ควบคู่ไปกับ Windows 11 โดยทำการสำรองข้อมูล ลดขนาดไดรฟ์ Windows บูตจาก USB UEFI และปกป้องพาร์ติชั่น EFI และพาร์ติชั่นกู้คืนที่มีอยู่เดิม