LINUX.ORG.RU

Boot from iso partition


0

1

Посаны, выручайте. Есть iso со сборочкой зверяdebian. iso гибридный и грузится будучи залитым на флешку dd. но флешка тормознее некуда. есть usb-hdd с более приемлимыми скоростями. как можно грузить аналогично hybrid iso c жесткого диска с раздела или фс? в наличии mbr, 4 раздела, чуть менее 1 мегабайта между mbr и 1 разделом. Временный солюшн(нужно достаточное место в самом начале под раздел номер 1 и отсутствие на нем данных):

# бекап
dd if=/dev/sdb of=backupmbr1TB bs=1b count=1
# замена mbr и 1 раздела на mbr c hybrid iso
dd if=debian.iso of=/dev/sdb bs=462 count=1
blockdev --rereadpt /dev/sdb
dd if=debian.iso of=/dev/sdb bs=1b skip=1 seek=1 count=63
dd if=debian.iso of=/dev/sdb1 bs=8M skip=64b
кажется skip=64b писать нельзя, но суть вы понели.


идеально конечно иметь раздел с набором iso, которые можно будет выбирать при загрузке, какой грузить. но в целом как проще грузить с VBR??

parrot
() автор топика
Ответ на: комментарий от GotF

дайте солюшн. как впендюрить grub2 и как передать управление vbr или mbr внутри iso-файла без вот этого:

 linux (loop)/boot/grmlsmall/linux26 isofrom=/dev/sda1/grml/grml-small_2008.11.iso boot=live quiet vga=791 noeject noprompt initrd (loop)/boot/grmlsmall/initrd.gz

parrot
() автор топика
Ответ на: комментарий от parrot

вопрос снимаю, как всегда всякая всячина на викиарчлинукса=)

parrot
() автор топика

