วิธีแก้ไขข้อผิดพลาด GPG: ไม่สามารถตรวจสอบลายเซ็นต่อไปนี้ได้ใน Ubuntu
แก้ไขข้อผิดพลาดลายเซ็น APT ของ Ubuntu อย่างปลอดภัย ระบุปัญหา NO_PUBKEY, EXPKEYSIG, BADSIG, นาฬิกา และการกำหนดค่าที่เก็บโดยไม่ต้องปิดใช้งานการตรวจสอบแพ็กเกจ
การอัปเดต SLES ที่ล้มเหลวไม่ได้หมายความว่าคุณต้องติดตั้งเซิร์ฟเวอร์ใหม่เสมอไป ในการติดตั้ง SUSE Linux Enterprise Server มาตรฐานที่ใช้ Btrfs สำหรับระบบไฟล์รูทและเปิดใช้งาน Snapper คุณมักจะสามารถบูตสแนปช็อตก่อนการอัปเดต ทดสอบโดยไม่ต้องเปลี่ยนแปลงระบบปัจจุบัน แล้วทำให้สถานะที่ใช้งานได้ดีนั้นเป็นรูทที่สามารถเขียนได้ใหม่
การตัดสินใจที่สำคัญไม่ได้อยู่ที่ว่า “สแนปช็อตไหนใหม่ที่สุด?” แต่คือ “ฉันควรย้อนกลับไปมากแค่ไหน?” การย้อนกลับระบบ Snapper แบบเต็มรูปแบบนั้นเหมาะสมเมื่อการอัปเดตเปลี่ยนแปลงแพ็กเกจ ไลบรารี บริการ หรือไฟล์การกำหนดค่าหลายรายการ และเครื่องไม่ทำงานอย่างน่าเชื่อถืออีกต่อไป หากมีเพียงไฟล์การกำหนดค่าเดียวที่ผิดพลาด การกู้คืนไฟล์นั้นมักจะส่งผลกระทบน้อยกว่า คู่มือนี้อธิบายทั้งสองทางเลือกและเป็นไปตามแบบจำลองการกู้คืน SLES 15 SP7 ที่ SUSE ได้บันทึกไว้ว่าจะพร้อมใช้งานในเดือนตุลาคม 2026
| สถานการณ์ | ตัวเลือกเริ่มต้นที่ดีที่สุด | การแลกเปลี่ยนหลัก |
|---|---|---|
| เซิร์ฟเวอร์จะไม่สามารถบูตได้ตามปกติหลังจากการอัปเดต | บูตสแนปช็อต Btrfs แบบอ่านอย่างเดียวจาก GRUB ทดสอบ แล้วจึงรันsnapper rollback | การกู้คืนแบบครอบคลุม แต่จะกู้คืนเฉพาะเนื้อหาหลักที่ถูกบันทึกสแนปช็อตไว้เท่านั้น |
| เซิร์ฟเวอร์เริ่มทำงานได้ แต่มีหลายแพ็กเกจหรือบริการที่ใช้งานไม่ได้พร้อมกัน | ใช้ขั้นตอนการย้อนกลับแบบบูตและทดสอบแบบเดียวกัน | จำเป็นต้องรีบูตเครื่อง แต่จะช่วยหลีกเลี่ยงการคาดเดาว่าไฟล์ใดเป็นสาเหตุของปัญหา |
ไฟล์หนึ่งที่ทราบแล้ว/etcได้รับความเสียหาย | ตรวจสอบด้วยsnapper status/ diffจากนั้นใช้undochangeสำหรับไฟล์นั้น | ผลกระทบน้อยกว่า แต่ไม่เหมาะสำหรับการขนส่งพัสดุขนาดใหญ่ |
| การย้าย Service Pack ล้มเหลว | ใช้สแนปช็อตก่อนการย้ายข้อมูล จากนั้นตรวจสอบที่เก็บข้อมูลและการลงทะเบียนผลิตภัณฑ์ | สถานะของที่เก็บข้อมูลมีความสำคัญหลังจากการกู้คืน |
| รูทไม่ใช่ Btrfs, Snapper ถูกปิดใช้งาน หรือโครงสร้างรูทที่รองรับมีการเปลี่ยนแปลง | ใช้ข้อมูลสำรอง สื่อกู้คืน การซ่อมแซมแพ็กเกจ หรือแผนการกู้คืนอื่นๆ | ขั้นตอนการย้อนกลับสแนปช็อตมาตรฐานของ SLES ไม่สามารถใช้งานได้ |
SUSE แยก ความแตกต่าง ระหว่างการยกเลิกการเปลี่ยนแปลง และ การย้อนกลับระบบการยกเลิกการเปลี่ยนแปลงจะเปรียบเทียบสแนปช็อตและย้อนกลับการเปลี่ยนแปลงไฟล์ที่เลือก การย้อนกลับจะใช้สถานะสแนปช็อตเป็นพื้นฐานสำหรับรูทที่สามารถเขียนได้ใหม่ SUSE แนะนำเป็นพิเศษให้บูตสแนปช็อตเป้าหมายก่อนเมื่อทำการย้อนกลับระบบไฟล์รูท เนื่องจากจะทำให้คุณมีโอกาสตรวจสอบตัวเลือกก่อนที่จะยืนยัน โปรดดูคู่มือการดูแลระบบ SLES 15 SP7
ก่อนเลือกสแนปช็อต ให้ยืนยันสามสิ่งต่อไปนี้: ระบบไฟล์รูทคือ Btrfs, Snapper มีการกำหนดค่าชื่อrootและรูท Btrfs อยู่บนอุปกรณ์เดียว SUSE ระบุในเอกสารว่ารองรับการย้อนกลับแบบบูตได้สำหรับโครงสร้างซับโวลุ่มรูทเริ่มต้น และกล่าวว่าระบบไฟล์รูท Btrfs ต้องรายงานว่ามีอุปกรณ์เพียงเครื่องเดียว
findmnt /
sudo snapper list-configs
sudo /sbin/btrfs filesystem show /

