Làm cách nào để khởi động từ các hình ảnh ISO không phải Ubuntu trực tiếp như Fedora hoặc CentOS?


26

Tôi thấy rằng nó có thể được thực hiện loopbacknhư sau

menuentry "Lucid ISO" {
loopback loop (hd0,1)/boot/iso/ubuntu-10.04-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-10.04-desktop-i386.iso noprompt noeject
initrd (loop)/casper/initrd.lz
}

Nhưng nó chỉ hoạt động với ubfox hoặc các dẫn xuất của nó. Nó nên được viết như thế nào nếu tôi muốn khởi động các hình ảnh trực tiếp khác như fedora, cent, opensuse, v.v.?

Chỉnh sửa: Tôi tìm thấy một số mục khác nhưng tất cả chúng có thể dựa trên debian.

menuentry "Linux Mint 10 Gnome ISO" {
 loopback loop /linuxmint10.iso
 linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper initrd=/casper/initrd.lz iso-scan/filename=/linuxmint10.iso noeject noprompt splash --
 initrd (loop)/casper/initrd.lz
}

menuentry "DBAN ISO" {
 loopback loop /dban.iso
 linux (loop)/DBAN.BZI nuke="dwipe" iso-scan/filename=/dban.iso silent --
}


menuentry "Tinycore ISO" {
 loopback loop /tinycore.iso
 linux (loop)/boot/bzImage --
 initrd (loop)/boot/tinycore.gz
}


menuentry "SystemRescueCd" {
 loopback loop /systemrescuecd.iso
 linux (loop)/isolinux/rescuecd isoloop=/systemrescuecd.iso setkmap=us docache dostartx
 initrd (loop)/isolinux/initram.igz
}

Edit2: Làm thế nào để chainload grubsyslinuxtừ grub2?

Edit3: Tôi muốn khởi động các hình ảnh trực tiếp khác mà không cần bất kỳ thiết bị di động nào và sử dụng grub2vì vậy cần các mục menu cụ thể grub2.


1
Đây không phải là chủ đề, trao đổi ngăn xếp unix và linux là tốt hơn unix.stackexchange.com
Tachyons

@Rinzwind thế nào ??
Tachyons

2
Câu hỏi là về fedora, centOS và opensuse. Không phải về Ubuntu. @abcd
Rinzwind

2
Nhân tiện: Fedora không có khả năng làm điều này. CentOS về cơ bản là Fedora. dracutcó một yêu cầu tính năng chống lại nó và nó cần phải được vá cho điều này. Bạn có thể tìm thấy bản vá này trên bugzilla.redhat.com
Rinzwind

Câu trả lời:


19

Khởi động từ iso là một tính năng phải được hỗ trợ bởi bản phân phối và iso-scan/filename=tùy chọn sẽ không hoạt động trong Fedora hoặc các tính năng khác. Những tùy chọn này có thể có các tùy chọn kernel khác cho tính năng này hoặc tính năng này có thể không được hỗ trợ.

Tôi đã tìm thấy một phương pháp để khởi động Fedora 16 DVD, dưới đây.

Khởi động Fedora 15 DVD iso từ grub

thực đơn "Fedora 15 (DVD)" {
 loopback insmod
 ismod iso9660
 đặt isofile = "/ Fedora-15-x86_64-DVD.iso"
 vòng lặp loopback (hd0,2) $ isofile
 linux (loop) / isolinux / vmlinuz rootfstype = auto root = live: UUID =: $ isofile ro quiet
 initrd (vòng lặp) /isolinux/initrd.img
}

Nó giả sử tập tin iso của bạn nằm ở thư mục gốc của phân vùng thứ hai của đĩa cứng bên trong.

nguồn: trang này

Bạn có thể tìm kiếm phân phối khác trong google, vì nó không phải là một tính năng độc lập phân phối.

Lưu ý 1: Nó cũng hoạt động với Fedora 16, tôi vừa thử nó.
Lưu ý 2: Có vẻ như phương pháp đã hoạt động khi bạn đặt tệp iso trong phân vùng chất béo hoặc ext4.


Khởi động grml nhỏ iso từ grub2

Grml cũng có thể được khởi động từ grub2. Lưu ý rằng nó sử dụng findisotùy chọn thay vì iso-scan/filenametùy chọn, chỉ ra rằng Khởi động từ iso được triển khai dưới dạng các tùy chọn khác nhau trong các bản phân phối khác nhau.

