LINUX.ORG.RU

Ответ на: комментарий от Xenius

на флешке ffs ее можно смонтировать и отредактировать boot.conf

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

гипервизор не умеет грузить с флешки. ну или у меня не получилось

Груб умеет. Кроме того в версии amd64 есть уже и EFI загрузчик.

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

откуда там груб и EFI загрузчик?

задам вопрос по другому как поставить на сервер который умеет только железный serial port. iso image переделать не получилось. Ты хоть прочти сначала, прежде чем ссылки постить. там для версии OpenBSD 3.5, а на дворе уже 6.4.

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

прочти сначала, прежде чем ссылки постить. там для версии OpenBSD 3.5, а на дворе уже 6.4.

Специально ради тебя посмотрел ман от последней версии, там точно так же.

iso image переделать не получилось.

Сделай загрузочным другой носитель. Как вариант предлагаю тебе, если уж иначе не можешь, взять образ usb, залить его в начало первого жесткого диска, вооружившись линуксом, настроенным чтобы грузиться в последовательную консоль, поправив там boot.conf, затем у тебя загрузится bsd.rd и из-под него можно уже всё нормально поставить.

Кроме того, grub умеет грузить OpenBSD, так что ты можешь опять же, установить груб на жесткий диск, настроить его так, чтобы он смотрел в консоль, а затем из-под него загрузить bsd.rd с соответствующими опциями, и уже имея живую OpenBSD-систему и подготовленный носитель с тарболлами штатным образом всё установить.

Ты кстати даже не сказал, UEFI у тебя или классический BIOS и какой ты хочешь OpenBSD, i386 или amd64

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 3)
Ответ на: комментарий от Bobby_

задам вопрос по другому как поставить на сервер который умеет только железный serial port.

А USB-порт там есть? В принципе можно например воткнуть USB-клаву и вслепую набрать set tty com0

А дальше работать уже с консоли. Ну и перед перезагрузкой после установки не забыть добавить эту строку в boot.conf

$ qemu-system-x86_64 -m 512 -hda miniroot64.fs -serial mon:stdio

(здесь я в появившемся окошке ввожу set tty com0)

root on rd0a swap on rd0b dump on rd0b
erase ^?, werase ^W, kill ^U, intr ^C, status ^T

Welcome to the OpenBSD/amd64 6.4 installation program.
(I)nstall, (U)pgrade, (A)utoinstall or (S)hell? s
# mount /dev/wd0a /mnt2
# mkdir /mnt2/etc
# echo stty com0 115200 >> /mnt2/etc/boot.conf                                 
# echo set tty com0 >> /mnt2/etc/boot.conf     
# halt
syncing disks... done

The operating system has halted.
Please press any key to reboot.

rebooting...
>> OpenBSD/amd64 BOOT 3.41
boot> 
cannot open hd0a:/etc/random.seed: No such file or directory
booting hd0a:/bsd: 3511114+1500160+3892040+0+598016=0x912318
entry point at 0x1000158
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2018 OpenBSD. All rights reserved.  https://www.OpenBSD.org

OpenBSD 6.4 (RAMDISK_CD) #348: Thu Oct 11 13:36:16 MDT 2018
...

Вот и всё, minroot64.fs переделан на консоль по умолчанию. Далее его копируешь на работающий загружающийся диск с линуксом или чем угодно, и потом через dd записываешь. А в USB вставляешь носитель с дистрибутивом.

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 1)
Ответ на: комментарий от Xenius

iso не получается сделать, там другие команды нужны

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

а вообще без линукса нельзя?

Вопрос ведь сцуко банальный, как сделать загрузочный iso 6.4 с измененным boot.conf? В линуксе, например, или винде. Нагуглить не удалось.

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

Вопрос ведь сцуко банальный, как сделать загрузочный iso 6.4 с измененным boot.conf?

