ตกลงหลังจากบิตของการค้นหารอบฉันพบวิธีกำจัดปัญหานี้อย่างน้อยก็ชั่วคราวค่อนข้างง่าย แต่ฉันไม่ได้ติดตั้งระบบของฉันด้วย btrfs ดังนั้นฉันไม่สามารถยืนยันการแก้ไขนี้ได้
แสดงความคิดเห็นหรือลบบรรทัดนี้:
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
หรือ
if [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env \
recordfail; fi; fi
ในไฟล์นี้
/etc/grub.d/00_header
จากนั้นเรียกใช้
update-grub
เหตุผลที่ไม่แก้ไข/boot/grub/grub.cfg
โดยตรงก็คือมันจะถูกเขียนทับทุกครั้งที่มีการอัพเดตด้วงในกรณีนี้คุณจะต้องทำการ "แก้ไข" ซ้ำอีกครั้งหากมีการอัพเดตแพ็คเกจทั่วไปของด้วง
นี่คือบั๊กบน launchpad หากคุณต้องการเพิ่มบั๊กของตัวเอง# 736743
การอ้างอิงColin Watsonจากรายงานข้อผิดพลาด
นี่เป็นข้อความแสดงข้อผิดพลาดที่ทำให้เข้าใจผิด: สิ่งที่เกิดขึ้นคือการติดตั้ง btrfs ของ GRUB นั้นไม่ได้ใช้ส่วนต่อประสานการอ่านไฟล์สำหรับการส่งกลับรายการบล็อกไปยังรหัสโทรศัพท์ ฉันโพสต์ไปที่ grub-devel เกี่ยวกับเรื่องนี้และผู้ดูแลระบบต้นน้ำชี้ให้เห็นว่าแม้จะมีปัญหาหลายอุปกรณ์การเขียนไปยัง btrfs จาก GRUB นั้นมีความเสี่ยงพื้นฐานเพราะ:
บล็อกเดียวกันอาจถูกใช้โดยหลายสแนปชอตทุกทรีที่ใช้บล็อกที่กำหนดจะมีการตรวจสอบของมันและอื่น ๆ ซ้ำ
อย่างไรก็ตาม btrfs สงวนพื้นที่เมื่อเริ่มต้นสำหรับบูตโหลดเดอร์ พื้นที่นี้มากกว่า GRUB จำเป็นต้องฝังตัวเองและดังนั้นเราจึงสามารถใช้ 1KB สำหรับบล็อกสิ่งแวดล้อม
ไม่ว่าในกรณีใด ๆ นี่ไม่ใช่ปัญหาใหม่ที่เกิดขึ้นจากการใช้ subvolumes และไม่ป้องกันการบูท (คุณจะได้รับข้อความแจ้งว่า "กดปุ่มใด ๆ เพื่อดำเนินการต่อ" แต่ถ้าคุณไม่สนใจมันจะทำการบูตต่อไป) ลดระดับเป็นสิ่งที่ปรารถนา
หวังว่านี่จะช่วยได้