00001: $mkdir /usr/local/embase/ 00002: $cd /usr/local/embase 00003: $mkdir rootfs #根文件 00004: $mkdir boot #引导所需文件
下载并解压缩进入配置解界面,
00001: $cd busybox 00002: $make menuconfig 00003: $make 00004: $make install
完成后会在busybox目录下生成_install目录。
00001: $cd /usr/local/embase/rootfs 00002: $mkdir etc usr var tmp proc home root lib
00001: $cp -R busybox/_install/* /usr/local/embase/rootfs
直接拷贝宿主机的/dev目录
00001: $cp -R/dev /usr/local/embase/rootfs
也可以用mknod手工建立,如创建/dev/console,字符设备c, 主设备号5,次1
00001: $mknod console c 5 1
直接拷贝busybox的启动目录。
00001: $cp -R busybox-1.00/examples/bootflopyp/etc/init.d /usr/local/embase/rootfs/etc/
00001: /dev/fd0 / ext2 defaults 0 0 00002: none /proc proc defaults 0 0 00003: /dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0 00004: /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
00001: root:x:0:root
拷贝busybox的示范inittab指etc
00001: Embase NAS 0.1
00001: root::0:0:root:/root:/bin/ash
00001: # /etc/profile: system-wide .profile file for the Bourne shells 00002: echo 00003: echo 00004: export PS1="[\u@\h \w]\$" 00005: echo "Done" 00006: alias ll='ls -l' 00007: alias du='du -h' 00008: alias df='df -h' 00009: alias rm='rm -i' 00010: echo
00001: nameserver 202.96.209.5 00002: nameserver 202.96.209.6
口令文件,其中的计算后口令字串从本机拷贝。 shadow
00001: root:$1$$adltAB9Sr/MSKqylIvSJT/:12705:0:99999:7:::
shadow-
00001: root:$1$DWU.tenP$B7ANiXoGoiZMwJR6Ih8810:12705:0:99999:7:::
确保有可执行权限,且内容为:
00001: #! /bin/sh 00002: mount -o remount,rw / 00003: 00004: 00005: /bin/mount -a 00006: >/etc/mtab 00007: echo 00008: echo 00009: echo 00010: echo 00011: echo -en "\t\tWelcom to \\033[0;32mEmbase NAS\\033[0;39m\n" 00012: echo -en "\\033[0;36m\n" 00013: echo 00014: echo -en "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\t\t\n" 00015: echo -en "+ Embase NAS V 0.1 \t\t\n" 00016: echo -en "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\t\t\n" 00017: echo -en "\\033[0;39m\n" 00018: hostname BabyLinux
为了等待usb设备,mount根文件系统,需要重新创建/boot/initrd.img-2.6.15-1-486 文件。 用于加载内核初始化时相应模块的ramdisk。
00001: ehci_hcd 00002: uhci_hcd 00003: ohci_hcd 00004: usb-storage 00005:
00001: $mkinitrd -o initrd.img-2.6.15-1-486 2.6.15-1-486 #与ls /lib/modules返回的内核版本号一致 00002: $cp initrd.img-2.6.15-1-486 /usr/local/emabse/boot/ 00003:
00001: title embase 00002: root (hd0,0) #hd0代表第几个硬盘,从0开始,指示grub的stage1,stage2 文件位于那个分区 00003: kernel /boot/vmlinuz root=/dev/sda1 #指示到那里去寻找内核,以及根文件系统的分区 00004: initrd /boot/initrd #启动ramdisk加载内核模块和等待usb文件系统
内核加载的module位于/lib/modules下。与所编译的内核一一对应。
00001: $cp /boot/vmlinuz-2.6.15-1-486 /usr/local/embase/booot 00002:
00001: $cp -rf /lib/modules /usr/local/embase/rootfs/lib/ 00002:
00001: $cd /usr/local/embase/boot 00002: $ln -s vmlinuz-2.6.15-1-486 vmlinuz 00003:
00001: $fdisk /dev/sda
00001: $mkfs.ext2 -m0 /dev/sda0 00002: $mount /dev/sda0 /mnt
00001: $cp -rf /usr/local/embase/rootfs/* /mnt 00002: $cp -rf /usr/local/embase/boot /mnt
suse安装有问题,到debian安装。
00001: $grub 00002: >root (hd1,0) #寻找grub的stage1,stage2安装分区,hd1代表第二块硬盘,如果宿主机为hda,则sda为第二块硬盘,0为第一个分区。 00003: >setup (hd1) #安装grub至第二块硬盘
00001: $cp /usr/sbin/lighttpd /usr/local/embase/rootfs/usr/sbin 00002: $cp -rf /etc/lighttpd /usr/local/embase/rootfs/etc/ 00003: $cp -rf /usr/lib/lighttpd/ /usr/local/embase/rootfs/usr/lib 00004: $cp -rf /usr/share/lighttpd/ /usr/local/embase/rootfs/usr/share/