Search Members Help

» Welcome Guest
[ Log In :: Register ]

Mini-ITX Boards Sale, Fanless BareBones Mini-ITX, Bootable 1G DSL USBs, 533MHz Fanless PC <-- SALE $200 each!
Get The Official Damn Small Linux Book. DSL Market , Great VPS hosting provided by Tektonic
 

[ Track this topic :: Email this topic :: Print this topic ]

reply to topic new topic new poll
Topic: grub: breaking the 1gb barrier, a minimalist's approach< Next Oldest | Next Newest >
~thc Offline





Group: Members
Posts: 42
Joined: Dec. 2005
Posted: Feb. 21 2007,20:26 QUOTE

use extreme caution: several steps mentioned below could ruin your pendrive and/or your harddisk
DO NOT COPY AND PASTE COMMANDS - double check what you are doing!
I have tested this with a 2 gb pendrive (fat16) / knoppix 5.1.1 and a 512 mb pendrive (fat32) / dsl 2.1.

the filenames, directoriy names and grub settings used below are only examples!

what you need

- an usb pendrive of any size formatted as a hard disk
- the first or only partition of this pendrive formatted with a fat filesystem and enough space left for dsl/knoppix
- the contents of a dsl (or other knoppix based) cd
- a real or virtual computer running a linux installation with grub and usb pendrive support
- a pc bios capable of emulating a hard disk booting mechanism for the usb pendrive

step by step

1. copy the following dsl/knoppix files to the usb pendrive

(cd)/KNOPPIX/KNOPPIX -> (usb)/KNOPPIX/KNOPPIX
(cd)/boot/isolinux/kernel_filename -> (usb)/boot/linux
(cd)/boot/isolinux/gzipped_miniroot_filename -> (usb)/boot/minirt.gz

[starting with knoppix 5 the cd contains essential kernel modules in /KNOPPIX/modules - you will need this directory and all files in it too.]

2. convert isolinux.cfg from the dsl/knoppix cd

create a new text file (dos or un*x) namend menu.lst and add those three lines:

Code Sample
default 0
timeout 5
color cyan/blue white/blue


the syntax of the boot entries in (cd)/boot/isolinux/isolinux.cfg and grub's menu.lst differ slightly.

for every dsl/knoppix isolinux.cfg boot entry like this example

Code Sample
LABEL  example
KERNEL linux24
APPEND ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=791 initrd=minirt24.gz quiet BOOT_IMAGE=knoppix


add the corresponding boot entry to menu.lst like this converted example:

Code Sample
title  example
kernel /boot/linux ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=791 quiet BOOT_IMAGE=knoppix
initrd /boot/minirt.gz


another example: a menu.lst file containing only the default dsl 2.1 entry would look like this:

Code Sample
default 0
timeout 5
color cyan/blue white/blue

title dsl
kernel /boot/linux ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=791 nomce noapic quiet BOOT_IMAGE=knoppix
initrd /boot/minirt.gz


create a directory (usb)/boot/grub.
copy the file menu.lst to (usb)/boot/grub

3. prepare the grub install

boot the linux installation and mount your usb pendrive (sda1 and /mnt are only examples!)

Code Sample
# mount /dev/sda1 /mnt


copy the grub stage loader files from the linux installation to the stick

Code Sample
# cp /boot/grub/stage1 /mnt/boot/grub
# cp /boot/grub/fat_stage1_5 /mnt/boot/grub
# cp /boot/grub/stage2 /mnt/boot/grub


mark the usb grub directory by putting a unique file there:

Code Sample
# touch /mnt/boot/grub/mark


4. install grub

start grub from the command line.

Code Sample
# grub


from the grub shell enter the following commands (hd1 and the grub output are only examples!):

Code Sample
grub> find /boot/grub/mark
 (hd1,0)

grub> root (hd1,0)
 Filesystem type is fat, partition type 0xe

grub> setup (hd1)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/fat_stage1_5" exists... yes
 Running "embed /boot/grub/fat_stage1_5 (hd1)"...  15 sectors are embedded.
succeeded
 Runnung "install /boot/grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/boot/grub/stage2
/boot/grub/menu.lst"... succeeded
Done.

grub> quit


the file "mark" is no longer needed:

Code Sample
# rm /mnt/boot/grub/mark
# umount /mnt


the stick should now boot into grub.

goodies

- grub's stage 1.5 loader reads file systems, not hard disk sectors - you don't have to worry about the geometry or the size of your pendrive.

- grub's setup does not alter neither the boot sector of the first (or only) pendrive partition nor the contents of that partition.
[the stage 1.5 loader is written to 15 (normally empty and unused) sectors directly following the mbr/partition table.]

- if bartpe is (or will be ;) ) installed on your pendrive, you can tell grub to boot it by adding to menu.lst:

Code Sample
title bartpe
chainloader +1
Back to top
Profile PM 
0 replies since Feb. 21 2007,20:26 < Next Oldest | Next Newest >

[ Track this topic :: Email this topic :: Print this topic ]

 
reply to topic new topic new poll
Quick Reply: grub: breaking the 1gb barrier

Do you wish to enable your signature for this post?
Do you wish to enable emoticons for this post?
Track this topic
View All Emoticons
View iB Code