Загрузочная флешка два linux

Мультизагрузочная Linux-флешка

Тут описана процедура создания флешки для загрузки множества iso-образов на компьютерах с BIOS. На компьютерах с UEFI она не работает. Для компов с UEFI я делал Универсальную загрузочную флешку для BIOS/UEFI.
Хорошо иметь под рукой флешку, с которой можно загрузиться для восстановления или установки системы. Также хорошо бы чтобы на ней помещались несколько разных образов ISO, доступных из меню. Создать такую флешку можно с помощью специализированных программных средств как под Linux ( Multisystem) так и под Windows (XBOOT), и даже мультиплатформенных (Yumi). Но можно пойти true linux way™ и использовать GRUB.

Создание и форматирование раздела

Сначала нужно создать на флешке раздел и сделать его загрузочным. Запускаем fdisk и натравливаем его на нашу флешку. Нижеприведенные команды делаем с правами root. Список дисков смотрим командой:

Запускаем fdisk (указав свою флешку):

Если на диске есть разделы, то ликвидируем их. Для этого жмем d
После удаления разделов жмем n и создаем новый.
В процессе создания указваем что раздел p (primary).
После создания жмем a, чтобы сделать раздел активным.
Затем жмем t, чтобы задать тип раздела и вводим тип c (FAT32).
Жмем w и записываем изменения на флешку.

Теперь надо отформатировать созданный раздел в FAT32:

umount /dev/sdx1 mkfs.vfat -F 32 -n MULTIBOOT /dev/sdx1

Установка загрузчика GRUB

Дальше ставим GRUB2 на флешку.
Создаем точку монтирования и монтируем флешку (не забываем sdx менять на актуальные буквы, соотвествующие флешке):

sudo mkdir /mnt/USB && sudo mount /dev/sdx1 /mnt/USB

Устанавливаем GRUB (выполняем с правами root):

sudo grub-install --force --no-floppy --boot-directory=/mnt/USB/boot /dev/sdx

Старые версии GRUB вместо –boot-directory используют -root-directory. Если что-то не так, то установщик GRUB скажет что “Installation is impossible. Aborting”.

Создаем на флешку файлик grub.cfg

nano /mnt/USB/boot/grub/grub.cfg

И заполняем его примерно так:

