Jump to content

Recommended Posts

Posted

Появилась благородная задача: сделать роутер на Линухе без жесткого диска. С использованием USB flash в качестве оного.

Линух замечательно умещается в 70Мб и помещается на 128Мб флэшку. Ядро компилируется с включением usbcore, usb-uhci, usb-ohci, usb-storage и поддержкой SCSI. LILO замечательно записывается в mbr /dev/sda. В BIOS ставится загрузка с USB-ZIP или USB-HDD. И вот при загрузке запускается DOSовый загрузчик, оставшийся от предыдущего загрузочного форматирвания, до LILO дело не доходит.

Возникает предположение, что загрузочный сектор (или как его там) находится на флэшке в некоей особой области, недоступной для обычной записи. Загрузочное форматирование под Windows осуществляется специальными прогами типа mformat, UMSD, BootUp Creator.

Существуют ли подобные программы под Линух? Или хотя бы можно ли им подсунуть произвольный загрузочный сектор? И вообще, как происходит процедура подобной загрузки?

Мать: GigaByte GA-6VEM VIA PLE133T AGPset

USB flash: Manli M-USB0128

Posted

Содержимое lilo.conf:

 

lba32

#насчет следующих строчек не уверен, пробовал с ними и без них

disk=/dev/sda

bios=0x80

#

boot=/dev/sda

root=/dev/sda1

install=/boot/boot-menu.b

map=/boot/map

delay=20

prompt

timeout=100

vga=normal

default=Linux

image=/vmlinuz

label=Linux

read-only

 

В /dev/sda создал один раздел (/dev/sda1) и отформатил в ext2.

Грузился с винта, указывал root=/dev/sda, запускал lilo. В /dev/sda явно видно, что лило прописан (в mc по F3).

Posted

Если DOS еще грузится, может имеет смысл использовать loadlin, а не lilo?

В смысле создать отдельный раздел диска, установить туда DOS и держать

там ядро и loadlin. И, уж держать bzImage, а не vmlinux

Конечно, в этом случае, в идеале нужно лицензионную DOS ;)

 

Кстати, что значит "DOSовый загрузчик" --- это тот, что на обычном

диске сидит в MBR и грузит систему с активного раздела диска (partiton)?

Тогда, может достаточно заменить boot=/dev/sda1?

 

Кстати, вместо lba32 иногда лучше писать linear

 

Строчки

disk=/dev/sda

bios=0x80

Нужны обязательно, если команда lilo выполняется в системе, загруженной

не с диска /dev/sda.

  • 2 weeks later...
Posted

Про loadlin мы тоже додумались.

Сделали 3Мб DOSовый раздел sda1. Туда засунули loadlin, ядро и autoexec.bat. На sda2, отформаченый в ext2, засунули Линух. Все заработало, кроме random генератора ядра (/dev/random, /dev/urandom).

 

Что за загрузчик - непонятно. Ставил LILO и в sda1, и в sda2, менял boot флаги, все пофигу. Грузит DOS с раздела sda1 и все. Может, он вообще в BIOS прописан?

Posted

Вообще-то я немного соврал. Поставил более подробные эксперименты, и получилось загрузить lilo, если ставить его в sda1. Пока, правда, все ограничилось надписью LILO, ядро что-то не загрузилось. Будем по мере наличия времени продолжать эксперименты, манипулировать настройками и держать всех в курсе.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...