Làm cách nào để khởi động từ tệp ISO được lưu trữ trên đĩa cứng?


12

Tôi biết rằng tôi có thể tạo / ghi CD / DVD có thể khởi động hoặc USB trực tiếp và có thể khởi động / cài đặt từ nó. Nhưng giả sử tôi hiện đang chạy GNU / Linux và tôi có tệp ISO của một GNU / Linux khác mà tôi muốn cài đặt trên đĩa cứng của mình, sau đó tôi có thể trực tiếp khởi động từ ISO từ đĩa cứng và thử / cài đặt hệ điều hành GNU / Linux đó không ?

Câu trả lời:


15

Có, bạn có thể thực hiện điều này bằng cách thêm một mục menu vào GRUBmenu bộ tải khởi động.

Bạn có thể thêm một mục menu GRUB tùy chỉnh bằng cách chỉnh sửa /etc/grub.d/40_custom,

Ví dụ về menu tùy chỉnh :

 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
}

Hướng dẫn & Giải thích:

  1. Lệnh setđược sử dụng để lưu trữ đường dẫn của tệp ISO vào một biến ở đây isofile.

  2. loopbackđược sử dụng để tạo một thiết bị từ hình ảnh hệ thống tập tin. Để làm điều đó, cần phải chỉ định thiết bị và tập tin hình ảnh. Ở đây chúng tôi sử dụng (hd0,5)$isofiletrong đó (hd0,5)đại diện cho phân vùng thứ năm của đĩa.

    • Những điểm cần lưu ý: Trong (hd0,5),
      1 st chữ số đại diện cho số thiết bị mà bắt đầu từ 0(ở đây: 0 = 1 st thiết bị) và
      2 nd chữ số đại diện cho số phân vùng mà bắt đầu từ 1(ở đây 5 = 5 thứ partition).
      Điều đó có nghĩa là/dev/sda5
    • Và biến $isofilecó đường dẫn của tệp ISO. Vì vậy, cuối cùng nó trở thành (hd0,5)/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso.
    • Để biết thêm thông tin, hãy truy cập: Cách chỉ định thiết bịtệp .

  3. linuxlệnh được sử dụng để tải kernel Linux ( vmlinuz ) từ tệp. Đặt đường dẫn của nhân Linux trong ISO.

    • Đọc / trích xuất nội dung của ISO để lấy đường dẫn của ví dụ kernel:

       $ 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
      

      vì vậy, /casper/vmlinuzđã được sử dụng ở đây.

  4. initrd lệnh được sử dụng để tải một ramdisk ban đầu cho hình ảnh hạt nhân Linux và đặt các tham số thích hợp trong vùng thiết lập Linux trong bộ nhớ.

    • initrd là một lược đồ để tải một hệ thống tập tin gốc tạm thời vào bộ nhớ. Đặt đường dẫn initrdtrong ISO.
    • Đọc / trích xuất nội dung của ISO để có đường dẫn 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
      
  5. Tham số bổ sung như boot=casper iso-scan/filename=$isofile noprompt noejectcó thể dành riêng cho bản phân phối GNU / Linux và khác nhau đối với một họ Linux khác. Bạn có thể tìm thấy một số cấu hình cho gia đình / phân phối khác nhau từ đây .

    Lưu ý: Một số bản phân phối sử dụng initrd.gzhoặc initrd.lztùy thuộc vào thuật toán / nén được sử dụng.

Sau khi chỉnh sửa /etc/grub.d/40_custom, GRUB cần được cập nhật bằng update-grub2lệnh. Khi khởi động lại, bạn sẽ tìm thấy menu tùy chỉnh bạn đã thêm trên màn hình GRUB. Và bạn có thể sử dụng môi trường Live của bản phân phối GNU / Linux.

Để thực hiện cài đặt từ ISO, trình cài đặt có thể cần ngắt kết nối mọi phân vùng được gắn; tức là nói một hệ thống khác được gắn vào /isodevice, sau đó bạn có thể umount -l /isodevice.


Ồ, tôi rất ấn tượng ... Tôi đã nghĩ rằng điều đó là không thể, vì việc cài đặt một HĐH mới thường liên quan đến việc định dạng lại các phân vùng, có thể bao gồm phân vùng mà tệp ISO của bạn được lưu trữ trên đó.
tự đại diện

Mẫu của bạn sử dụng GRUB2. Centos 6 sử dụng GRUB1 (di sản grub) và các ví dụ trên không hoạt động.
Ikrom
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.