Example scenario: Imagine Maya maintains a Debian 13 desktop used for development and wants system updates that can be rolled back as a complete version. She can use this goal to evaluate an OSTree-based Debian derivative, but she should not run a command on her current installation and expect it to become immutable. OSTree needs an operating-system tree, boot integration, and an update process designed for deployments.
OSTree stores complete filesystem trees as versioned commits and arranges bootable deployments. A new deployment can be selected for the next boot while an earlier one remains available for rollback. This changes how the OS is built and updated; it does not turn ordinary Debian package management into an atomic system automatically. Debian’s current ostree-boot package is described as integration for a Debian derivative, and it requires a dracut-built initramfs plus a supported bootloader. The steps below therefore describe a testable derivative workflow, not a supported one-command conversion of an installed Debian desktop.
Before building an OSTree system, back up the desktop and test the boot path in a virtual machine.
What OSTree changes—and what it does not
OSTree is an operating-system deployment and upgrade system, not a replacement for Debian’s package repository or dependency resolver. A build process still needs to install packages and assemble a complete root filesystem. OSTree then records and deploys that tree. For updates, the build process creates another full tree commit, and the client switches to it as a deployment. This is why an OSTree desktop needs a repeatable way to build its system image; running apt upgrade against the live root is not the same update model.
“Immutable” is also a useful shorthand rather than a claim that every file on the computer is read-only. In a typical deployment, the system tree is treated as read-only, while /etc holds machine configuration and /var holds mutable state. User files normally live outside the versioned operating-system tree, often under /home. OSTree’s handling of these paths and of boot entries is part of the system design. Changes made to the deployment’s /usr are not a durable substitute for producing a new image.
1. Decide whether this approach fits your Debian desktop
สำหรับมายา คำถามแรกคือ เธอต้องการโปรเจกต์การเรียนรู้หรือระบบปฏิบัติการที่ใช้ในชีวิตประจำวัน OSTree สามารถทำให้การอัปเดตและการย้อนกลับควบคุมได้มากขึ้น แต่ Debian ไม่ได้มีเวิร์กโฟลว์แบบสำเร็จรูป “แปลงเวิร์กสเตชันนี้” ในคำอธิบายแพ็กเกจ นักพัฒนาต้องเตรียมโครงสร้างระบบปฏิบัติการ สร้าง initramfs ผสานรวมบูตโหลดเดอร์ ตัดสินใจว่าการอัปเดตแพ็กเกจจะกลายเป็นคอมมิตใหม่ได้อย่างไร และทดสอบฮาร์ดแวร์ ระบบปฏิบัติการที่ใช้ OSTree ที่เป็นที่รู้จักอาจเหมาะสมกว่าสำหรับเดสก์ท็อปที่ผู้ใช้ต้องการประสบการณ์การใช้งานที่ได้รับการดูแลรักษาและพร้อมติดตั้ง
ตรวจสอบลำดับการบูตก่อนที่จะเสียเวลาไปกับเรื่องนี้ostree-bootหน้าแพ็กเกจของ Debian สำหรับ Trixie ระบุว่า dracut เป็นข้อกำหนดของ initramfs และ GRUB 2, syslinux/extlinux หรือ U-Boot เป็นตระกูลบูตโหลดเดอร์ที่รองรับ แต่รายการนั้นไม่ได้รับประกันว่าการตั้งค่าเฟิร์มแวร์ การกำหนดค่า Secure Boot การเข้ารหัสดิสก์ หรือเมนูบูตเฉพาะของผู้จำหน่ายทุกอย่างจะทำงานได้โดยไม่ต้องมีการบูรณาการเพิ่มเติม โดยเฉพาะอย่างยิ่ง ควรทดสอบกับเครื่องจริงหรือการกำหนดค่า VM ที่ใกล้เคียงกันก่อนที่จะแก้ไขดิสก์ภายใน
นอกจากนี้ ให้ระบุคุณสมบัติของเดสก์ท็อปที่ต้องคงอยู่ ได้แก่ ไดรเวอร์กราฟิก เฟิร์มแวร์ Wi-Fi การพักเครื่องและการกลับมาทำงาน เสียง เครื่องพิมพ์ พื้นที่จัดเก็บข้อมูลที่เข้ารหัส จอภาพหลายจอ และโมดูลเคอร์เนลภายนอกใดๆ การบูตเข้าสู่หน้าจอกราฟิกได้สำเร็จเป็นเพียงจุดเริ่มต้นเท่านั้น หาก Maya ขึ้นอยู่กับไดรเวอร์ที่เป็นกรรมสิทธิ์หรือโมดูลเคอร์เนลพิเศษ จะต้องมีอยู่ในอิมเมจที่สร้างขึ้นและเข้ากันได้กับเคอร์เนลและ initramfs
2. สร้างสภาพแวดล้อมการสร้างและทดสอบที่ปลอดภัย
เริ่มต้นด้วยการสร้าง VM แบบใช้แล้วทิ้ง โดยใช้ระบบปฏิบัติการ Debian เวอร์ชันและสถาปัตยกรรมที่ตรงกับเป้าหมาย ถ่ายภาพสแนปช็อตของ VM ก่อนทำการทดลอง สำรองข้อมูลไดเร็กทอรีโฮม โปรไฟล์เบราว์เซอร์ คีย์ SSH ข้อมูลการกู้คืนจากโปรแกรมจัดการรหัสผ่าน และข้อมูลใดๆ ที่ยังไม่ได้ซิงค์ไว้ที่อื่น เก็บข้อมูลสำรองแยกต่างหากจากดิสก์ของ VM อย่าทำการแบ่งพาร์ติชั่นหรือฟอร์แมตคอมพิวเตอร์ที่ใช้งานประจำวันในระหว่างการทดสอบครั้งแรก
ใช้ไดเร็กทอรีการสร้างที่แยกต่างหากและอิมเมจดิสก์เป้าหมายที่แยกต่างหาก จดบันทึกเกี่ยวกับรุ่นของ Debian สถาปัตยกรรม รายการแพ็กเกจ เวอร์ชันเคอร์เนล บูตโหลดเดอร์ และการเปลี่ยนแปลงที่เกิดขึ้นกับโครงสร้างไฟล์ บันทึกการสร้างที่สามารถทำซ้ำได้จะช่วยให้ Maya แยกแยะความแตกต่างระหว่างการเปลี่ยนแปลงอิมเมจจริงกับการเปลี่ยนแปลงการกำหนดค่าเฉพาะเครื่อง หากเป้าหมายคือการคงเดสก์ท็อปที่มีอยู่ไว้เหมือนเดิมทุกประการ โครงสร้างไฟล์พื้นฐานใหม่จะไม่ทำเช่นนั้นโดยอัตโนมัติ: แพ็กเกจที่ติดตั้ง บัญชีผู้ใช้ การตั้งค่าฮาร์ดแวร์ และการกำหนดค่าต่างๆ จำเป็นต้องถูกถ่ายโอนหรือสร้างขึ้นใหม่โดยเจตนา
3. ติดตั้งเครื่องมือ OSTree บนตัวสร้าง
บนระบบ Debian Trixie builder ให้ติดตั้งเครื่องมือ OSTree, การรวมระบบบูต และแพ็กเกจ dracut ที่มีอยู่:
sudo apt update
sudo apt install ostree ostree-boot dracut
ความพร้อมใช้งานของแพ็กเกจและส่วนประกอบที่จำเป็นอาจแตกต่างกันไปตามรุ่นและสถาปัตยกรรมของ Debian ดังนั้นโปรดตรวจสอบกับ APT บนเครื่องสร้างโปรแกรม การติดตั้งนี้จะติดตั้งเฉพาะเครื่องมือลงในเครื่องเท่านั้น ไม่ได้เปลี่ยนแปลงกระบวนการบูตของเครื่องหรือทำให้ระบบไฟล์รูทไม่สามารถเปลี่ยนแปลงได้ คำอธิบายแพ็กเกจของ Debian ระบุไว้อย่างชัดเจนว่าostree-bootมีส่วนประกอบสำหรับการบูตระบบปฏิบัติการที่พัฒนามาจาก Debian
4. สร้างโครงสร้างไดเร็กทอรีรากของ Debian ให้สะอาดหมดจด
เตรียมระบบไฟล์รูทให้สมบูรณ์โดยใช้เครื่องมือแพ็กเกจของเวอร์ชันนั้น หรือระบบสร้างอิมเมจ Debian รวมทั้งเคอร์เนล, systemd, สภาพแวดล้อมเดสก์ท็อป, เฟิร์มแวร์ และไดรเวอร์ที่จำเป็นสำหรับเป้าหมาย ตลอดจนการรวมการบูต OSTree และการสนับสนุน initramfs กำหนดค่าผู้ใช้ ภาษา เครือข่าย บริการ และค่าเริ่มต้นของเดสก์ท็อปอย่างรอบคอบ ตัวอย่างเช่น โครงสร้างไฟล์ขั้นต่ำที่บูตไปยังคอนโซลยังไม่ใช่เดสก์ท็อป และโครงสร้างไฟล์ที่สร้างขึ้นสำหรับเครื่องหนึ่งอาจไม่มีไดรเวอร์สำหรับเครื่องอื่น
ก่อนที่จะยืนยันโครงสร้างไดเร็กทอรี ให้แน่ใจว่ามันสอดคล้องกับรูปแบบการติดตั้งใช้งานของ OSTree คู่มือการปรับใช้จากแหล่งต้นทางระบุว่า การกำหนดค่าเริ่มต้นควรอยู่ใน/usr/etcแทนที่จะเป็นโครงสร้างไดเร็กทอรีรากแบบดั้งเดิม/etcOSTree ใช้สิ่งนั้นเป็นฐานสำหรับโครงสร้างไดเร็กทอรีที่เปลี่ยนแปลงได้ต่อ/etcการติดตั้งใช้งาน โครงสร้างไดเร็กทอรีต้องมีเคอร์เนลและ initramfs ที่เข้ากันได้ในตำแหน่งที่เวอร์ชัน OSTree ที่เลือกและการรวมระบบบูตเข้าใจ ควรศึกษาแพ็คเกจบูตเฉพาะของ Debian และคู่มือจากแหล่งต้นทางควบคู่กันไป: โครงสร้างไดเร็กทอรีที่ถูกต้องเพียงอย่างเดียวไม่จำเป็นต้องเป็นการติดตั้งใช้งาน Debian ที่สามารถบูตได้
อย่าคัดลอกการตั้งค่าทั้งหมดของเครื่องโฮสต์ที่ใช้งานอยู่/ลงใน commit โดยไม่คิดไตร่ตรอง เพราะอาจคัดลอกไฟล์ชั่วคราว สถานะเฉพาะของเครื่อง สถานะของตัวจัดการแพ็กเกจในตำแหน่งที่ไม่ถูกต้อง และการกำหนดค่าที่สันนิษฐานถึงกระบวนการบูตแบบเก่า OSTree คาดหวังว่าผู้สร้างอิมเมจจะกำหนดวิธีการประกอบแพ็กเกจและวิธีการสร้างการอัปเดต กระบวนการสร้างอิมเมจนี้เป็นงานด้านวิศวกรรมหลักในการแปลงเดสก์ท็อป Debian
5. บันทึกโครงสร้างข้อมูลที่เตรียมไว้ลงในที่เก็บข้อมูลภายในเครื่อง
เมื่อเตรียมโครงสร้างต้นไม้รากเสร็จแล้ว ให้สร้างที่เก็บข้อมูลในเครื่องและคอมมิตโครงสร้างต้นไม้ภายใต้ชื่อสาขาที่สื่อความหมาย ในตัวอย่างนี้/srv/debian-rootคือโครงสร้างต้นไม้ที่เตรียมไว้แล้ว ไม่ใช่โครงสร้างต้นไม้รากของโฮสต์ที่กำลังทำงานอยู่:
sudo mkdir -p /srv/ostree/repo
sudo ostree --repo=/srv/ostree/repo init --mode=archive
sudo ostree --repo=/srv/ostree/repo commit \
--branch=debian/trixie/desktop \
--subject="Debian Trixie desktop test image" \
/srv/debian-root
sudo ostree --repo=/srv/ostree/repo refs
การคอมมิตจะบันทึกไฟล์ในโครงสร้างต้นไม้ และสาขาจะชี้ไปยังเวอร์ชันนั้น มันไม่ได้กำหนดค่าดิสก์ สร้างรายการบูตเฟิร์มแวร์ หรือพิสูจน์ว่า initramfs สามารถค้นหาการปรับใช้ได้ ควรเก็บรักษาที่เก็บข้อมูลและอินพุตการสร้างไว้เพื่อให้สามารถสร้างและเปรียบเทียบอิมเมจถัดไปได้ สำหรับบริการอัปเดตที่แท้จริง จำเป็นต้องมีการออกแบบการขนส่งที่ปลอดภัย การควบคุมการเข้าถึงที่เก็บข้อมูล การคอมมิตที่ลงนามแล้วในกรณีที่เหมาะสม และกระบวนการเผยแพร่ที่จัดทำเป็นเอกสารด้วย
กระบวนการสร้างจะประกอบโครงสร้างรูทของ Debian ให้สมบูรณ์ จากนั้นบันทึกเป็นคอมมิต OSTree ที่มีเวอร์ชันกำกับ
6. จัดเตรียมดิสก์ทดสอบที่มีการรวมระบบบูต OSTree
สร้างดิสก์ VM ใหม่ผ่านตัวติดตั้งหรือเวิร์กโฟลว์การสร้างอิมเมจที่รู้วิธีสร้าง sysroot ของ OSTree และกำหนดค่าบูตโหลดเดอร์admin init-fsคำสั่งของ OSTree จะเริ่มต้นระบบไฟล์รูททางกายภาพที่ว่างเปล่า และผู้ดูแลระบบสามารถเริ่มต้น stateroot และปรับใช้ commit ได้ แต่คำสั่งเหล่านั้นเป็นเพียงส่วนประกอบพื้นฐาน ไม่ใช่สูตรการติดตั้งที่สมบูรณ์สำหรับเดสก์ท็อป Debian ทุกเครื่อง คำสั่งเหล่านั้นไม่ได้ขจัดความจำเป็นในการจัดวางพาร์ติชัน ติดตั้งไฟล์บูตเฟิร์มแวร์ สร้าง initramfs ที่เข้ากันได้ และจัดเรียงการตั้งค่าเฟิร์มแวร์และบูตโหลดเดอร์
ใช้ตระกูลบูตโหลดเดอร์ที่รองรับโดยแพ็คเกจการรวมระบบของ Debian และตรวจสอบว่ารายการบูตส่งผ่านการอ้างอิงการปรับใช้ OSTree ไปยัง initramfs เอกสารการปรับใช้ของ OSTree อธิบายว่ารายการบูตมีostree=อาร์กิวเมนต์เคอร์เนล ซึ่ง initramfs ใช้เพื่อค้นหาการปรับใช้ที่เลือก สำหรับระบบที่มีการเข้ารหัส LVM RAID Secure Boot หรือที่เก็บข้อมูลที่ผิดปกติ ตรวจสอบให้แน่ใจว่า initramfs มีโมดูลและคีย์ที่จำเป็นก่อนทำการทดสอบ อย่าคิดว่ารายการบูต Debian ทั่วไปที่ใช้งานได้จะบูตการปรับใช้ OSTree โดยอัตโนมัติ
สำหรับการติดตั้งครั้งแรก ให้ทำตามคำแนะนำของตัวติดตั้งหรือตัวสร้างอิมเมจสำหรับเส้นทางบูตที่ถูกต้องของคุณ คำสั่งพื้นฐานเช่นนั้นostree admin deployจะจัดคิวการคอมมิตเป็นการติดตั้งเริ่มต้นบนระบบ OSTree ที่กำหนดค่าไว้แล้วเท่านั้น มันไม่ได้เปลี่ยนการติดตั้ง Debian ที่กำลังทำงานอยู่ให้เป็นระบบนั้น
7. บูต ตรวจสอบ และทดสอบการย้อนกลับ
บูตเครื่องเสมือน (VM) เข้าสู่การปรับใช้ใหม่ และตรวจสอบมากกว่าแค่หน้าจอเข้าสู่ระบบ: ตรวจสอบการเชื่อมต่อเครือข่าย การเร่งความเร็วของกราฟิก เสียง การพักเครื่องและการกลับมาทำงาน การเชื่อมต่อพื้นที่จัดเก็บข้อมูล การอัปเดต และพฤติกรรมของแอปพลิเคชัน จากนั้นตรวจสอบรายการการปรับใช้:
sudo ostree admin status
คำสั่งนี้จะแสดงรายการการปรับใช้ที่มีอยู่และทำเครื่องหมายการปรับใช้ที่กำลังบูตอยู่ เก็บการปรับใช้ที่ใช้งานได้ดีก่อนหน้านี้ไว้ในระหว่างการทดสอบ หากอิมเมจใหม่ล้มเหลว ให้ใช้เมนูบูตเพื่อเลือกการปรับใช้ก่อนหน้า หรือใช้ขั้นตอนการย้อนกลับของ OSTree ที่ระบุไว้สำหรับเวอร์ชันที่ติดตั้งไว้ ตรวจสอบให้แน่ใจว่าเดสก์ท็อปเวอร์ชันก่อนหน้าเริ่มต้นทำงานและข้อมูลผู้ใช้ยังคงอยู่ครบถ้วน OSTree จะจัดการเวอร์ชันของโครงสร้างระบบปฏิบัติการ แต่จะไม่กู้คืนไฟล์ส่วนบุคคลหรือย้อนกลับการเปลี่ยนแปลงของแอปพลิเคชันทุกตัวต่อข้อมูลที่ใช้ร่วมกันโดย/varอัตโนมัติ
ทดสอบเมนูบูตและเตรียมระบบปฏิบัติการที่ใช้งานได้ดีไว้ใช้งานก่อนที่จะยอมรับการอัปเดต
8. กำหนดกระบวนการอัปเดตและบำรุงรักษา
เพื่อให้เดสก์ท็อปสามารถบำรุงรักษาได้ การอัปเดตระบบปฏิบัติการแต่ละครั้งควรมาจาก commit ใหม่ที่ตรวจสอบได้ ควรตัดสินใจว่าใครจะเป็นผู้สร้าง การอัปเดตแพ็กเกจ Debian จะเข้าสู่ tree อย่างไร การอัปเดตเคอร์เนลและเฟิร์มแวร์จะได้รับการทดสอบอย่างไร commit จะส่งไปยังไคลเอ็นต์อย่างไร และเวอร์ชันก่อนหน้าจะถูกเก็บไว้นานแค่ไหน หากผู้ใช้ต้องการแอปพลิเคชันเพิ่มเติม ควรเลือกวิธีการส่งมอบแอปพลิเคชันที่ได้รับการสนับสนุน เช่น Flatpak ในกรณีที่เหมาะสม แทนที่จะเปลี่ยนแปลงระบบปฏิบัติการพื้นฐานโดยไม่แจ้งให้ทราบล่วงหน้าด้วยคำสั่ง APT ทั่วไป
วางแผนสถานะอย่างรอบคอบ การติดตั้งเวอร์ชันใหม่กว่าอาจถ่ายโอน/etcการแก้ไขในเครื่อง แต่การเปลี่ยนแปลงการกำหนดค่าอาจยังคงต้องได้รับการตรวจสอบจากผู้ดูแลระบบ ข้อมูลใน/varระบบจะใช้ร่วมกันระหว่างการติดตั้ง ดังนั้นการย้อนกลับระบบปฏิบัติการจึงไม่จำเป็นต้องย้อนกลับโครงสร้างฐานข้อมูลหรือรูปแบบข้อมูลแอปพลิเคชัน ไฟล์ของผู้ใช้ควรมีแผนการสำรองข้อมูลและการกู้คืนของตนเอง ไฟล์ระบบที่ไม่สามารถเปลี่ยนแปลงได้จะช่วยเพิ่มความสามารถในการเปลี่ยนเวอร์ชันระบบปฏิบัติการ แต่ไม่ได้ทำให้สถานะของเครื่องทั้งหมดเป็นแบบทำธุรกรรมได้
ใช้ostree admin statusเพื่อตรวจสอบว่าการปรับใช้ใดกำลังใช้งานอยู่ และการปรับใช้ก่อนหน้านี้ยังคงใช้งานได้หรือไม่
รายการตรวจสอบความพร้อมเชิงปฏิบัติ
กระบวนการสร้างสามารถทำซ้ำได้และกำหนดเป้าหมายไปยังเวอร์ชันและสถาปัตยกรรม Debian ที่ต้องการ
โครงสร้างไดเร็กทอรีรากใช้รูปแบบการกำหนดค่าที่คาดหวังของ OSTree รวมถึงเคอร์เนลและ initramfs ที่ตรงกัน และมีไดรเวอร์เดสก์ท็อปที่จำเป็น
เป้าหมายคือการใช้ dracut และ bootloader ที่รองรับโดย Debian ซึ่งได้รับการทดสอบใน VM ก่อนการติดตั้งบนฮาร์ดแวร์
การติดตั้งใหม่จะเริ่มต้นที่หน้าเดสก์ท็อป และสามารถเลือกและเรียกใช้งานการติดตั้งก่อนหน้าได้
การสำรองข้อมูลครอบคลุมทั้งข้อมูลผู้ใช้และสถานะใดๆ ที่การย้อนกลับระบบปฏิบัติการไม่สามารถกู้คืนได้
มีขั้นตอนที่จัดทำเป็นเอกสารไว้สำหรับการอัปเดตแพ็กเกจ การสร้างอิมเมจใหม่ การลงนามหรือตรวจสอบเวอร์ชัน และการทดสอบการเปลี่ยนแปลงเคอร์เนล
สำหรับเดสก์ท็อปสมมุติของมายา ผลลัพธ์ที่ได้คืออิมเมจ OSTree ที่ผ่านการทดสอบแล้วซึ่งได้มาจาก Debian และวิธีการที่ทำซ้ำได้ในการสร้างการใช้งานครั้งต่อไป ไม่ใช่การติดตั้ง Debian ที่ไม่ถูกแตะต้องแล้วกลายเป็นสิ่งที่เปลี่ยนแปลงไม่ได้อย่างน่าอัศจรรย์ เริ่มต้นในเครื่องเสมือน (VM) รักษาขั้นตอนการอัปเดตให้เรียบง่าย และย้ายไปยังฮาร์ดแวร์จริงก็ต่อเมื่อการรวมระบบบูต ไดรเวอร์เดสก์ท็อป และเส้นทางการย้อนกลับทำงานได้สำหรับเครื่องที่ต้องการแล้วเท่านั้น
เอกสารหลัก