Ну я сделал загрузочный minirootfs только что, смотри выше. С iso чуть сложнее, нужен mkisofs

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 1)
Ответ на: комментарий от Bobby_

Вопрос ведь сцуко банальный, как сделать загрузочный iso 6.4 с измененным boot.conf? В линуксе, например, или винде. Нагуглить не удалось.

А мне удалось, вот https://calomel.org/bootable_openbsd_cd.html

Но только я использовал genisoimage вместо mkisofs с такими опциями:

genisoimage -r -no-emul-boot -b 6.4/i386/cdbr -c 6.4/i386/boot.catalog -o ../OpenBSD.iso .

На директории куда распаковал cd64.iso с помощью 7zip, но ничего не получилось почему-то.

В таком случае я взял hex-редактор, нашел место в образе с содержимым boot.conf:

set image /6.4/i386/bsd.rd
И заменил на:
set tty com0\x0a\x00\x00\x00...

После этого стало работать. Вроде просто, ты мог бы и сам догадаться.

Строка stty com0 115200 правда не влезла, чтобы и её воткнуть нужно поправить длину файла где-то, но проще после установки это сделать.

Ты же можешь свою консольную терминалку на 9600 выставить?

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 2)
Ответ на: комментарий от Xenius

Разобрался. Чтобы работало ещё нужна опция -l методом исключения нашел минимальный набор опций:

genisoimage -r -l -no-emul-boot -b 6.4/i386/cdbr -c 6.4/i386/boot.catalog -o ../OpenBSD_custom.iso .

При этом опции нужны для:
-r даёт возможность сделать имена в нижнем регистре,
-l разрешает длинные имена файлов, например boot.conf,
-no-emul-boot необходима поскольку cdbr — это один сектор,
-b 6.4/i386/cdbr указывает на сектор,
-c 6.4/i386/boot.catalog не обязательна, но без неё файл boot.catalog будет создан в корне,
-o указывает на выходной файл,
. значит брать файлы из текущей директории. При этом наиболее удобно использовать автодополнение для указания других файлов, так как пути к ним должны быть относительно корня CD.

Необходимые файлы (остальные можно удалить):

etc/boot.conf
6.4/i386/cdbr
6.4/i386/cdboot
6.4/i386/bsd.rd

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 2)
Ответ на: комментарий от Xenius

И заменил на:

что значит заменил? и откуда он будет знать где ядро?

Старшие товарищи уже подсказали за пиво как надо:

mount -o loop install64.iso /mnt/iso
mkdir /tmp/obsd64
cd /mnt/iso
tar -cf - | tar -C /mnt/iso -xfp -
vi etc/boot.conf
mkisofs -r -no-emul-boot -b 6.4/amd64/cdbr -c boot.catalog -o /tmp/obsd64s.iso /tmp/obsd64
mount -o loop /tmp/obsd64s.iso /mnt/iso1
cat /mnt/iso1/etc/boot.conf

set tty com0 115200
set image /6.4/amd64/bsd.rd

ВСЕ!!

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

что значит заменил?

То и значит, взял двоичный редактор, и не меняя оффсеты перезаписал содержимое файла.

и откуда он будет знать где ядро?

Путь к ядру захардкожен в файле cdboot (бинарник загрузчика), указывать его в etc/boot.conf не обязательно.

Старшие товарищи уже подсказали за пиво как надо:

А ты это пробовал? Необходима опция -l, без неё работать не будет, а в остальном, что тебе подсказали совпадает с тем, что я написал выше.

Перечитай сообщения выше, я их правил несколько раз.

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 1)
Ответ на: комментарий от Bobby_

а вообще без линукса нельзя?

Можно. В OpenBSD есть mkhybrid которая по опциям почти совпадает с mkisofs и genisoimage.

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

Спасибо, сейчас поправлю.

Что поправишь?

set tty com0 115200

По-моему это некорректная команда, надо отдельно две, stty чтобы указать скорость и set tty com0 чтобы указать консоль.

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