set timeout=10 set default=0 menuentry "KNOPPIX_V7.2.0CD-2013-06-16-EN LiveCD" < loopback loop /KNOPPIX_V7.2.iso #linux (loop)/boot/isolinux/linux bootfrom=/KNOPPIX_V7.2.iso acpi=off keyboard=us language-us linux (loop)/boot/isolinux/linux bootfrom=/KNOPPIX_V7.2.iso keyboard=us language-us initrd (loop)/boot/isolinux/minirt.gz >menuentry "SystemRescueCd 4.6.1 Live (64bit, cache all files in memory and startX)" < loopback loop /systemrescuecd.4.6.1.iso linux (loop)/isolinux/rescue64 isoloop=/systemrescuecd.4.6.1.iso setkmap=us docache dostartx initrd (loop)/isolinux/initram.igz >menuentry "SystemRescueCd 4.6.1 Live (64bit, default boot options)" < loopback loop /systemrescuecd.4.6.1.iso linux (loop)/isolinux/rescue64 isoloop=/systemrescuecd.4.6.1.iso setkmap=us initrd (loop)/isolinux/initram.igz >menuentry "SystemRescueCd 4.6.1 Live (32bit, default boot options)" < loopback loop /systemrescuecd.4.6.1.iso linux (loop)/isolinux/rescue32 isoloop=/systemrescuecd.4.6.1.iso setkmap=us initrd (loop)/isolinux/initram.igz >menuentry "Ubuntu 14.04.3 x64 Desktop with GNOME. Live and Install" < loopback loop /ubuntu-14.04.3-desktop-amd64.iso linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu-14.04.3-desktop-amd64.iso quiet splash initrd (loop)/casper/initrd.lz >menuentry "Kubuntu 14.04.3 x64 Desktop with KDE. Live and Install" < loopback loop /kubuntu-14.04.3-desktop-amd64.iso linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/kubuntu-14.04.3-desktop-amd64.iso quiet splash initrd (loop)/casper/initrd.lz >menuentry "Xubuntu 14.04.3 x64 Desktop with LXDE. Live and Install" < loopback loop /xubuntu-14.04.3-desktop-amd64.iso linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/xubuntu-14.04.3-desktop-amd64.iso quiet splash -- initrd (loop)/casper/initrd.lz >menuentry "Ubuntu 14.04.3 x64 Server" < loopback loop /ubuntu-14.04.3-server-amd64.iso linux (loop)/install/vmlinuz iso-scan/filename=/ubuntu-14.04.3-server-amd64.iso quiet -- initrd (loop)/install/initrd.gz >menuentry "CentOS 7 03.15 x64 Install" < loopback loop /CentOS-7-x86_64-Minimal-1503-01.iso linux (loop)/isolinux/vmlinuz noeject inst.stage2=hd:LABEL=MIKEBOOT:/CentOS-7-x86_64-Minimal-1503-01.iso initrd (loop)/isolinux/initrd.img >menuentry "SystemRescueCd 4.8.1 Live (64bit, default boot options)" < loopback loop /systemrescuecd-x86-4.8.1.iso linux (loop)/isolinux/rescue64 isoloop=/systemrescuecd-x86-4.8.1.iso setkmap=us initrd (loop)/isolinux/initram.igz >menuentry "Try Xubuntu x64 16.04.1 without installing" < loopback loop /xubuntu-16.04.1-desktop-amd64.iso set gfxpayload=keep linux (loop)/casper/vmlinuz.efi iso-scan/filename=/xubuntu-16.04.1-desktop-amd64.iso file=(loop)/preseed/xubuntu.seed boot=casper quiet splash --- initrd (loop)/casper/initrd.lz >menuentry "Install Xubuntu 16.04.1 x64" < loopback loop /xubuntu-16.04.1-desktop-amd64.iso set gfxpayload=keep linux (loop)/casper/vmlinuz.efi iso-scan/filename=/xubuntu-16.04.1-desktop-amd64.iso file=(loop)/preseed/xubuntu.seed boot=casper only-ubiquity quiet splash --- initrd (loop)/casper/initrd.lz >menuentry "Install Xubuntu 16.04.1 i386" < loopback loop /xubuntu-16.04.1-desktop-i386.iso set gfxpayload=keep linux (loop)/casper/vmlinuz iso-scan/filename=/xubuntu-16.04.1-desktop-i386.iso file=(loop)/preseed/xubuntu.seed boot=casper only-ubiquity quiet splash --- initrd (loop)/casper/initrd.lz >menuentry "Install Ubuntu Server 16.04.2 < loopback loop /ubuntu-16.04.2-server-amd64.iso set gfxpayload=keep linux (loop)/install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed quiet --- initrd (loop)/install/initrd.gz >menuentry "Fedora-Workstation-Live 25" < loopback loop /Fedora-Workstation-Live-x86_64-25-1.3.iso linux (loop)/isolinux/vmlinuz iso-scan/filename=/Fedora-Workstation-Live-x86_64-25-1.3.iso root=live:CDLABEL=Fedora-WS-Live-25-1-3 rd.live.image quiet rootfstype=auto ro rhgb rd.luks=0 rd.md=0 rd.dm=0 initrd (loop)/isolinux/initrd.img >menuentry "Fedora-KDE-Live 25" < loopback loop /Fedora-KDE-Live-x86_64-25-1.3.iso linux (loop)/isolinux/vmlinuz iso-scan/filename=/Fedora-KDE-Live-x86_64-25-1.3.iso root=live:CDLABEL=Fedora-KDE-Live-25-1-3 rd.live.image quiet rootfstype=auto ro rhgb rd.luks=0 rd.md=0 rd.dm=0 initrd (loop)/isolinux/initrd.img >menuentry "Install Kubnuntu 16.04.2 Desktop" < loopback loop /kubuntu-16.04.2-desktop-amd64.iso set gfxpayload=keep linux (loop)/casper/vmlinuz.efi iso-scan/filename=/kubuntu-16.04.2-desktop-amd64.iso file=(loop)/preseed/kubuntu.seed boot=casper only-ubiquity quiet splash oem-config/enable=true --- initrd (loop)/casper/initrd.lz >

Этот содержит конфигурацию для загрузки с флешки KNOPPIX 7.2, SystemRescueCd 4.6.1, различных вариантов Ubuntu и CentOS 7. А дальше осталось просто положить указанные в grub.cfg образы ISO в корневую директорию флешки и переименовать их как указано в файле.

Читайте также:  Rtl8111 8168 8411 driver linux

Еще немного примеров

