|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Maxim Sobolev 2:5020/400 22 Apr 2000 00:05:58 To : All Subject : Re: Как сделать дискету? --------------------------------------------------------------------------------
Sinjakov Alexey wrote:
> Добрый день!
>
> Как сделать "собственную" загрузочную дискету ?
> (не дискету для установки FreeBSD)
> Есть задача: загрузится с дискетки подмонтировать досовские диски и т.д.
> При том все должно происходить без участия человека.
> То есть, нужно сделать загрузочную дискету с определенным ядром и файловой
> системой. Hо как ?
Один из способов (не самый оптимальный по использованию ограниченного
пространства дискеты, но достаточно простой и эффективный).
1. Форматируеш дискету (fdformat).
2. Создаеш дисклэйбу и файловую систему (cм. /etc/disktab там написано как это
делать для дискеты)
3. Компиляеш loader (cd /usr/src/sys/boot ; make -DNOFORTH), выковыриваеш из
недр поддиректорий готовый loader кидаеш его куда-нибудь и натравливаеш на
него kgzip, после чего образовавшийся loader.kz переименовываеш обратно в
loader и бросаеш в директорию /boot на дискете.
4. Готовиш свое ядро, компиляеш его, удалаеш оттуда все символы к чертям
командой strip, архивируеш с помошью "gzip -9 kernel" и полученный архив
бросаеш в корень на дискету, чтобы получилось /kernel.gz.
5. После этого внимательно читаеш мануал к crunchgen, и делаеш "crunched
binary" в который войдут необходимые тебе проги плюс обычные /sbin/init,
/sbin/ifconfig, /sbin/mount, /bin/sh и.т.д.
6. Копируеш полученный crunch на флопик и создаеш хардлинки на него вместо тех
программ которые ты в него скомпилил, например: "cp crunch /mnt ; ln
/mnt/crunch /mnt/bin/sh; ln /mnt/crunch /mnt/sbin/init ; ..."
7. Делаеш свой /etc/rc который будет производить необходимые тебе действия. В
минимальной конфигурации это может выглядить как:
#!/bin/sh
export TERM=cons25
/bin/sh
8. Делаеш на дискете директорию /dev, и создаеш стандартные ноды + ноды для
твоих дисков (sh MAKEDEV std ; sh MAKEDEV ad0s1 ad0s2 ad1....).
Я таким образом недавно по приколу сделал дискету, с которой можно грузить
бездисковые рабочие станции (ну на самом деле это были вполне дисковые
компютеры в повседневной жизни мучающиеся под 95/98) и использовал ее для
тестирования PovRay кластера (порт pvmpov). Все отлично работало - грузило
ядро с минимальным набором утилит, конфигурило временный IP, моунтило с
сервера каталог и из определенного файла на сервере выбирало по MAC'у IP и
hostname после чего меняло свой IP на перманентный и в конце концов моунтило с
сервера /usr и / и запускало inetd. Конечно более просто было-бы использовать
netboot, но он на данный момент вроде как не умеет грузить elf. Если будет
интерестно, образ дискеты и crunch.conf могу бросить в понедельник.
-Maxim
--- ifmail v.2.15dev4
* Origin: Home, sweet home (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/79230025c495.html, оценка из 5, голосов 10
|