Gelin Posted April 25, 2003 Posted April 25, 2003 Появилась благородная задача: сделать роутер на Линухе без жесткого диска. С использованием 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 Вставить ник Quote
Gelin Posted April 25, 2003 Author Posted April 25, 2003 Содержимое 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). Вставить ник Quote
mky Posted April 30, 2003 Posted April 30, 2003 Если DOS еще грузится, может имеет смысл использовать loadlin, а не lilo? В смысле создать отдельный раздел диска, установить туда DOS и держать там ядро и loadlin. И, уж держать bzImage, а не vmlinux Конечно, в этом случае, в идеале нужно лицензионную DOS ;) Кстати, что значит "DOSовый загрузчик" --- это тот, что на обычном диске сидит в MBR и грузит систему с активного раздела диска (partiton)? Тогда, может достаточно заменить boot=/dev/sda1? Кстати, вместо lba32 иногда лучше писать linear Строчки disk=/dev/sda bios=0x80 Нужны обязательно, если команда lilo выполняется в системе, загруженной не с диска /dev/sda. Вставить ник Quote
Gelin Posted May 12, 2003 Author Posted May 12, 2003 Про loadlin мы тоже додумались. Сделали 3Мб DOSовый раздел sda1. Туда засунули loadlin, ядро и autoexec.bat. На sda2, отформаченый в ext2, засунули Линух. Все заработало, кроме random генератора ядра (/dev/random, /dev/urandom). Что за загрузчик - непонятно. Ставил LILO и в sda1, и в sda2, менял boot флаги, все пофигу. Грузит DOS с раздела sda1 и все. Может, он вообще в BIOS прописан? Вставить ник Quote
Gelin Posted May 15, 2003 Author Posted May 15, 2003 Вообще-то я немного соврал. Поставил более подробные эксперименты, и получилось загрузить lilo, если ставить его в sda1. Пока, правда, все ограничилось надписью LILO, ядро что-то не загрузилось. Будем по мере наличия времени продолжать эксперименты, манипулировать настройками и держать всех в курсе. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.