ใช่คุณสามารถทำสิ่งนี้ได้โดยเพิ่มรายการเมนูลงใน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_customGRUB ต้องได้รับการปรับปรุงโดยupdate-grub2คำสั่ง เมื่อรีบูตเครื่องคุณจะพบเมนูที่กำหนดเองที่คุณเพิ่มบนหน้าจอ GRUB และคุณอาจใช้สภาพแวดล้อมสดของการกระจาย GNU / Linux
ในการติดตั้งจาก ISO ผู้ติดตั้งอาจจำเป็นต้องถอนการติดตั้งพาร์ติชั่นใด ๆ เช่นบอกว่าระบบอื่นที่ติดตั้งที่แล้วคุณสามารถ/isodeviceumount -l /isodevice