หากfindmnt /รายงานระบบไฟล์เช่น XFS หรือ Ext4 ให้หยุด: เวิร์กโฟลว์การบูตสแนปช็อต Btrfs ไม่พร้อมใช้งานสำหรับรูทนั้น หากsnapper list-configsไม่มีrootรายการใด ๆ อาจเป็นเพราะไม่ได้เปิดใช้งานสแนปช็อตรูทอัตโนมัติ นอกจากนี้ ให้หยุดหากbtrfs filesystem show /รายงานอุปกรณ์มากกว่าหนึ่งรายการ เอกสาร SLES 15 SP7 ไม่ได้ระบุว่าเค้าโครงดังกล่าวรองรับการย้อนกลับรูทที่บูตได้
แสดงรายการสแนปช็อตและตรวจสอบวันที่ ประเภท ความสัมพันธ์ก่อนสแนปช็อต และคำอธิบาย:
sudo snapper list

ในการตั้งค่า SLES ตามค่าเริ่มต้น กิจกรรม YaST และ Zypper สามารถสร้างpreและpostจับคู่สแนปช็อตได้preสแนปช็อตแสดงถึงสถานะของระบบไฟล์ก่อนเกิดธุรกรรมpostสแนปช็อตที่ตรงกันจะแสดงสถานะหลังจากนั้น อย่าเลือกสแนปช็อตเพียงเพราะมันเก่ากว่าช่วงเวลาที่เกิดความล้มเหลว ให้จับคู่เวลาและคำอธิบายของสแนปช็อตกับช่วงเวลาการอัปเดต
หากการเปลี่ยนแปลงที่ล้มเหลวเป็นการย้าย Service Pack คู่มือการอัปเกรด SLES 15 SP7 ของ SUSE ระบุอย่างชัดเจนให้ผู้ดูแลระบบค้นหาสแนปช็อตที่สร้างขึ้นก่อนการย้ายทันที และระบุว่าสแนปช็อตที่เกี่ยวข้องนั้นมีเครื่องหมายสำคัญ
หากระบบปัจจุบันยังคงบูตได้ ให้เปรียบเทียบสแนปช็อตที่คาดการณ์ไว้กับสถานะปัจจุบันก่อนที่จะรีบูต วิธีนี้จะช่วยให้ทราบได้ว่าการอัปเดตเปลี่ยนแปลงเฉพาะไฟล์การกำหนดค่าไฟล์เดียวหรือเปลี่ยนแปลงไฟล์ระบบจำนวนมาก
sudo snapper status SNAPSHOT_ID..0
sudo snapper diff SNAPSHOT_ID..0 /etc/some-file.conf

