[MLUG] bootable usb flash

Shafiev Pinachet pinachet на hotmail.ru
Ср Окт 31 07:19:46 MSK 2007


Hello Dmitry Druganov 

Попробуй мать перепрошить.

Пн, 29.10.2007 01:56:31 you wrote:
>
DD>    Всем привет!
> 
>    Делаю загрузочную флэшку (свою), которая должна (в теории)
> запускаться на всех материнских платах, поддерживающих загрузку
> с USB. В качестве загрузчика ставлю GRUB на флэш. Есть матери,
> которые не умеют собственными средствами читать более 8МБ с флешки,
> посему, если stage1.5 находится далеко, то GRUB вылетает с ошибкой
> Error 18 (диск не найден). А stage1.5 действительно оказывается за
> пределами 8МБ, если создавать раздел ext2 (размером ~400МБ). Если
> создать раздел ext2 7MB, то все ОК. Проблема казалось бы решилась,
> когда я заменил ext2 на fat. Но после этого выяснилось, что на ASUS
> матерях почему-то (!!??) перестал загружаться GRUB (пишет Not a
> bootable disk), как это связано с типом раздела - ума не приложу, 
> ведь эта же флешка на via-матерях работает нормально. Да, кстати, 
> пробовал делать два раздела, один 7МБ загрузочный, а другой 400 - 
> тоже все нормально, но на ASUS P5S800 не работает... хотя с одним 
> разделом загрузочным в 400MБ на этой же матери все отлично. Короче,
> по-сути, главный вопрос:
> 
>    Как создать раздел с ext2 на 400МБ так, чтобы stage1.5 оказался
> в первых 8МБ дисках?
> 
>    Что я еще делал: создавал раздел 7МБ, пробовал разместить в нем
> grub-овские файлы, а потом resize2fs - не помогло, parted тоже
DD> отказывался из-за какой-то ошибки (сейчас не помню) расширить раздел
> до 400МБ. Почему-то при созданном чистом разделе c ext2 при записи
> одного и того же файла он физически оказывается в разных местах при
> разных попытках (он что его рандомом размещает что-ли??:)). Еще пробовал
> использовать вместо ext2 minix, вроде бы тоже ничего, но большой файл
> объемом больше 40МБ в этот раздел уже не запишешь... Провозился с этой
> ерундой целый день, может быть кто что посоветует на главный вопрос или
> даст еще какой-нибудь дельный совет, как это обойти?
> 
>   P.S. вот мой тестовый скрипт, которым я пытаюсь сделать
> вышеописанное: он должен прошить флэшку /dev/sdc, т.е. создать
> раздел на ней максимальный по размеру раздел с ext2, скопировать
> туда файлы grub'а, установить сам grub и впоследствии загразить
> ramdisk.img
> 
> ######################################################################
> 
> #!/bin/bash
> 
> if [ `cat /proc/partitions | grep sdc | wc -l` = 0 ]; then
>     echo "sdc: no device"
>     exit
> fi    
> 
> umount /dev/sdc1
> dd if=/dev/zero of=/dev/sdc count=100
> sleep 2
> # создаю единственный раздел с типом 83 на весь диск
> (echo n; echo p; echo 1; echo; echo; echo a; echo 1; echo t; echo 83;
> echo w; echo q;) | /sbin/fdisk /dev/sdc sleep 2
> 
> mkfs.ext2 /dev/sdc1
> 
> mount /dev/sdc1 /mnt/flash
> mkdir /mnt/flash/boot
> cp -rv ./base_pt/boot/grub /mnt/flash/boot
> mkdir /mnt/flash/boot/boot
> cp -rv ./base_pt/boot/grub /mnt/flash/boot/boot
> sync
> cp -rv ./base_pt/boot/kernel /mnt/flash/boot
> cp -rv ./base_pt/boot/memtest /mnt/flash/boot
> umount /dev/sdc1
> 
> echo -e "root (hd2,0)\nsetup (hd2)\nsetup (hd2,0)\nquit" | /sbin/grub --batch
> 
> mount /dev/sdc1 /mnt/flash
> cp -rv ./base_pt/ramdisk.img /mnt/flash
> umount /dev/sdc1
> echo done
> _______________________________________________
> MLUG (http://moscow.lug.ru) mailing list
> MLUG на UnixCenter.RU
> http://lists.unixcenter.ru/mailman/listinfo/mlug


__________
www.newmail.ru -- узел свободных коммуникаций.


Подробная информация о списке рассылки MLUG