LINUX.ORG.RU

Загрузка с iso, лежащего на флешке


1

1

Я люблю тестировать новые версии дистров, загрузив лайв версию с флешки. Хочется, например, посмотреть версию с кде, гном, x86/amd64 , загрузить другой лайв дистр, *BSD, WinPE(RE), всё это вполне влезет даже на флешку в 8 гиг, которая сейчас стоит 10 баксов. Я думаю будет очень удобно и практично отформатировать флешку в extFAT (чтобы влез DVD образ) и с помощью редактирования простого тестового файла на флешке обновлять конфиг загрузчика, а ещё лучше автоматизировать этот процесс. Все методы создания загрузочной флешки как правило пишутся дистростроителями, которые почему-то забывают про конкурентов, даже среди респинов одного дистра, а «универсальные» методы подразумевают распаковку образа на FAT32, либо примитивный dd. Помогите, пожалуйста, найти/разработать метод создания такой универсальной флекшки.

★★★

Последнее исправление: yurikoles (всего исправлений: 1)

видел такую штуку в живую, но хз как называется. Но ты можешь гуглить оно точно существует уже готовое

seed_stil ★★
()

Имхо, монтировать образ придётся всё равно перед запуском загрузчика, т.е. реально ты ничего не выигрываешь, только получаешь кучу головняков

coldy ★★
()

NTFS, GRUB4DOS.

/thread

bhfq ★★★★★
()

Я люблю тестировать новые версии дистров, загрузив лайв версию с флешки.

открой для себя виртуальную машину.

/thread

drBatty ★★
()

Чтобы система загрузилась из ISO-образа, она должна _знать_, что грузится из ISO-образа. Общего способа нет, а популярные загрузчики не умеют exFAT.

GRUB4DOS умеет притворяться дисководом через int13h, но это работает ровно до того момента, пока система не перейдёт в защищённый режим процессора (= пока isolinux не запустит ядро linux).

GRUB2 может «подключать» для себя ISO-образы и читать из них файлы.

Дальше система (скрипт в initramfs) должна сама найти свой ISO-образ, подключить его и загрузиться.

AITap ★★★★★
()

отформатировать флешку в extFAT

Во-первых, exFAT, во-вторых, есть полноценные файловые системы — например ext2 или ext4 без журналирования.

Во-вторых, можно попробовать GRUB2 или syslinux в качестве загрузчика. Только далеко не все iso-образы умеют загружаться с флешки, особенно шиндошс.

Например, для Debian нужны специальные ядро и initrd из hd-media, для других дистров их можно сделать.

Посмотри конфиг SysRescCD или Gentoo netinstall например, там дофига образов на одном диске.

Если оригинальный образ не загружается, то можно распаковать initrd и поправить скрипты в крайнем случае.

UI vesamenu.c32
F2 f2images.msg
F3 f3params.msg
F4 f4arun.msg
F5 f5troubl.msg
F6 f6pxe.msg
F7 f7net.msg

PROMPT 0
TIMEOUT 900
ONTIMEOUT rescuecd_std

MENU DEFAULT rescuecd_std
MENU TABMSG Press <TAB> to edit options or <F2>,<F3>,<F4>,<F5>,<F6>,<F7> for help
MENU TITLE SYSTEM-RESCUE-CD 1.5.8 (www.sysresccd.org)
MENU ROWS 16
MENU TIMEOUTROW 22
MENU TABMSGROW 24
MENU CMDLINEROW 24
MENU HELPMSGROW 26
MENU WIDTH 78
MENU MARGIN 6
MENU BACKGROUND #c00090f0

MENU color title    1;31;40    #FFFF0000 #00000000 std
MENU color sel      7;37;40    #FF000000 #FFC0C0C0 all
MENU color unsel    37;44      #FF000000 #00000000 none
MENU color hotsel   1;7;37;40  #FF000000 #FFC0C0C0 all
MENU color tabmsg   1;31;40    #FFFFFF00 #00000000 std
MENU color help     1;31;40    #FFFFFFFF #00000000 none

