星期三, 10月 13, 2004

Floppy Linux with GRUB

1.安裝(grub)


一般Floppy Linux都使用syslinux(不支援ext2,只能用fat),經過測試grub只用了132KB,並不大。

# mke2fs /dev/fd0
# mount /dev/fd0 /mnt/floppy

將grub需要的設定檔copy到floppy

# mkdir /mnt/floppy/boot
# mkdir /mnt/floppy/boot/grub
# cp /boot/grub/stage1 /mnt/floppy/boot/grub
# cp /boot/grub/stage2 /mnt/floppy/boot/grub

先su -成root,執行grub

grub> root (fd0)
grub> setup (fd0)
grub> quit

grub安裝完成

2. 安裝Rootfs

Rootfs要包含:

/bin /etc /proc /tmp /var /dev /mnt

dev下要有:

/dev/console /dev/fd0 /dev/null /dev/ram0 /dev/tty /dev/tty0

etc下要有:

/etc/rc.d/inittab /etc/rc.d/rc.sysinit /etc/fstab

bin下要有一些基本工具:

如:sh,ls,cd,cat……

一般使用busybox

(1)修改 Makefile 中的 DOSTATIC,將false 改為 true,這樣執行時就不需要有glibc了。
(2)BusyBox 上的 init,和一般所使用的 init 不一樣,她會先執行 /etc/init.d/rcS 而不是 /etc/rc.d/rc.sysinit。
為了和Redhat的配置相同,所以修改了 BusyBox 中的 init.c。底下是修到的部分

#ifndef INIT_SCRIPT
#define INIT_SRCIPT "/etc/rc.d/rc.sysinit"
#endif

(3) 安裝
#make
#make install

(3)./_install 文件。

#cp ./_install /tmp/floppy-linux -r

(4)建立其它的文件或文件:


#cd /tmp/floppy-linux
# mkdir dev etc etc/rc.d proc mnt tmp var
# chmod 755 dev etc etc/rc.d bin mnt tmp var
# chmod 555 proc
# cd dev
# mknod tty c 5 0
# mknod console c 5 1
# chmod 666 tty console
# mknod tty0 c 4 0
# chmod 666 tty0
# mknod ram0 b 1 0
# chmod 600 ram0
# mknod fd0 b 2 0
# chmod 600 fd0
# mknod null c 1 3
# chmod 666 null

(5) 配置文件:(inittab,rc.sysinit,fstab)

initab:
::sysinit:/etc/rc.d/rc.sysinit
::askfirst:/bin/sh
rc.sysinit:
#!/bin/sh
mount -a
# chmod 755 rc.sysinit
fstab:
proc /proc proc defaults 0 0

(6) 作Ramdisk:


# dd if=/dev/zero of=/tmp/initrd bs=1k count=4096
# losetup /dev/loop0 /tmp/initrd
# mke2fs -m 0 /dev/loop0>
# mount -t ext2 /dev/loop0 /mnt
# cp -r /tmp/floppy-linux/* /mnt
# umount /mnt
# losetup -d /dev/loop0
# dd if=/tmp/initrd | gzip -9 > /tmp/initrd.gz
# rm -f /tmp/initrd
# sync

3.核:

主要是去掉了一些不需要的,?核是725920Byte。包含了必要的网卡。

4.整合

在所用到了的全部搞好了,下面就是整合一下:

全部文件(文件)如下:

/lost+found/
/boot/
/boot/grub/
/boot/grub/stage1 =========Grub用到的文件
/boot/grub/stage2
/boot/grub/menu.lst =========Grub的配置文件指向grub.conf
/boot/grub/grub.conf
/boot/kernel =============核
/initrd.gz ===============存

沒有留言:

張貼留言