(menu "Grml nhỏ 2009.10" {
  vòng lặp loopback /boot/iso/grml-small_2009.10.iso
  linux (lặp)
  initrd (vòng lặp) /boot/grmlsmall/initrd.gz
}

Trang này có một số ví dụ về các bản phân phối khác khởi động từ Grub2.


Khởi động openSUSE 13.1 Live từ iso

Đây là giải pháp duy nhất có hiệu quả (tất cả những người khác đã cho tôi Không thể tìm mã định danh MBR và dừng lại). Trong ví dụ này, iso được đặt ở phân vùng thứ ba của đĩa thứ nhất trong thư mục /home/username/.

thực đơn "openSUSE_13.1_GNOME_Live" {
  tải trọng video
  gzio insmod
  insmod part_msdos
  insmod ext2
  đặt gốc = '(hd0, msdos3)'
  đặt isofrom_device = '/ dev / sda3'
  đặt isofrom_system = '/ home / tên người dùng / openSUSE-13.1-Gnome-Live-i686.iso'
  đặt trình tải = '/ boot / i386 / trình tải'
  vòng lặp loopback $ isofrom_system
  linux (loop) $ loader / linux isofrom_device = $ isofrom_device isofrom_system = $ isofrom_system ramdisk_size = 512000 ramdisk_blocksize = 4096 ro giật gân yên tĩnh $ vt_handoff preloadlog = / dev / null showopts
  initrd (vòng lặp) $ loader / initrd
}

Nguồn là bình luận của janeppo .


Fedora 17 Gnome sống Iso

Đây là mục khởi động menu grub.cfg cho Fedora 17. iso được đặt ở phân vùng thứ ba của đĩa thứ nhất. Tên tập tin cũng được thay đổi.

thực đơn "Fedora Live" {
    vòng lặp loopback (hd0,3) /fedora.iso
    linux (loop) / EFI / BOOT / vmlinuz0 root = live: /fedora.iso rootfstype = auto ro liveimg quiet rhgb rd.luks = 0rd.md = 0
    initrd (hd0,3) / initrd-fromiso
}

Lưu ý cuối cùng: Tôi nghĩ rằng câu trả lời này là một ví dụ. Nó không nên được xây dựng nhiều hơn với các ví dụ.


Tôi đã thử ở trên cho fedora 15 nhưng nó không hoạt động. Có đoán được không?
Rahul Virpara

mục nhập của tôi trông giống như pastebin.com/1ksBVu21
Rahul Virpara

3

Đây là tập tin iso mà tôi đã tìm ra để khởi động bằng cách sử dụng grub2.

Tôi đã khởi động thành công các ISO sau

  • Ubuntu chính xác Pangolin 12.04 ISO
  • SystemResTHERCd
  • Công cụ phát hiện phần cứng khởi động
  • Dos miễn phí
  • CD khởi động của Hiren
  • CD khởi động cuối cùng

Tôi thấy rằng nếu bạn muốn khởi động các ISO khác như CD khởi động của Hiren, v.v. bạn có thể sử dụng MEMDISKtiện ích làm kernel.

Lấy MEMDISK ở đâu?

Tải về Syslinux từ đây . Di chuyển nó đến Desktop.

Làm thế nào để làm cho nó hoạt động?

cd ~/Desktop/
tar xvif syslinux-4.05.tar.xz 
cd syslinux-4.05/memdisk/
sudo mkdir /customboot
sudo mv memdisk /customboot/
cd /customboot/
sudo mv memdisk memdisk4.05
gksudo gedit /etc/grub.d/40_custom 

Sau đó dán bên dưới các mục trong gedit. Bạn sẽ cần phải thay đổi set isofile="/path/to/iso-file.iso".

Sau đó phát hành update-grub. Khởi động lại và kiểm tra.

Mục nhập của tôi trong 40_customtập tin.

menuentry "Ubuntu Natty Narwhal 11.04 ISO" {
    set isofile="/OS/ubuntu-11.04-desktop-i386.iso"
    loopback loop (hd0,6)$isofile
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject --
    initrd (loop)/casper/initrd.lz
}
menuentry "Ubuntu Precise Pangolin 12.04 ISO" {
    set isofile="/OS/ubuntu-12.04-desktop-i386.iso"
    loopback loop (hd0,6)$isofile
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject --
    initrd (loop)/casper/initrd.lz
}
menuentry "SystemRescueCd" {
    set isofile="/OS/systemrescuecd-x86-2.7.0.iso"
    loopback loop (hd0,6)$isofile
    linux (loop)/isolinux/rescuecd isoloop=$isofile setkmap=us docache dostartx
    initrd (loop)/isolinux/initram.igz
}
menuentry "Boot Hardware Detection Tool from iso using memdisk 4.05" {
    linux16 /customboot/memdisk4.05 iso
    initrd16 /customboot/hdt.iso
}
menuentry "Free Dos from iso using memdisk 4.05" {
    set isofile="/OS/fdbasecd.iso"
    linux16 /customboot/memdisk4.05 iso
    initrd16 (hd0,6)$isofile
}
menuentry "Hiren's boot CD using memdisk 4.05" {
    set isofile="/OS/Hiren's.BootCD.10.1.iso"
    linux16 /customboot/memdisk4.05 iso
    initrd16 (hd0,6)$isofile
}
menuentry "Ultimate Boot CD iso using memdisk 4.05" {
    set isofile="/OS/ubcd511.iso"
    linux16 /customboot/memdisk4.05 iso
    initrd16 (hd0,6)$isofile
}

Tất cả các ISO được giữ sda6/OSMEMDISKđược giữ trên phân vùng nơi cài đặt ubfox (gốc) và được đổi tên thành memdisk4.05đường dẫn đến đó/customboot/memdisk4.05

lưu ý: fedora đã không làm việc với câu trả lời khác được đưa ra. Vẫn đang cố khởi động fedora :(.


Lưu ý, khi tải tệp ISO bằng memdisk và grub initrd16, tệp ISO phải nhỏ hơn 462 MB. Thông báo lỗi liên quan: grub: error: không thể tìm thấy mục tiêu bộ nhớ phù hợp , memdisk: MEMDISK: Không có hình ảnh ramdisk được chỉ định . Để biết thêm chi tiết xem tại đâyở đây .
gregn3

2

thật đáng tiếc không có khuyến nghị nào trong số này không giúp tôi. Vì vậy, tôi đã tìm thấy con đường và rất thích chia sẻ với bạn. Để khởi động centos chẳng hạn, bạn cần: Đặt hình ảnh iso trong thư mục. nếu thư mục gốc của bạn được gắn trên / dev / sda1, sau đó tạo dir / iso và đặt iso ở đó. đi tới bảng điều khiển grub (khi menu grub xuất hiện, nhấn 'c'.)

Chọn thiết bị phù hợp - hd0 có nghĩa là sda. Bạn cần chọn một nơi mà bạn đang ở.

loopback loop (hd0,msdos1)/iso/Redhat.iso 
linux (loop)/isolinux/vmlinuz inst.repo=hd:sda1:/iso/Redhat.iso 
initrd (loop)/isolinux/initrd.img 
boot

Và khởi động nó!


1

Những gì bạn đang hỏi không có chủ đề ở đây, vì nó đòi hỏi kiến ​​thức về các hệ thống khác để có thể thiết lập các mục grub để khởi động chúng một cách chính xác. Vâng, nó là có thể.

Tuy nhiên ... Bạn sẽ thấy Multi System là một công cụ có thẩm quyền để có rất nhiều ISO phân phối khác nhau trên một ổ USB lớn. Tôi thấy nó hoạt động rất tốt nhưng bạn sẽ phải cài đặt nó từ PPA:

http://www.pendrivelinux.com/multiboot-create-a-multiboot-usb-from-linux/

Tôi sử dụng nó để tôi có thể có GUSed LiveUSB và các công cụ khác, cũng như các công cụ Ubuntu trên một ổ đĩa cho InstallFests. Như một phần thưởng, nó cho phép một màn hình giật gân tùy chỉnh cho menu, mà tôi đã đặt thành logo cho nhóm LoCo của Úc.

Chris

Như đã nêu, Multisystem sử dụng Grub2 để làm những gì bạn muốn. Vì chủ đề ngoài chủ đề này đang được cho phép, hoặc ít nhất được chấp nhận ở đây, mục Fedora từ Multisystem Grub2 của tôi:

 menuentry "Fedora-15-i686-Live-Desktop.iso" {
 linux /fedora1/isolinux/vmlinuz0 live_locale=en_AU.UTF-8 live_keytable=us live_dir=/fedora1 root=UUID=493A-D2EF rootfstype=auto ro liveimg quiet rhgb rd_NO_LUKS rd_NO_MD noiswmd
 initrd /fedora1/isolinux/initrd0.img
 }

Lưu ý rằng bạn không thể khởi động trực tiếp từ ISO vì nó không được hỗ trợ như với các bản phát hành dựa trên Debian. Bạn sẽ cần các tệp được giải nén từ ISO có sẵn trên ổ cứng như sau:

chris@chris-office:/media/RED8/fedora1$ ls -l
total 563972
drwx------ 2 chris chris      4096 Feb 11  2011 isolinux
-rw-r--r-- 1 chris chris     43503 May 14  2011 livecd-iso-to-disk
-r--r--r-- 1 chris chris      8192 May 14  2011 osmin.img
-r--r--r-- 1 chris chris 577449984 May 14  2011 squashfs.img

Tất nhiên bạn sẽ cần thay đổi vị trí của thư mục / fedora / và UUID của phân vùng bạn đang khởi động Fedora. Bạn cũng có thể nên thay đổi chế độ gắn kết từ ro sang rw, cũng như mọi thứ khác phù hợp, chẳng hạn như các quyền trên squashfs.

Bạn cũng có thể có thể thiết lập một đĩa lưu trữ ảo, mặc dù tôi thấy không có lý do gì bạn không thể gắn kết phân vùng bình thường / nhà của bạn. Một lần nữa, tôi chỉ có thể đề nghị bạn cài đặt Multidisk và tự cấu hình để tìm hiểu cách thực hiện.

Chris


Câu hỏi đặt ra là Làm thế nào để tạo mục nhập trong hiện tại GRUB2chứ không phải làm thế nào để tạo ổ đĩa khởi động hoặc đĩa cứng ngoài có các bản phát hành khác nhau. BTW nó đòi hỏi kiến ​​thức tốt GRUB2hơn so với các bản phân phối khác vì vậy đây thực sự là câu hỏi liên quan đến GRUB(vì một số bản phân phối vẫn sử dụng GRUB) hoặc GRUB2.
Rahul Virpara

1
Tôi muốn nói rằng việc tạo một mục grub cho các bản phân phối như Fedora, Centos và Suse có liên quan nhiều hơn đến các bản phân phối đó so với bản gốc, và chắc chắn không có gì để làm với Ubuntu.
fabricator4

1
@virpara: Bạn cũng không xác định rằng bạn đang khởi động ISO ra khỏi ổ cứng - lý do hợp lý nhất để muốn khởi động nhiều LiveISO khác nhau là để có một thiết bị cài đặt mọi thứ. Chúng tôi không bận tâm đến độc giả, hoặc các chuyên gia về các bản phát hành khác. Cuối cùng, nếu bạn thực sự cài đặt và sử dụng MultiSystem để tạo ra một ổ đĩa theo cách này, nó sẽ chỉ cho bạn cách thực hiện - nó sử dụng grub2 để đạt được kết quả bạn muốn.
fabricator4

1

Có vẻ như 13.04 yêu cầu một cú pháp khác nhau để đạt được điều này. Có ai đã khởi động thành công ubfox-13.04-desktop-amd64.iso từ một đĩa vật lý và có quan tâm để chia sẻ cú pháp grub không?

EDIT: Trả lời câu hỏi của riêng tôi. Cần đổi tên vmlinuz thành mvlinuz.efi và nó hoạt động.

menuentry "Ubuntu-13.04-desktop-amd64.iso" --class ubuntu {
set isofile="/archives/ubuntu-13.04-desktop-amd64.iso"
loopback loop (hd1,6)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noeject noprompt --
initrd (loop)/casper/initrd.lz
}

1

Tôi thấy việc sử dụng loopback của grub2 là vô giá để thử nghiệm các isos mới mà không yêu cầu thanh usb hoặc ghi vào CD. Có những lỗi được đệ trình chống lại Fedora để làm cho một cái gì đó tương tự hoạt động. Theo dõi tình trạng hiện tại là một ít thời gian.


0

Hãy thử sử dụng Multisystem, cài đặt liveCD bạn muốn, sau đó sao chép các tệp vào / và hợp nhất grub.cfss! (Tôi thực sự tò mò muốn xem liệu nó có hoạt động không!).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.