Bagaimana cara saya boot dari file ISO yang disimpan di hard disk?

12

Saya tahu bahwa saya dapat membuat / membakar CD / DVD bootable atau langsung USB dan dapat boot / instal darinya. Tapi misalkan saya sedang menjalankan GNU / Linux dan saya sudah file ISO dari GNU / Linux lain yang ingin saya instal di hard disk saya, lalu bisakah saya langsung boot dari ISO dari hard disk dan coba / instal sistem operasi GNU / Linux itu ?

Pandya
sumber

Jawaban:

15

Ya, Anda dapat melakukannya dengan menambahkan entri menu ke menu GRUBboot loader.

Anda dapat menambahkan entri menu GRUB khusus dengan mengedit /etc/grub.d/40_custom,

Contoh entri menu kustom :

 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
}

Instruksi & Penjelasan:

  1. Perintah setini digunakan untuk menyimpan path file ISO ke dalam variabel, di sini isofile.

  2. loopbackdigunakan untuk membuat perangkat dari gambar sistem file. Untuk melakukan itu, perlu menentukan perangkat dan file gambar. Di sini kami menggunakan (hd0,5)$isofileyang (hd0,5)mewakili partisi kelima dari disk.

    • Poin ke catatan: Dalam (hd0,5),
      1 st digit mewakili jumlah perangkat yang dimulai dari 0(di sini: 0 = 1 st perangkat) dan
      2 nd digit mewakili jumlah partisi yang dimulai dari 1(di sini 5 = 5 th partisi).
      Itu berarti/dev/sda5
    • Dan variabel $isofilememiliki jalur file ISO. Jadi, akhirnya menjadi (hd0,5)/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso.
    • Untuk informasi lebih lanjut, kunjungi: Cara menentukan perangkat dan file .

  3. linuxperintah digunakan untuk memuat kernel Linux ( vmlinuz ) dari file. Letakkan path kernel Linux di ISO.

    • Baca / ekstrak konten ISO untuk mendapatkan path dari kernel contoh:

       $ 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
      

      jadi, /casper/vmlinuzdigunakan di sini.

  4. initrd perintah ini digunakan untuk memuat ramdisk awal untuk citra kernel Linux, dan mengatur parameter yang sesuai di area pengaturan Linux dalam memori.

    • initrd adalah skema untuk memuat sistem file root sementara ke dalam memori. Masukkan path initrddalam ISO.
    • Baca / ekstrak konten ISO untuk mendapatkan jalur 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. Parameter tambahan seperti boot=casper iso-scan/filename=$isofile noprompt noejectmungkin khusus untuk distribusi GNU / Linux dan bervariasi untuk keluarga Linux lainnya. Anda dapat menemukan beberapa konfigurasi untuk keluarga / distribusi yang berbeda dari sini .

    Catatan: Beberapa distribusi menggunakan initrd.gzatau initrd.lztergantung pada algoritma / kompresi yang digunakan.

Setelah mengedit /etc/grub.d/40_custom, GRUB perlu diperbarui dengan update-grub2perintah. Setelah mem-boot ulang, Anda akan menemukan menu masuk khusus yang Anda tambahkan pada layar GRUB. Dan Anda dapat menggunakan lingkungan Live dari distribusi GNU / Linux.

Untuk melakukan instalasi dari ISO, installer mungkin perlu meng-unmount partisi yang di-mount; yaitu mengatakan sistem lain sudah terpasang /isodevice, maka Anda bisa umount -l /isodevice.

Pandya
sumber
Wow, saya terkesan ... Saya akan berpikir itu tidak mungkin, karena menginstal OS baru sering melibatkan memformat ulang partisi, yang dapat mencakup partisi tempat penyimpanan file ISO Anda.
Wildcard
Sampel Anda menggunakan GRUB2. Centos 6 menggunakan GRUB1 (warisan grub) dan contoh di atas tidak berfungsi.
Ikrom