LABEL rescuecd_std
  MENU LABEL 1) SystemRescueCd: default boot options
  LINUX rescuecd
  INITRD initram.igz
  APPEND scandelay=5
  TEXT HELP
  Boot standard 32bit kernel with default options (should always work)
  You should use this entry if you don't know which one to use
  ENDTEXT

LABEL rescuecd_docache
  MENU LABEL 2) SystemRescueCd: all files cached to memory (docache)
  LINUX rescuecd
  INITRD initram.igz
  APPEND scandelay=5 docache
  TEXT HELP
  Boot standard 32bit kernel and run system from RAM (cdrom can be removed)
  It requires 512 MB of memory to work and takes some time during the
  boot process, but the cdrom can be removed and system will be faster.
  ENDTEXT

LABEL debian
  MENU LABEL 7) Debian GNU/Linux 6.0.2.1 "Squeeze" CLI 
  LINUX /debian/vmlinuz priority=low
  INITRD /debian/initrd.gz
#  APPEND vga=788
  TEXT HELP
  Boot Debian GNU/Linux netinstall cd
  ENDTEXT

LABEL debiang
  MENU LABEL 7) Debian GNU/Linux 6.0.1 "Squeeze" GUI
  LINUX /debian/vmlinuz
  INITRD /debian/initrd-gtk.gz
#  APPEND vga=788
  TEXT HELP
  Boot Debian GNU/Linux netinstall cd
  ENDTEXT

LABEL openbsd
  MENU LABEL 8) OpenBSD 4.9 installer/rescue
  LINUX 4.9/i386/bsd.rd
  TEXT HELP
  Boot OpenBSD 4.9 bsd.rd kernel image used to install or rescue the OS
  ENDTEXT

MENU SEPARATOR

# <<
# вырезано
# >>

MENU BEGIN
MENU TITLE E) Boot an exising Linux OS installed on the disk...

LABEL linuxosdisk32
  MENU LABEL Boot an exising 32bit Linux OS installed on the disk
  LINUX rescuecd
  INITRD initram.igz
  APPEND scandelay=5 root=auto
  TEXT HELP
  Detect partition where linux is installed and boot from it. You can use 
  this to boot Linux if your boot loader (eg: Grub) is broken or has been
  removed by another OS. This will work if the Linux OS is 32bit.
  ENDTEXT

LABEL linuxosdisk64
  MENU LABEL Boot a 32bit or 64bit Linux OS installed on the disk
  LINUX rescue64
  INITRD initram.igz
  APPEND scandelay=5 root=auto
  TEXT HELP
  Detect partition where linux is installed and boot from it. You can use 
  this to boot Linux if your boot loader (eg: Grub) is broken or has been
  removed by another OS. This will work with both 32bit and 64bit Linux OS.
  ENDTEXT

MENU SEPARATOR
# ...

LABEL freedos
  MENU LABEL FREEDOS: Clone of the MSDOS Operating System
  kernel memdisk
  append initrd=/bootdisk/freedos.img floppy
  TEXT HELP
  FreeDOS can be used to execute DOS programs such as BIOS upgrade tools
  ENDTEXT

LABEL netboot
  MENU LABEL NETBOOT: Boot from the network
  kernel netboot
  append -
# ...
LABEL aida
  MENU LABEL AIDA: old hardware diagnostics tool
  kernel memdisk
  append initrd=/bootdisk/aida.img floppy

Вот тебе конфиг, порезанный кое-где, может даст некоторые мысли. Я добавил только Debian и OpenBSD. Первый грузится из iso-образа, второй из директорий на диске. Остальное там так и было.

Если ты используешь файловую систему ext* то syslinux ставится точно так же (если четвёртой версии), только называться будет extlinux, если старше четвёртой, то конфиг должен называться extlinux.conf (именно conf, а не cfg, не наступай на те же грабли). В четвёрке вроде все *linux слили в один загрузчик и везде будет работать как старое имя, так и syslinux.cfg

Xenius ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.