Загрузка LiveCD ISO напрямую через Grub
Обычно при каких-то проблемах с загрузкой основной установленной на жесткий диск системы, большинство мануалов советует загрузиться с LiveCD Ubuntu или любого дистрибутива и дальше творить некие действия, дабы починить основную систему. Вопрос, что под рукой может не быть диска (или флэшки) с LiveCD… Для такого случая очень просто перестраховаться и создать запись в Grub для возможности загрузки в сохраненный на жестком диске ISO-файла.
Как создать возможность загрузки LiveCD с ISO-файла через Grub?
На самом деле, это очень просто — Grub2 с самого начала научился понимать формат ISO9660 и может загружать ОС прямо из ISO-образа, расположенного на жестком диске!
В конце файла /etc/grub.d/40_custom
необходимо создать следующую запись (предварительно сложив нужные iso-файлы в любую директорию — у нас это будет /home/user/
, куда уже скопированы два файла с нужными мне дистрибутивами):
menuentry "Linux Deepin Live" { set root=(hd0,5) loopback loop /home/user/deepin.iso linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/home/user/deepin.iso noeject noprompt -- initrd (loop)/casper/initrd.lz } menuentry "ElementaryOS Live" { set root=(hd0,5) loopback loop /home/user/elementaryos.iso linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/home/user/elementaryos.iso noeject noprompt -- initrd (loop)/casper/initrd.lz } menuentry "Zorin OS Live" { set root=(hd0,5) loopback loop /home/user/zorin-os.iso linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/home/user/zorin-os.iso noeject noprompt -- initrd (loop)/casper/initrd.lz }
! hd0,5
необходимо заменить на правильный номер раздела на вашей машине. Указывайте полный путь к образу относительно корня раздела.
!! В последнем примере можно заметить, что расширение vmlinuz.efi. Если не работает /casper/vmlinuz
, значит, необходимо прописывать с расширением файла .efi.
В разделе «loopback loop» создается loop-устройство, к которому монтируется файл нашего iso. А две следующие строчки указывают местонахождение ядра и образа initrd относительно корня loop устройства (путь к файлам ядра и initrd внутри ISO-образа).
После сохранения файла, необходимо обновить grub командой sudo grub-mkconfig -o /boot/grub/grub.cfg
.
После перезагрузки в меню можно будет выбрать один из двух пунктов. У меня это Linux Deepin Live и ElementaryOS Live, при выборе любого из которых я загружаюсь в чистую Live-систему Deepin или ElementaryOS соответственно.
Это удобный способ попробовать какой-то дистрибутив без установки и даже записи его на диск или флэшку. Правда, некоторые дистрибутивы «не умеют» загружаться таким способов, но с большинством популярных сборок должно сработать.
ПС для параноиков: Есть мнение, что оставлять эти пункты в меню загрузки не особо безопасно, ведь с liveCD очень легко получить права root, после чего делать с основной системой и данными все что угодно. Однако, если злоумышленнику нужно будет это сделать с вашей системой, то он может просто взять диск и изнасиловать вашу систему прямо с него. Так что про некую опасность/безопасность — весьма сомнительно…