Як завантажувати файл із ISO, що зберігається на жорсткому диску?


12

Я знаю, що я можу створювати / записувати завантажувальний CD / DVD або живий USB і можу завантажуватись / встановлювати з нього. Але припустимо, що я зараз запускаю GNU / Linux і у мене є файл іншого GNU / Linux, який я хочу встановити на жорсткий диск, то чи можу я безпосередньо завантажуватися з ISO з жорсткого диска і спробувати / встановити цю операційну систему GNU / Linux ?

Відповіді:


15

Так, ви можете досягти цього, додавши меню до меню GRUBзавантажувача.

Ви можете додати спеціальний запис меню 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
}

Інструкція та пояснення:

  1. Команда setвикористовується для зберігання шляху ISO-файлу до змінної isofile.

  2. loopbackвикористовується для створення пристрою із зображення файлової системи. Для цього необхідно вказати пристрій та файл зображення. Тут ми використовували, (hd0,5)$isofileв якому (hd0,5)представлений п'ятий розділ диска.

    • Точки на Примітка: В (hd0,5),
      1 - й цифра означає номер пристрою , який починається з 0(тут: 0 = 1 - го пристрою) і
      2 - й цифра означає номер розділу , який починається з 1(тут 5 = 5 - го розділу).
      Це означає/dev/sda5
    • І змінна $isofileмає шлях до файлу ISO. Отже, нарешті це стає (hd0,5)/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso.
    • Для отримання додаткової інформації відвідайте: Як вказати пристрої та файли .

  3. 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тут використовувались

  4. initrd команда використовується для завантаження початкового рамдиска для зображення ядра Linux та встановлення відповідних параметрів у області налаштування 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
      
  5. Додатковий параметр, такий як boot=casper iso-scan/filename=$isofile noprompt noejectможе бути специфічним для дистрибутива GNU / Linux і може відрізнятися для іншого сімейства Linux. Ви можете знайти деякі конфігурації для різних сімей / розповсюдження тут .

    Примітка. Деякі дистрибутиви використовують initrd.gzабо initrd.lzзалежать від використовуваного алгоритму / стиснення.

Після редагування /etc/grub.d/40_customGRUB потрібно оновити update-grub2командою. Після перезавантаження ви знайдете користувальницьке меню, яке ви додали на екрані GRUB. І ви можете використовувати Live-середовище дистрибутива GNU / Linux.

Для того, щоб виконати встановлення з ISO, інсталятору може знадобитися демонтувати будь-які змонтовані розділи; тобто сказати, інша система змонтована на /isodevice, тоді ви можете umount -l /isodevice.


Нічого собі, я вражений ... Я би подумав, що це буде неможливо, оскільки установка нової ОС часто передбачає переформатування розділів, що може включати в себе розділ, на якому зберігається файл ISO.
Wildcard

Для ваших зразків використовується GRUB2. Centos 6 використовує GRUB1 (застаріла спадщина) і вище приклад не працює.
Ікром
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.