ทำไมการลบเมล็ดเก่าจึงไม่ปลอดภัย


36

ฉันมีพื้นที่ว่างในไดรฟ์บูตของฉันดังนั้นฉันตัดสินใจที่จะลบเมล็ดเก่า ผมพบว่าหน้านี้ซึ่งอธิบายว่าสิ่งที่ฉันควรจะทำอย่างไร: Lubuntu เอกสาร: เอาเมล็ดเก่า

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

ฉันไม่เข้าใจจริงๆว่าอันตรายคืออะไรที่นี่ ฟังดูงี่เง่า แต่พวกเขาดูเหมือนจะบอกว่าอาจมีเคอร์เนลมากกว่าหนึ่งตัวที่ใช้โดยเครื่องเฉพาะในเวลาเดียวกัน

เป็นไปได้หรือไม่ว่าแอพพลิเคชั่นต่าง ๆ ในเครื่อง Ubuntu ของฉันสามารถใช้เมล็ดที่แตกต่างกันในเวลาเดียวกันได้หรือไม่? ทำไมการลบเมล็ดเก่าทั้งหมดจึงถูกพิจารณาว่าเป็นอันตรายโดยอัตโนมัติ


8
ที่จริงแล้วบทความไม่มีคำว่า "อันตราย" และ "ไม่ปลอดภัย" อยู่ในนั้น คุณได้ข้อสรุปที่พูดเกินจริงอย่างไม่มีการลดได้อย่างไร?
เล็ก ๆ น้อย ๆ

2
สองสามครั้งที่ฉันได้อัพเกรดเคอร์เนลล่าสุดและลบเคอร์เนลเก่าของฉันก่อนที่จะรีบูตเพียงเพื่อจะพบว่า (ในระบบของฉันโดยเฉพาะ) เคอร์เนลไม่ทำงานและระบบจะไม่บูต ตอนนี้ฉันทำการรีบู๊ตก่อนจากนั้นจึงถอดเคอร์เนลเก่าถ้าทั้งหมดนั้นดี
Matthew อ่าน

คำตอบ:


50

ถอดเมล็ดเก่าไม่ปลอดภัยโดยเนื้อแท้ แต่ถ้าคุณเอาทุกเมล็ดและบูตของคุณคุณจะถูกทิ้งไว้ที่หน้าจอด้วงโกรธ การแก้ไขที่ต้องใช้ความรู้ที่สำคัญ (เช่นนั้น แต่ด้วยการapt-get install linux-genericสิ้นสุด)

ครั้งแรกที่คุณทำเช่นนี้ค่อนข้างน่าตื่นเต้น แต่คนที่กำลังมองหาการล้างเมนู Grub หรือกู้คืนพื้นที่ว่างในดิสก์บางอย่างไม่ได้มองหาความตื่นเต้น

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

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


11
อย่าลบเคอร์เนลของคุณทั้งหมด (อย่างชัดเจน) แต่อย่าเอาเคอร์เนลที่กำลังทำงานอยู่ออกหากคุณเพิ่งติดตั้งเคอร์เนลที่อัปเดตแล้วและยังไม่ได้รีบูต ทำไม? หากมีบางสิ่งผิดปกติในเคอร์เนลที่อัพเดตคุณสามารถเลือกเคอร์เนลก่อนหน้าของคุณใน Grub และกลับไปใช้งานได้ มิฉะนั้นคุณจะติดอยู่กับระบบที่ไม่สามารถบูตได้และต้องเล่น "เกม LiveCD" (ไม่ใช่เกมสนุก BTW)
นาธานออสมัน

1
dd if=/dev/zero of=/dev/sda bs=512 count=1ที่เกือบจะเป็นความสนุกสนานเป็น ฉันจำไม่ได้ว่าฉันพยายามทำอะไร (บางอย่างเกี่ยวกับตัวจัดการการบูตหลายตัวทำให้ชีวิตของฉันน่ารำคาญ) ฉันใช้เวลาประมาณเจ็ดชั่วโมงกับ LiveCD ที่พยายามซ่อมแซมตารางพาร์ติชันของฉัน
phyrfox