หากไฟล์ที่ทราบว่ามีปัญหาเพียงไฟล์เดียว และส่วนอื่นๆ ของระบบที่อัปเดตแล้วทำงานได้ปกติ การกู้คืนเฉพาะไฟล์นั้นจะช่วยหลีกเลี่ยงการย้อนกลับการเปลี่ยนแปลงระบบที่ไม่เกี่ยวข้อง SUSE ได้ระบุรูปแบบนี้ไว้ในเอกสาร:
sudo snapper -c root -v undochange SNAPSHOT_ID..0 /etc/some-file.conf
อย่าละเลยชื่อไฟล์โดยเด็ดขาด หากไม่มีชื่อไฟล์undochangeจะสามารถย้อนกลับการเปลี่ยนแปลงไฟล์ทั้งหมดระหว่างสองสถานะได้ SUSE เตือนว่าการใช้การกู้คืนไฟล์เพื่อเลียนแบบการย้อนกลับอย่างสมบูรณ์นั้นไม่ใช่วิธีที่แนะนำ การทำธุรกรรมแพ็กเกจอาจเปลี่ยนแปลงไฟล์ที่เกี่ยวข้องกันหลายไฟล์ ดังนั้นการย้อนกลับที่ผ่านการทดสอบอย่างสมบูรณ์จึงมักจะเข้าใจได้ง่ายกว่าเมื่อความล้มเหลวในการอัปเดตเกิดขึ้นกับระบบ
รีบูตเครื่อง ในเมนู SLES GRUB 2 ให้เลือกตัวเลือกสำหรับการเริ่มต้นบูตโหลดเดอร์จากสแนปช็อตแบบอ่านอย่างเดียว จากนั้นเลือกสแนปช็อตที่ตรงกับสถานะก่อนการอัปเดต รูปแบบหน้าจออาจแตกต่างกันไปตามเฟิร์มแวร์และการกำหนดค่าบูต แต่เอกสาร SLES 15 SP7 ระบุรายการนี้ว่า " เริ่มต้นบูตโหลดเดอร์จากสแนปช็อตแบบอ่านอย่างเดียว "

เฉพาะสแนปช็อตจากค่าเริ่มต้นrootของการกำหนดค่า Snapper เท่านั้นที่สามารถบูตได้ผ่านกลไก SLES นี้ หากไม่มีเมนูสแนปช็อต อย่าสร้างรายการบูต ตรวจสอบอีกครั้งว่า Snapper เปิดใช้งานอยู่หรือไม่ โครงสร้างรูทยังคงเป็นโครงสร้างเริ่มต้นที่รองรับหรือไม่ และบูตโหลดเดอร์ที่ติดตั้งใช้งานได้หรือไม่
หลังจากที่สแนปช็อตเริ่มทำงานแล้ว โปรดตรวจสอบให้แน่ใจว่าคุณกำลังใช้งานจากสแนปช็อตนั้นจริง ๆ และระบบไฟล์รูทอยู่ในโหมดอ่านอย่างเดียว:
findmnt /
mount | grep ' on / '