menuentry "Linux Mint ISO" < loopback loop /linuxmint.iso linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper initrd=/casper/initrd.l iso-scan/filename=/linuxmint.iso noeject noprompt splash -- initrd (loop)/casper/initrd.lz >menuentry "DBAN ISO" < loopback loop /dban.iso linux (loop)/DBAN.BZI nuke="dwipe" iso-scan/filename=/dban.iso silent -- >menuentry "Tinycore ISO" < loopback loop /tinycore.iso linux (loop)/boot/bzImage -- initrd (loop)/boot/tinycore.gz >menuentry "Memtest 86+" < linux16 /memtest86+.bin >menuentry "Debian 9.5 i386 Install" < set background_color=black loopback loop /debian-9.5.0-i386-netinst.iso linux (loop)/install.386/vmlinuz vga=788 --- quiet initrd (loop)/install.386/initrd.gz >menuentry "Install Kubnuntu 19.04 Desktop" < loopback loop /kubuntu-19.04-desktop-amd64.iso set gfxpayload=keep linux (loop)/casper/vmlinuz iso-scan/filename=/kubuntu-19.04-desktop-amd64.iso file=(loop)/preseed/kubuntu.seed boot=casper only-ubiquity quiet splash oem-config/enable=true --- initrd (loop)/casper/initrd >menuentry "Install Ubnuntu 20.04 Server" < insmod part_gpt insmod ext2 insmod search_fs_uuid rmmod tpm search --no-floppy --set=root --fs-uuid 36c1a912-77c7-4cec-8120-c2088e1e131c set isofile="/ubuntu-20.04-live-server-amd64.iso" set gfxpayload=keep loopback loop ($root)$isofile linux (loop)/casper/vmlinuz iso-scan/filename=$quiet --- initrd (loop)/casper/initrd > menuentry "Install Ubnuntu 21.10 Server" < set gfxpayload=keep set isofile="/ubuntu-21.10-live-server-amd64.iso" loopback loop ($root)$isofile linux (loop)/casper/vmlinuz iso-scan/filename=$quiet --- initrd (loop)/casper/initrd > menuentry "Install Ubuntu Server 16.04 i386" < loopback loop /ubuntu-16.04.6-server-i386.iso set gfxpayload=keep linux (loop)/install/vmlinuz isoloop=/ubuntu-16.04.6-server-i386.iso file=/cdrom/preseed/ubuntu-server.seed quiet splash --- initrd (loop)/install/initrd.gz >menuentry 'Debian 10 i386 Install' < set background_color=black loopback loop /debian-edu-10.0.0-i386-netinst.iso linux (loop)/install.386/gtk/vmlinuz findiso=/debian-edu-10.0.0-i386-netinst.iso modules=debian-edu-install-udeb desktop=xfce vga=788 --- quiet initrd (loop)/install.386/gtk/initrd.gz >

Добавление других образов ISO

Для добавления других образов ISO нужно в файлик /boot/grub/grub.cfg прописывать параметры, которые обычно можно найти в файлах grub.cfg, syslinux.cfg и других, входящих в состав образа ISO.
То есть создаем новый раздел меню в /boot/grub/grub.cfg (копируя уже существующий), затем указываем файл ISO в строке loopback, а в строку linux указываем путь к ядру (то что append из syslinux.cfg). В строке initrd указываем путь к файлу initrd.

Скорее всего, в строке linux после пути к файлу ядра придется указать параметры загрузки ядра, которые позволят ядру работать с loop-устройством, на которое монтируется файл ISO. Для систем со схожим ядром, параметры, как правило, одинаковые. Например, для загрузки Fedora подойдут параметры от CentOS.

Читайте также:  Add second ip linux

Много обновляемой информации о загрузке ISO образов с помощью GRUB можно тут: https://wiki.archlinux.org/index.php/Multiboot_USB_drive

Загрузка установочных образов Windows 7 и Windows 10 c помощью GRUB

Монтируем iso-образ Windows 7 или Windows 10, копируем с него все файлы на флешку с помощью cp или rsync и дописываем в grub.cfg такое:

set timeout=10 set default=0 menuentry "Windows 7 or Windows 10 installer" --class windows --class os < insmod part_msdos insmod ntfs insmod ntldr search --no-floppy --label MULTIBOOT --set=root ntldr /bootmgr >

Тут grub будет загружать модули с помощью insmod, потом search — искать раздел с меткой MULTIBOOT и когда найдет — с помощью –set укажет, что root находится на этом разделе, а затем передаст управление /bootmgr

В принципе, для красоты и удобства, было бы неплохо создать отдельный раздел на флешке (так я поступил при создании нового варианта флешки — Универсальная загрузочная флешка для BIOS/UEFI), отформатировать его с меткой Win7, распаковать файлы из iso-образа туда и указывать –label Win7. Просто в дистрибутиве windows также есть директоррия boot и если понадобится очистить флешку от инсталлятора windows, не затрагивая остальные ОС, то из этой директории файлы придется удалять вручную.

Discussion

