วิธีทำให้เคอร์เนล Linux 4 ตัวใน / boot เป็นค่าเริ่มต้นก่อนที่จะถูกลบโดยอัตโนมัติ


12

ฉันขุดไปรอบ ๆ และพบว่าการทำความสะอาดอัตโนมัติสำหรับเมล็ดอยู่ใน/etc/kernel/postinst.d/apt-auto-removalและสถานะไฟล์:

# In the common case this results in two kernels saved (booted into the
# second-latest kernel, we install the latest kernel in an upgrade), but
# can save up to four. Kernel refers here to a distinct release, which can
# potentially be installed in multiple flavours counting as one kernel.

แต่สคริปต์นั้นอยู่เหนือหัวของฉันและฉันไม่สามารถหาวิธีทำให้ใหม่อัตโนมัติได้อย่างง่ายดายยกเว้นเมล็ด 4 อันสุดท้าย


คุณต้องแก้ไขสคริปต์ในหลาย ๆ ที่ไม่มีวิธีอื่น หากคุณต้องการคุณสามารถยื่นรายงานข้อผิดพลาด "สิ่งที่อยากได้" ในaptแพ็คเกจเพื่อให้สามารถกำหนดจำนวนเมล็ดได้
fkraiem

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

คำตอบ:


12

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

debkernels="$(echo "$latest_version
$installed_version
$running_version
$previous_version" | sort -u | sed -e '/^$/ d')"

ฉันคิดว่าวิธีที่ง่ายที่สุดที่จะเอาเมล็ดนี้ไปเก็บไว้ที่เก่ากว่าก็คือขยาย$previous_versionไปยังรายการ แทน:

previous_version="$(echo "$debverlist" | sed -n 2p)"

ทำ:

previous_version="$(echo "$debverlist" | sed -n 2,4p)"

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

@fkraiem ไฟล์ที่อยู่ใน/etcดังนั้นจึงสันนิษฐานว่า conffile และการเปลี่ยนแปลงควรได้รับการเก็บรักษาไว้ (หรืออย่างน้อยผู้ใช้จะถูกถามเกี่ยวกับพวกเขา)
muru

1
ใช่ไฟล์ทั้งหมดที่อยู่ภายใต้/etcconffiles แต่ดูเหมือนว่าผู้ใช้มักจะสับสนเมื่อ "เก็บหรือแทนที่?" คำถามปรากฏขึ้น ...
fkraiem

1
ฉันจะไม่สับสน ... @fkraiem
Fabby

ยังคงบ่น: The following packages were automatically installed and are no longer required: linux-headers-4.10.0-38 linux-headers-4.10.0-38-generic linux-image-4.10.0-38-generic linux-image-extra-4.10.0-38-generic linux-signed-image-4.10.0-38-generic Use 'sudo apt autoremove' to remove them. แต่นั่นเป็นปฏิบัติการและฉันจะหยุดกังวลเกี่ยวกับมันและได้ปรับคำถามให้เหมาะกับคำตอบ :-)
Fabby
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.