ตอนนี้ให้ทดสอบสิ่งต่างๆ ที่ล้มเหลวหลังจากการอัปเดต เช่น การเริ่มต้นบริการ การกำหนดค่าเครือข่าย การตรวจสอบสิทธิ์ การเปิดใช้งานแอปพลิเคชัน พฤติกรรมที่ขึ้นอยู่กับเคอร์เนล หรือการตรวจสอบอื่นๆ ที่เกี่ยวข้อง หลีกเลี่ยงการใช้งานสแนปช็อตแบบอ่านอย่างเดียวเหมือนกับการบูตระบบปกติ เพราะบางการทำงานจะล้มเหลวเนื่องจากส่วนของระบบไฟล์รูทที่ถูกสร้างสแนปช็อตนั้นไม่สามารถเขียนได้
หากสแนปช็อตที่เลือกไม่ใช่ไฟล์ที่ถูกต้อง ให้รีบูตเครื่องแล้วลองไฟล์อื่นดู จนกว่าคุณจะรันคำสั่งย้อนกลับ คุณจะยังไม่ได้ทำให้สแนปช็อตนั้นเป็นรูทระบบที่สามารถเขียนได้ใหม่
เมื่อสแนปช็อตที่บูตขึ้นมาทำงานได้ตามที่คาดหวังแล้ว ให้ทำการบันทึกแบบถาวร:
sudo snapper rollback
คุณสามารถเพิ่มคำอธิบายเพื่อให้ง่ายต่อการระบุภาพถ่ายที่ได้ในภายหลัง:
sudo snapper rollback -d "Rollback after failed update"

ตามเอกสารการดูแลระบบ SLES ระบุว่า Snapper จะสร้างสแนปช็อตของสถานะก่อนการย้อนกลับ และสร้างสแนปช็อตใหม่ที่สามารถเขียนได้ ซึ่งจะกลายเป็นรูทเริ่มต้น นี่เป็นคุณสมบัติด้านความปลอดภัยที่สำคัญ: การย้อนกลับจะไม่เขียนทับรูทเก่าโดยตรง
รีบูตเครื่องหลังจากคำสั่งทำงานเสร็จสิ้น:
sudo reboot
ในการบูตครั้งถัดไป ให้เลือกรายการ SLES เริ่มต้นตามปกติ แทนที่จะบูตสแนปช็อตแบบอ่านอย่างเดียวเก่าอีกครั้ง
หลังจากบูตเครื่องตามปกติแล้ว ให้ตรวจสอบรายการเมานต์รูทและสแนปช็อต:
findmnt /
sudo snapper list

ทำการตรวจสอบการทำงานซ้ำอีกครั้งในส่วนที่ล้มเหลวในครั้งแรก หากแอปพลิเคชันยังคงล้มเหลว ให้พิจารณาว่าส่วนใดส่วนหนึ่งของแอปพลิเคชันนั้นอยู่ในไดเร็กทอรีที่ไม่ได้รวมอยู่ในสแนปช็อตหลักหรือไม่
สำหรับการอัปเดตแพ็กเกจทั่วไป ให้รีเฟรชที่เก็บข้อมูลและตรวจสอบการพึ่งพาของแพ็กเกจก่อนที่จะพยายามอัปเดตอีกครั้ง สำหรับการย้อนกลับ Service Pack การตรวจสอบที่เก็บข้อมูลและการลงทะเบียนผลิตภัณฑ์มีความสำคัญเป็นพิเศษ เนื่องจากชุดที่เก็บข้อมูลที่ไม่ตรงกันอาจทำให้ระบบกลับเข้าสู่สถานะที่ไม่สอดคล้องกันได้ทันที
sudo zypper ref -fs
sudo zypper lr -u
sudo zypper verify