1
มันง่ายที่จะเก็บ (อย่างน้อย) หนึ่งเคอร์เนลที่ผ่านการทดสอบและทำงานได้อย่างแน่นอน ใครบางคน - @NathanOsman - ต้องใส่มันเข้าไปในคำที่ฉันเดา บทเรียนสำคัญที่สองได้เรียนรู้ที่นี่อย่าทำสิ่งที่คุณไม่ทราบว่าเป็นผลมาจากอะไร
Nicolai

1
ฉันจะไม่ใช้คำว่า "น่าตื่นเต้น" แต่ความรู้สึกนั้นรุนแรงเมื่อฉันทำ
MDeBusk

มีปัญหาเคอร์เนลคงที่ในอดีตฉันมีความสุขมากที่จะออกจากเมล็ดสาม ฉันมักจะไปกับเคอร์เนลที่กำลังทำงานอยู่เคอร์เนลใหม่ล่าสุดและอันที่อยู่ข้างหน้าเคอร์เนลปัจจุบัน สิ่งนี้ทำให้ฉันได้รับการรีบูตครั้งล่าสุดเป็นที่รู้จักในการทำงานและก่อนหน้านี้หากไม่สามารถทำได้ด้วยเหตุผลบางประการ นั่นอาจเป็น overkill แต่ได้รับการอนุมัติจาก CYA
flickerfly

4

เมล็ดเก่าเป็นส่วนหนึ่งของแพ็คเกจ หากคุณเพิ่งลบ/boot/vmlinuz-3.13.0-44-genericคุณจะปล่อยให้เศษ crumbs ทั่ว

ก่อนอื่นให้ตรวจสอบว่าคุณใช้เคอร์เนลตัวใดอยู่ ห้ามลบอะไรด้วยค่านี้เป็นชื่อ:

$ uname -r  
3.13.0-49-generic  

YMMV จากนั้นถามdpkgสิ่งที่รู้:

$ dpkg -l linux-*

แพ็คเกจเหล่านี้บางส่วนสามารถลบออกได้ แต่มีอะไรอีกบ้าง ใช้หนึ่งบรรทัดที่แยก (บนระบบ MY) จากเอาต์พุตของdpkg -l linux-*:

 ii  linux-image-3.13.0-44-generic       3.13.0-44.73           amd64                  Linux kernel image for version 3.13.0 on 64 bit x86 SMP

ตอนนี้เราจะดูว่าแพ็คเกจอื่นมีอะไรบ้าง-3.13.0-44ในชื่อ:

$ dpkg -l *-3.13.0-44*

เมื่อคุณทำการตรวจสอบขั้นสุดท้ายเพื่อให้แน่ใจว่าเคอร์เนลปัจจุบัน ( uname -r) ไม่ได้อยู่ในรายการแพ็กเกจคุณสามารถเริ่มลบออกผ่านระบบจัดการแพ็คเกจที่คุณเลือก


0

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

เรื่องสั้นสั้นมันเป็นสิ่งที่สามารถทำให้ยุ่งเหยิงได้ง่ายส่งผลให้ระบบอิฐที่สามารถกู้คืนได้ยาก


0

มันไม่ปลอดภัย การใช้ Linux คุณสามารถทำสิ่งที่คุณต้องการได้หากคุณรู้คำสั่งที่ถูกต้อง

ใน/bootไดเรกทอรีคุณสามารถทำรายการง่ายๆls -laแบบยาวรวมถึงค้นหาไฟล์หรือไดเรกทอรีที่ซ่อนอยู่ (ซึ่งไม่ควรจะอยู่ที่นั่นถ้ามี !!)

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

ในบางจุดฉันคิดว่ามันอาจเป็นไปได้ว่าถ้าคุณได้รวบรวมเคอร์เนลของคุณจากแหล่งที่มาแล้วคุณจะต้องปรับแต่งใหม่ .configไฟล์ซึ่งผมไม่คิดว่าเป็นกรณีตามคำอธิบายของคุณจะอยู่ที่นั่น

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

ทางออกที่ง่ายคือการบูตเครื่องด้วย USB สดหรือ CD / DVD Linux ในนั้นและอีกครั้งสร้างเคอร์เนลด้วยเครื่องมือเช่นchrootdracut

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.