sudo mount -o loop,offset=$((64*512)) /path/to/file.iso /mnt
cp -rv /mnt/* /media/usbhddpartition
syslinux -d isolinux /media/usbhddpartition

А так?

AITap ★★★★★
()
Ответ на: комментарий от AITap

Попробуйте также стянуть с архивов debian специально собранные ядро и initrd из директории .../hd-media/, которые специально обучены поиску iso-образов на всяких носителях.

AITap ★★★★★
()
Ответ на: комментарий от AITap

не вписывается в начальные условия(там же поиск исо только потому, что файлов самый минимум залит) + это же для дебиана. а например opensuse?

parrot
() автор топика
Ответ на: комментарий от parrot

> а у вас какое-то удаление isolinux и снова добавление его же.
Не понял.

man syslinux:
-d, --directory subdirectory
Install the SYSLINUX control files in a subdirectory with the specified name (relative to the root directory on the device).

Фокус заключается в том, чтобы syslinux искал (и прочёл) в директории isolinux конфиги isolinux'а.

но все же можно ли запилить меню с выбором из какой партиции грузить?

Грузить из партиции? Запросто. Пример для GRUB2:
set root=(hd0,msdos2)
chainloader +1
Но я, кажется, опять Вас не понял.

а например opensuse?

Там ядру тоже можно скормить специальный параметр ядра, отвечающий за поиск установщиком из initramfs своих данных в iso-образе.

AITap ★★★★★
()
Ответ на: комментарий от parrot

хотя для дебиана подойдет да, но епта, неужели нету простого загрузчика пробегающего по partitions, смотрит есть ли vbr, и в конце выводящий список откуда можно грузить? + могущий gpt, ну или вверх шика список исо с фс и передача управления в vbr, а не унылое угадывание первых попавшихся опций ядра с исо типа

linux    (loop)/boot/grmlsmall/linux26 isofrom=/dev/sda1/grml/grml-small_2008.11.iso boot=live quiet vga=791 noeject noprompt
  initrd   (loop)/boot/grmlsmall/initrd.gz

parrot
() автор топика
Ответ на: комментарий от AITap

[code]set root=(hd0,msdos2) chainloader +1[/code] окей, нужен автоматический посик аля gujin. Gujin не осилил загрузку с vbr выдал ошибку

parrot
() автор топика
Ответ на: комментарий от parrot

> список исо с фс и передача управления в vbr, а не унылое угадывание первых попавшихся опций ядра с исо
Неужели Вы не понимаете, что нельзя просто так передать управление VBR?
Вся эта эмуляция с подгрузкой VBR работает через перехват загрузчиком int13h и только до того момента, пока процессор не перейдёт из реального режима в защищённый. После этого «компакт-диск», сделанный загрузчиком из iso-образа, теряется, а подгруженному к этому времени ядру и initramfs приходится догадываться самостоятельно, где же искать свои кишки.

неужели нету простого загрузчика пробегающего по partitions, смотрит есть ли vbr

Как определить, что VBR «есть»?

Могу предложить smart boot manager - тот просто предлагает все разделы на выбор.

Gujin не осилил загрузку с vbr выдал ошибку

...какую?

AITap ★★★★★
()
Ответ на: комментарий от AITap

хз gujin уже нет. но он просто снова дал выбрать пункт в меню.

Неужели Вы не понимаете, что нельзя просто так передать управление VBR?

окей вы открыли мне глаза на сложности. спрашивать про нормальный парсинг конфигов syslinux тогда тоже нету смысла(чтобы не один вариант загрузки ядра был)?

Как определить, что VBR «есть»?

0x01FE 2-байтная сигнатура MBR (55AA)

Могу предложить smart boot manager

спасибо

parrot
() автор топика
Ответ на: комментарий от parrot

> спрашивать про нормальный парсинг конфигов syslinux тогда тоже нету смысла(чтобы не один вариант загрузки ядра был)?
Можно попробовать просто запустить с этого же раздела syslinux. Такое часто помогает в простых случаях.

// Имею собственноручно собираемый при помощи скрипта мультизагрузочный компакт-диск. Скрипт скачивает с сайта последнюю версию нужных мне livecd, копирует заранее определённые файлы и заранее определённые конфиги в нужные места. Более простого способа не нашёл.

AITap ★★★★★
()
Ответ на: комментарий от AITap

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

непонял.sh

parrot
() автор топика
Ответ на: комментарий от parrot

1) mkfs.vfat /dev/раздел; mount /dev/раздел /media/раздел
2) cp -r /media/iso/* /media/раздел/
3) syslinux -d isolinux /dev/раздел

При загрузке с раздела запустится syslinux, прочитает в директории isolinux конфиг isolinux'а и запустит такое же меню, как было на компакт-диске.

AITap ★★★★★
()
Ответ на: комментарий от parrot

Можно и в виде iso, но с загрузкой такой конструкции могут возникнуть проблемы (чтение с компакт-диска несколько отличается от чтения с жёстких дисков и флешек с точки зрения BIOS, если я не ошибаюсь).

А могут и не возникнуть, если записать хитрым образом (т.е. только ту часть гибридного образа, которая с точки зрения записанной в него MBR является разделом и расположена по смещению 64*512).

AITap ★★★★★
()
Ответ на: комментарий от AITap

ну у меня не возникало пока проблем. а писать 63!*512 необязательно, я правильно понял? то есть мбр и сам раздел только нужен?

parrot
() автор топика
Ответ на: комментарий от parrot

Если писать MBR в MBR жёсткого диска, можно ни о чём не заботиться. Если записывать гибридный образ целиком в раздел, тут (теоретически) могут возникнуть проблемы. Или не возникнуть.

AITap ★★★★★
()
Ответ на: комментарий от AITap

сам и отвечаю между mbr и partition нихрена нет.

parrot
() автор топика
Ответ на: комментарий от parrot

Например, загрузчик попытается считать данные по одному смещению (как у него в гибридной MBR записано), а окажется, что там что-то совсем другое (см. в главную MBR).

Но если нет разницы, значит, я что-то путаю.

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