Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Как сделать дискету?   Maxim Sobolev   22 Apr 2000 00:05:58 
Архивное /ru.unix.bsd/79230025c495.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional