ใช่คุณสามารถทำสิ่งนี้ได้โดยเพิ่มรายการเมนูลงในGRUB
เมนูบูตโหลดเดอร์
คุณสามารถเพิ่มรายการเมนูด้วงที่กำหนดเองโดยการแก้ไข/etc/grub.d/40_custom
,
ตัวอย่างเมนูที่กำหนดเอง :
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Trisquel ISO" {
set isofile="/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso"
loopback loop (hd0,5)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash
initrd (loop)/casper/initrd
}
คำแนะนำและคำอธิบาย:
คำสั่งที่set
ถูกนำมาใช้สำหรับการจัดเก็บเส้นทางของไฟล์ ISO isofile
ลงในตัวแปรที่นี่
loopback
ถูกใช้เพื่อสร้างอุปกรณ์จากอิมเมจระบบไฟล์ ในการดำเนินการดังกล่าวจำเป็นต้องระบุอุปกรณ์และไฟล์รูปภาพ ที่นี่เราใช้(hd0,5)$isofile
ซึ่ง(hd0,5)
หมายถึงห้าพาร์ติชันของดิสก์
- จุดที่จะต้องทราบ: ใน
(hd0,5)
,
1 เซนต์หลักหมายถึงจำนวนอุปกรณ์ที่เริ่มจาก0
(ที่นี่: 0 = 1 เซนต์อุปกรณ์) และ
2 ครั้งหลักหมายถึงจำนวนพาร์ทิชันที่เริ่มต้นด้วย1
(ที่นี่ 5 = 5 THพาร์ทิชัน)
นั่นหมายความว่า/dev/sda5
- และตัวแปร
$isofile
มีเส้นทางของไฟล์ ISO (hd0,5)/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso
ดังนั้นในที่สุดก็จะกลายเป็น
- สำหรับข้อมูลเพิ่มเติมโปรดเยี่ยมชม: วิธีการระบุอุปกรณ์และไฟล์
linux
คำสั่งจะใช้ในการโหลดเคอร์เนล Linux ( vmlinuz ) จากไฟล์ ใส่พา ธ ของเคอร์เนล Linux ใน ISO
อ่าน / แตกเนื้อหาของ ISO เพื่อรับพา ธ ของตัวอย่างเคอร์เนล:
$ 7z l trisquel_7.0_i686.iso | grep vmlinu
2014-10-29 21:41:43 ..... 5841680 5841680 casper/vmlinuz
2014-11-03 00:45:09 ..... 5844176 5844176 casper/vmlinuz.netinst
ดังนั้น/casper/vmlinuz
ใช้ที่นี่
initrd
คำสั่งจะใช้ในการโหลด ramdisk เริ่มต้นสำหรับภาพเคอร์เนล Linux และตั้งค่าพารามิเตอร์ที่เหมาะสมในพื้นที่ติดตั้งลินุกซ์ในหน่วยความจำ
- initrdเป็นรูปแบบสำหรับการโหลดระบบไฟล์รากชั่วคราวลงในหน่วยความจำ ใส่เส้นทางของ
initrd
ใน ISO
อ่าน / แยกเนื้อหาของ ISO เพื่อรับเส้นทางinitrd
:
$ 7z l trisquel_7.0_i686.iso | grep initrd
2014-11-03 00:45:19 ..... 16851900 16851900 casper/initrd
2014-11-03 00:45:09 ..... 9398592 9398592 casper/initrd.netinst
พารามิเตอร์เพิ่มเติมเช่นboot=casper iso-scan/filename=$isofile noprompt noeject
อาจเฉพาะการกระจาย GNU / Linux และแตกต่างกันไปสำหรับตระกูลอื่นของ Linux คุณสามารถค้นหาการกำหนดค่าบางอย่างสำหรับครอบครัวที่แตกต่างกัน / การกระจายจากที่นี่
หมายเหตุ: การแจกแจงบางอย่างใช้initrd.gz
หรือinitrd.lz
ขึ้นอยู่กับอัลกอริทึม / การบีบอัดที่ใช้
หลังจากแก้ไข/etc/grub.d/40_custom
GRUB ต้องได้รับการปรับปรุงโดยupdate-grub2
คำสั่ง เมื่อรีบูตเครื่องคุณจะพบเมนูที่กำหนดเองที่คุณเพิ่มบนหน้าจอ GRUB และคุณอาจใช้สภาพแวดล้อมสดของการกระจาย GNU / Linux
ในการติดตั้งจาก ISO ผู้ติดตั้งอาจจำเป็นต้องถอนการติดตั้งพาร์ติชั่นใด ๆ เช่นบอกว่าระบบอื่นที่ติดตั้งที่แล้วคุณสามารถ/isodevice
umount -l /isodevice