Здравствуйте, не подскажите, как узнать необходимые параметры ядра, для grub.cfg, чтобы запустить ливобраз с usb накопителя? Что я только не пробовал, никак не выходит. Перекопал кучу сайтов и везде однотипно и не работает. Только благодаря вашему блогу удалось с минимальными корректироваками запустить минт. Такой настройки ни у кого не было: file=/preseed/linuxmint.seed boot=casper initrd=/casper/initrd.lz кстати z в расширении вы недопечатали и /cdrom/preseed в последней сборке просто /preseed. В общем у меня работает так: linux (loop)/live/vmlinuz boot=live initrd=/live/initrd.lz iso-scan/filename=/iso/lmde-4-cinnamon-64bit.iso noeject noprompt splash –

А вот LMDE и дебиан никак не сдаются. Хоть и использую их грубы. Не хочу импользовать программы так как они стирают все разделы на диске, а мне они нужны. Поэтому хочу ручками.

День добрый, Александр! Ну я же написал, что

Для добавления других образов ISO нужно в файлик /boot/grub/grub.cfg прописывать параметры, которые обычно можно найти в файлах grub.cfg, syslinux.cfg и других, входящих в состав образа ISO.

Универсальных рецептов тут нет, поскольку разные дистры собираются разными людьми/программами. Даже в пределах одного семества (например — Ubuntu) от версии к версии и от варианта к варианту (Gnome, KDE) — параметры запуска в grub могут быть разными, как и структура файлов в ISO.

Какой конкретно ISO Debian вы пытаетесь запустить с USB?

Источник

Читайте также:  Linux установить mozilla thunderbird

Multiboot — загрузочная флешка Linux с несколькими дистрибутивами

В статье пойдет речь об известной программе Multiboot с помощью которой создается загрузочная флешка в Linux.

В репозиториях Debian 10 нет программы Multiboot, используется для создания загрузочных флешек с несколькими дистрибутивами linix и не только, а также Windows и программами для диагностики, например memtest 86.

Решил написать об этой программе так как все статьи на просторах интернета не содержат часть важной информации для правильной работы этой программы в linux, в моем случае Debian 10.

Немного отступления

Если вас интересует создать мульти-загрузочную флешку из под Windows и разместить на ней все вам необходимое, то часть информации есть в этой статье.

Если вы создаете загрузочную флешку с Windows 10 то вам стоит почитать эту статью.

Установка Multiboot в linux

Изучив не мало инструкций и в результате не получив положительного результата пришел к выводу, надо идти к источнику.

На сайте разработчика программы я нашел правильную и рабочую инструкцию но не на русском языке.

В нынешнее время даже не зная иностранного, для желающего разобраться, не проблема.

Итак перейдем к основному, непосредственно к самой установке программы.

На сайте разработчике все выглядит так

multiboot инструкция

Как видим все подробно расписано, будем действовать по пунктам, как как положено

Данная инструкция рекомендуется для любой версии Ubuntu и Debian, так говорится в заголовке описания.

Так же там говорится, что нам надо всего лишь добавить репозиторий в sources.list затем ключ и установить программу.

Моя система к моменту установки Multiboot была настроена согласно этой статье, рекомендую и вам выполнить все основные пункты описанные там.

Выполняем первый пункт в зависимости от вашей версии linux

Если у вас debian устанавливаем пакет software-properties-common

sudo apt-get install software-properties-common

Я его установил через менеджер пакетов синаптик

Если у вас Ubuntu подключите репозиторий «universe»

sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"

Далее выполняем пункты вне зависимости от вашей операционной системы

Добавляем репозиторий Multiboot

sudo apt-add-repository 'deb http://liveusb.info/multisystem/depot all main'

Можно добавить через синаптик, выглядит это будет так

multiboot репозиторий

wget -q -O - http://liveusb.info/multisystem/depot/multisystem.asc | sudo apt-key add -

Ставим программу Multiboot

sudo apt-get install multisystem

Ну и последний пункт который как написано касается владельцев Debian в первую очередь.

Этот пункт не везде встречается в описаниях и инструкциях на просторах интернета, но он очень важен и в большинстве случаев в Debian без его выполнения программа работает не корректно или вообще не запускается.

Нужно добавить вашего пользователя в группу adm

sudo /usr/sbin/usermod -a -G adm "$SUDO_USER"

Вместо «$SUDO_USER» — впишите свое имя пользователя, без ковычек.

Так же сказано, что перетаскивание образов из окна файлового менеджера в окно программы Multiboot пользователям Xubuntu, Lubuntu и мной проверено в Debian — не работает.

Ну и чтоб добавить iso воспользуйтесь интерфейсом программы.

Инструкция была взята и переведена с сайта разработчика liveusb.info.

Надеюсь информация была вам полезна. Выше описанная инструкция проверена на свеже установленном чистом Debian 10, все работает.

Источник

Оцените статью
Adblock
detector