สำหรับการกู้คืน Service Pack ให้ตรวจสอบตามคำแนะนำในคู่มือการอัปเกรด SLES อย่างเป็นทางการ ซึ่งระบุไว้อย่างชัดเจนว่าให้ตรวจสอบการกำหนดค่า Repository และการลงทะเบียนผลิตภัณฑ์หลังจากทำการ Rollback แล้ว
นี่คือข้อจำกัดที่สำคัญที่สุดที่ต้องทำความเข้าใจก่อนใช้งานฟังก์ชันย้อนกลับ (rollback) บนเซิร์ฟเวอร์ที่ใช้งานจริง สแนปช็อตรูทของ SLES ตามค่าเริ่มต้นจะยกเว้นซับโวลุ่มหลายรายการ เพื่อป้องกันไม่ให้ข้อมูลชั่วคราวและข้อมูลผู้ใช้หรือแอปพลิเคชันถูกย้อนกลับโดยไม่คาดคิด รายการเฉพาะผลิตภัณฑ์อาจรวมถึง/home, /opt, /usr/local, /srv, /tmp, /var, /run, และเส้นทางบูตโหลดเดอร์เฉพาะสถาปัตยกรรม โปรดดูเอกสารแนวคิดพื้นฐานของ Snapper จาก SUSE สำหรับรายการปัจจุบันและเหตุผลเบื้องหลัง
การออกแบบดังกล่าวช่วยปกป้องข้อมูล แต่ก็มีข้อแลกเปลี่ยนคือ โค้ดระบบอาจทำงานย้อนหลังไป ในขณะที่ข้อมูลในซับโวลุ่มที่ถูกยกเว้นยังคงอยู่ในสถานะที่ใหม่กว่า SUSE ชี้ให้เห็นถึงผลกระทบที่อาจเกิดขึ้นหลายประการ รวมถึงซอฟต์แวร์ของบุคคลที่สามอาจ/optไม่เข้ากัน สิทธิ์การเข้าถึงอาจเปลี่ยนแปลง และแอปพลิเคชันอาจไม่เข้าใจรูปแบบข้อมูลที่เขียนขึ้นหลังจากที่ทำการสร้างสแนปช็อตแล้ว
เรื่องนี้สำคัญอย่างยิ่งสำหรับฐานข้อมูลและแอปพลิเคชันเซิร์ฟเวอร์ หากการอัปเดตมีการย้ายสคีมาหรือเปลี่ยนแปลงข้อมูลแอปพลิเคชันภายใต้/varหรือ/srvการย้อนกลับแบบรูทอาจไม่สามารถย้อนกลับการเปลี่ยนแปลงข้อมูลนั้นได้ ตรวจสอบขั้นตอนการดาวน์เกรดหรือการกู้คืนของแอปพลิเคชันเองก่อนที่จะสรุปว่าสแนปช็อตของระบบเพียงอย่างเดียวนั้นเพียงพอแล้ว
undochangeสำหรับการทำธุรกรรมทั้งแพ็กเกจ วิธีนี้มีประโยชน์สำหรับไฟล์ที่เลือกไว้ SUSE แนะนำวิธีการบูตและย้อนกลับ (boot-and-rollback) สำหรับการกู้คืนระบบอย่างสมบูรณ์/varหรือ/homeเดินทางย้อนกลับไปพร้อมกับรูทการยกเว้นซับโวลุ่มเริ่มต้นเป็นไปตามเจตนาSLES สามารถติดตั้งโดยใช้บทบาทเซิร์ฟเวอร์ธุรกรรมได้เช่นกัน ซึ่งเป็นรูปแบบการทำงานที่แตกต่างออกไป กล่าวคือ การอัปเดตจะถูกนำไปใช้กับสแนปช็อตและเปิดใช้งานเมื่อรีบูตระบบ ในระบบเหล่านั้น SUSE จะมี ตัวเลือกให้ตั้งค่าสแนปช็อตเป็นรูทเริ่มต้น อย่าผสมผสานวิธีการกู้คืนเซิร์ฟเวอร์ธุรกรรมเข้ากับการติดตั้ง SLES แบบอ่าน - transactional-update rollbackเขียนทั่วไปโดยไม่ระบุบทบาทของระบบก่อน พฤติกรรมอย่างเป็นทางการมีอธิบายไว้ในเอกสารการอัปเดตธุรกรรมของ SLES 15 SP7
/ว่าเป็นระบบไฟล์ Btrfs rootมีการตั้งค่า Snapper และระบบไฟล์ Btrfs หลักอยู่บนอุปกรณ์เพียงเครื่องเดียวsnapper statusเมื่อsnapper diffคุณต้องการทำความเข้าใจขอบเขตของการเปลี่ยนแปลงundochangeเฉพาะสำหรับไฟล์ที่แยกออกมาอย่างชัดเจนเท่านั้นsnapper rollbackเฉพาะเมื่อผู้สมัครประพฤติตนเหมาะสมแล้วเท่านั้นข้อแลกเปลี่ยนที่สำคัญคือความแม่นยำกับความสม่ำเสมอ การกู้คืนไฟล์แบบเลือกเฉพาะส่วนจะเปลี่ยนแปลงน้อยกว่า แต่ต้องรู้แน่ชัดว่าอะไรเสียหาย การย้อนกลับระบบที่ผ่านการทดสอบแล้วจะเปลี่ยนแปลงมากกว่า แต่จะกู้คืนสถานะรากที่บันทึกไว้ได้อย่างสอดคล้อง และเหมาะสมกว่าสำหรับการอัปเดตที่ล้มเหลวซึ่งส่งผลกระทบต่อหลายส่วนประกอบ บน SLES ขั้นตอนการทำงานที่ปลอดภัยที่สุดคือการใช้การบูตสแนปช็อตแบบอ่านอย่างเดียวเป็นจุดตัดสินใจ แทนที่จะทำให้การย้อนกลับไม่สามารถย้อนกลับได้ก่อนที่คุณจะตรวจสอบตัวเลือกที่เหมาะสมแล้ว
แก้ไขข้อผิดพลาดลายเซ็น APT ของ Ubuntu อย่างปลอดภัย ระบุปัญหา NO_PUBKEY, EXPKEYSIG, BADSIG, นาฬิกา และการกำหนดค่าที่เก็บโดยไม่ต้องปิดใช้งานการตรวจสอบแพ็กเกจ
กำหนดค่า DM-Multipath บน SLES 15 ด้วยการค้นหาที่ปลอดภัย การตั้งค่าบริการ การเปลี่ยนแปลง multipath.conf น้อยที่สุด การอัปเดต initramfs และการตรวจสอบสถานะของเส้นทาง
กู้คืน SLES หลังจากการอัปเดตล้มเหลวด้วย Btrfs และ Snapper เปรียบเทียบตัวเลือกการย้อนกลับ ทดสอบสแนปช็อตอย่างปลอดภัย กู้คืนระบบ และตรวจสอบที่เก็บข้อมูล
ใช้ Liderahenk และ Ahenk เพื่อตั้งค่าภาพพื้นหลัง Pardus GNOME แบบกำหนดเอง ล็อกการตั้งค่าที่เลือกด้วย dconf และใช้งานนโยบายไคลเอ็นต์อื่นๆ ผ่านโครงการนำร่องที่ผ่านการทดสอบแล้ว
ตรวจสอบสาเหตุที่ Ubuntu Server เข้าสู่โหมดฉุกเฉิน ซ่อมแซมปัญหาทั่วไปของไฟล์ /etc/fstab และปัญหาการเมานต์อย่างปลอดภัย ตรวจสอบระบบไฟล์ และตรวจสอบการรีบูตตามปกติ
แก้ไขปัญหาแอป Flatpak ที่ไม่รองรับธีม GTK บน Ubuntu 24.04 ตรวจสอบส่วนขยายธีม พอร์ทัล GTK การตั้งค่าสว่างและมืด และข้อจำกัดของชุดเครื่องมือแอป
กำหนดค่า LIDER AHENK บน Pardus ด้วยการตั้งค่าที่เน้นคุณภาพ: ตรวจสอบข้อกำหนดเบื้องต้น ติดตั้ง Lider ลงทะเบียนไคลเอ็นต์ Ahenk และตรวจสอบความถูกต้องของการจัดการ
เปิดใช้งานไดรเวอร์ NVIDIA บน Pardus 23 ด้วยโปรแกรมติดตั้งไดรเวอร์ NVIDIA ของ Pardus ตรวจสอบความเข้ากันได้ของ GPU รีบูตอย่างปลอดภัย ตรวจสอบไดรเวอร์ และแก้ไขปัญหาทั่วไป
เปรียบเทียบการใช้งานดิสก์ หน่วยความจำ เวลาบูตเครื่อง บริการ และประสิทธิภาพการทำงานจริงของ Ubuntu Server 24.04 เวอร์ชัน Minimal และ Standard ด้วยวิธีการวัดผลที่สามารถทำซ้ำได้
แก้ไขข้อผิดพลาดการล็อกของ Zypper ใน SLES อย่างปลอดภัย ระบุโปรเซส เลือกว่าจะรอหรือหยุดโปรเซส และแยกความแตกต่างระหว่างการล็อกธุรกรรมกับการล็อกแพ็กเกจ