Làm cách nào tôi có thể khởi động vào tệp ISO trong GRUB? Tệp ISO nằm trên phân vùng reiserfs và GRUB có thể truy cập nó (đã được kiểm tra).
Làm cách nào tôi có thể khởi động vào tệp ISO trong GRUB? Tệp ISO nằm trên phân vùng reiserfs và GRUB có thể truy cập nó (đã được kiểm tra).
Câu trả lời:
Vấn đề lớn nhất khi khởi động tệp ISO là các ISO được thiết kế để khởi động hầu như luôn được thiết kế để khởi động từ đĩa CD . Như đã giải thích trên blog của Marco về Grub 2 (nhấn mạnh của tôi):
GRUB có thể đọc các hình ảnh ISO9660 (nghẹt iso). Ví dụ, nó có thể tải một vài cung đầu tiên và khởi động nó. Nhưng hầu hết mọi người không nhận ra là gì vậy thì sao? Hệ điều hành được tải sẽ làm gì? Nó rất có thể sẽ tìm kiếm một CDROM mà nó sẽ không tìm thấy và thất bại.
Vì vậy, cách đơn giản để khởi động từ một số tệp ISO ngẫu nhiên là tải nó vào một máy ảo (VirtualBox, VMware hoặc Virtual PC) dưới dạng CD ảo và khởi động nó ở đó. Điều đó hầu như luôn luôn hoạt động, bởi vì với VM, đó không phải là tệp ISO - đó là CD thực sự trên phần cứng CD thực.
Khởi động từ một tệp ISO trên kim loại trần khó hơn nhiều. Cách bạn thực hiện việc này tùy thuộc vào phiên bản Grub nào bạn đang sử dụng và kết quả có thể khác nhau tùy thuộc vào ISO bạn đang sử dụng và cách cấu hình để khởi động. Đây là lý do tại sao hầu hết các công cụ boot-ISO-from-USB (Unetbootin, WinToFlash, v.v.) thường trích xuất nội dung ISO vào ổ đĩa - bởi vì cách đó có thể được truy cập trực tiếp, mà không gây nhầm lẫn cho hệ điều hành được khởi động.
... không chắc. Nếu có thể, các mục trong menu có thể sẽ trông rất giống Grub4DOS, mặc dù tôi nghĩ lệnh "map --hook" là một cải tiến Grub4DOS. Về mặt tích cực, Grub có hỗ trợ hệ thống tập tin rộng hơn Grub4DOS.
Một ghi chú trên Grub với reiserfs (chưa được xác nhận) cho biết bạn "phải gắn kết phân vùng của mình notail
để nó hoạt động".
Memdisk là một tùy chọn; xem bên dưới.
Grub4DOS cung cấp một số "mô phỏng CD" thử nghiệm hoạt động với một số ISO. Thật không may, Grub4DOS chỉ đọc các hệ thống tập tin FAT32 / NTFS. Tải xuống Grub4DOS.
Đây là một mục mẫu ( nguồn ):
title fdfullcd.iso (0xFF)
find --set-root /fdfullcd.iso
map /fdfullcd.iso (0xFF)
map --hook
root (0xFF)
kernel /isolinux/data/memdisk
initrd /isolinux/data/fdboot.img
Giả sử Win7 ISO có thể được khởi động với mục này :
title Windows 7
map (hd0,0)/win7.iso (hd32)
map --hook
chainloader (hd32)
Các ISO khác có thể được khởi động bằng Memdisk :
title Boot Hardware Detection Tool from iso image (with 'iso' parameter)
kernel /memdisk iso
initrd /hdt.iso
Bạn cũng có thể sử dụng trình cấu hình trình đơn như MultiBootISOs.exe từ PenDriveLinux . Đặt ISO trên ổ đĩa flash và chạy tiện ích để cài đặt bộ tải khởi động và định cấu hình menu khởi động.
Đây là tập Hak5 khi cài đặt Grub4DOS.
Đây là một vài ví dụ về các mục Grub2. chainloader hiện không hoạt động để khởi động ISO, vì vậy các mục này phải (1) sử dụng loopback để "gắn kết" ISO và (2) thêm một cái gì đó như iso-scan hoặc findiso vào dòng linux chỉ định tệp ISO.
Thật không may, không có cách chung để làm điều này. Mỗi mục khởi động khác nhau phải được tùy chỉnh theo nội dung của ISO mục tiêu. Hầu hết các Linux LiveCD sử dụng ISOLINUX làm bộ tải khởi động; tìm isolinux.cfg và kiểm tra mục khởi động đó để xem những gì nó thường khởi động.
Các mục ví dụ ( nguồn ):
menuentry "Ubuntu Live 9.10 32bit" {
loopback loop /boot/iso/ubuntu-9.10-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-9.10-desktop-i386.iso noeject noprompt --
initrd (loop)/casper/initrd.lz
}
menuentry "Grml small 2009.10" {
loopback loop /boot/iso/grml-small_2009.10.iso
linux (loop)/boot/grmlsmall/linux26 findiso=/boot/iso/grml-small_2009.10.iso apm=power-off lang=us vga=791 boot=live nomce noeject noprompt --
initrd (loop)/boot/grmlsmall/initrd.gz
}
Nếu bạn đang cố khởi động LiveCD không phải Linux, bạn có thể không gặp may. Một lần nữa, Memdisk có thể giúp :
menuentry "Boot Hardware Detection Tool from iso" {
linux16 /memdisk iso
initrd16 /hdt.iso
}
Bạn có thể sử dụng dd từ thiết bị đầu cuối để ghi tệp iso vào phân vùng. Chỉ cần cẩn thận, nếu bạn sử dụng dd sai, bạn có thể xóa sạch mọi thứ. Nó sẽ trông giống như thế này: dd if = Desktop / LinuxCDFile.iso of = / Path / To / Partition