วิธีเพิ่มเคอร์เนลใหม่ให้กับ grub2


23

เราจะเพิ่มเคอร์เนลลงใน grub2 ได้อย่างไร? ฉันรู้ว่าสิ่งที่เราสามารถทำได้กับรุ่นเก่า แต่ดูเหมือนว่าจะมีการเปลี่ยนแปลง เราควรแก้ไขไฟล์อะไร

คำตอบ:


11

ในการเพิ่มเคอร์เนลใหม่ให้กับ grub2:

  1. ย้ายเคอร์เนลของคุณไปที่ / boot /
  2. เรียกใช้sudo update-grub

update-grub จะสแกนคอมพิวเตอร์ของคุณเพื่อหาเมล็ดและสร้างรายชื่อของเมล็ดที่มีอยู่ตอนบูต

เพื่อให้คุณเลือกเคอร์เนลที่จะทำการบูทตอนบูตคุณอาจต้องกดปุ่ม SHIFT ค้างไว้หลังจาก BIOS ทำการโพสต์

คุณสามารถแก้ไข/ etc / default / grubเพื่อเปลี่ยนตัวเลือกการบูตและพารามิเตอร์ที่คุณต้องการ

Non-Debian Linux

ดูโน้ตด้วงสำหรับการกระจายของคุณเช่นนี้Fedora ด้วง 2 เอกสาร

  • grub2-mkconfig -o /boot/grub2/grub.cfg

จะทำอย่างไรถ้าคุณมี 2 distros Linux ที่ไม่มีพาร์ติชั่น / บูตแยกกัน? คุณต้องคัดลอกเคอร์เนลจากรูทรองไปที่รูทหลักหรือไม่? หรือ 'grub-update' ตรวจสอบพาร์ติชั่นอื่นสำหรับเมล็ดใหม่ด้วยหรือไม่?
jiggunjer

นี่เป็นคำถามที่แยกต่างหาก แต่สิ่งที่สามารถเรียกใช้งานได้ควรอ่าน/boot/และสร้างอย่างถูกต้อง ไฟล์การกำหนดค่า grub (เช่น:) /etc/default/grubอาจแตกต่างกันไปสำหรับแต่ละระบบปฏิบัติการดังนั้นคุณต้องทำการซิงค์ให้เรียบร้อย วิธีปฏิบัติที่ดีที่สุดอาจจะมีระบบปฏิบัติการเดียวที่สร้างรายการด้วงสำหรับคุณ
earthmeLon

ไม่ใช่คำถามที่แยกต่างหาก OP ไม่ได้ระบุการกำหนดค่าของเขาและรองเท้าบู๊ตคู่ a เป็นคำถามทั่วไป คิดว่าอาจเพิ่มคุณค่าให้กับคำตอบของคุณซึ่งดีอยู่แล้ว ดังนั้นในคำอื่น ๆ ระบบปฏิบัติการรองไม่จำเป็นต้องมีด้วงของตัวเองด้วงจากตัวหลักจะสแกนหา / บูตโฟลเดอร์ในทุกพาร์ติชันและค้นหาเมล็ด
jiggunjer

ฉันจะย้ายเคอร์เนลไปที่ / boot ได้อย่างไร mv kernel /boot? ฉันจะหาเคอร์เนลที่สามารถย้ายไปยัง / boot ได้ที่ไหน
Thomas Weller

3

ผมใช้ Fedora 20 และคำสั่งในการปรับปรุง grub2 grub2-mkconfigคือ นอกจากนี้กระบวนการทั้งหมดสามารถทำได้ด้วยการสร้างเคอร์เนลสร้าง:

make xconfig (make config, etc)
make bzImage
make modules
sudo make modules_install
sudu make install

(ขั้นตอนสุดท้าย) นี้จะคัดลอกเคอร์เนลลงใน / boot และอัปเดต grub2 boot loader ง่ายมากและทำงานได้อย่างถูกต้องในกรณีของฉัน ปัญหาเดียวของฉันคือคุณไม่ได้เรียนรู้รายละเอียดที่สำคัญของกระบวนการทุกอย่างเป็นไปโดยอัตโนมัติ หากคุณมีปัญหาและต้องเข้าใจว่ามีอะไรผิดปกติคุณอาจติดขัด


sudo make installบอกฉัน: Cannot find LILO.
René Nyffenegger

เป็นไปได้ว่าคุณกำลังสร้างเคอร์เนลเวอร์ชันเก่ากว่านี้ใช่ไหม LILO ถูกใช้กับเคอร์เนลเวอร์ชันที่เก่ากว่า 3.x (ไม่แน่ใจว่าเป็นเวอร์ชั่นที่แน่นอน) คุณใช้การกระจายแบบใด
philbrooksjazz

นี่คือบน Arch Linux ด้วย rc ใหม่ล่าสุด (4.6.0-rc5) ซึ่งฉันได้คอมไพล์โคลนจากที่เก็บ Linux Torvalds
René Nyffenegger

0

/boot/grub/grub.cfgเป็นไฟล์ที่ถูกแทนที่menu.lstจาก grub1

ในระบบ Debian / Ubuntu นี้ถูกสร้างขึ้นโดยupdate-grubซึ่งไหลสคริปต์ในการใช้สิ่งที่คล้ายกับ/etc/grub.drun-parts


0

หากเคอร์เนลใหม่ถูกติดตั้งด้วย dpkg (ราวกับว่ามันถูกคอมไพล์ด้วย make-kpkg), update-grub2ก็เพียงพอแล้ว (มันจะลบเมล็ดที่ไม่มีอยู่ออกไปด้วย)


0

คุณไม่ได้ "แก้ไข" เพื่อเพิ่มเมล็ดอีกต่อไป มันสแกนและเพิ่มพวกมันแบบไดนามิก หากคุณต้องเพิ่มหนึ่งการสแกนไม่พบคุณควรดูใน /etc/grub.d และแก้ไขหรือคัดลอกและกำหนดเอง 40 (มันถูกเพิ่มครั้งสุดท้ายดังนั้นจึงเป็นสถานที่ที่ดีในการทดสอบการกำหนดค่าของคุณก่อนที่จะวางไว้ด้านบนของคุณ รายการ).


0

ลองupdate-grubหรือupdate-grub2ขึ้นอยู่กับรุ่นด้วงของคุณ คุณจะต้องเรียกใช้สิ่งเหล่านี้ในฐานะที่เป็นรูต, sudo. สิ่งนี้ใช้ได้สำหรับฉันเมื่อฉันติดตั้ง distro Linux ตัวที่สองโดยไม่ต้องติดตั้งด้วง


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