当前位置:  技术问答>linux和unix

急急!需要一个小的linux

    来源: 互联网  发布时间:2015-09-11

    本文导语:  哪里可以下载一个小的linux小于64M,支持i386,网络功能,2.4内核.谢谢! | 自己制作一个小小mini的---linux 1. 软盘上安装引导器(grub)    一般制作软盘上跑的linux引导器都使用syslinux这个工具...

哪里可以下载一个小的linux小于64M,支持i386,网络功能,2.4内核.谢谢!

|
自己制作一个小小mini的---linux

1. 软盘上安装引导器(grub)
   一般制作软盘上跑的linux引导器都使用syslinux这个工具(这个工具不支持ext2分区格式,只能支持fat分区格式),因为我对grub比较熟悉,并且我在软盘上安装grub只用了132KB空间,不是很耗磁盘空间。
具体操作如下:

# mke2fs /dev/fd0

创建了 ext2 文件系统后,需要安装该文件系统: 

# mount /dev/fd0 /mnt/floppy 

现在,需要创建一些目录,并将一些关键文件(原先安装 GRUB 时已安装了这些文件)复制到软盘:

# 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

再有一个步骤,就能得到可用的引导盘。 

在linux bash中,从 root 用户运行“grub”,该程序非常有趣并值得注意,因为它实际上是 GRUB 引导装入器的半功能性版本。尽管 Linux 已经启动并正在运行,您仍可以运行 GRUB 并执行某些任务,而且其界面与使用 GRUB 引导盘或将 GRUB 安装到硬盘 MBR 时看到的界面(即GRUB控制台)完全相同。 

在 grub> 提示符处,输入: 

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

现在,引导盘完成了。

2. 安装根文件系统:

一套linux系统要正常启动,根文件系统要包括下列文件夹:

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

要包括下列基本的设备文件:

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

要包括下列配置文件:

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

要实现基本的功能,还要包括一些常用工具:

如:sh,ls,cd,cat……

其中,前面三个部分不要多少空间的,但是常用工具会占用很多空间,要是用原来系统中的这些命令,就是全部用静态编译,不是用动态连接库,大概有2MB~3MB,放不进软盘。网络上解决的方案是使用BusyBox工具。具体可以到官方网站:www.busybox.net看看。

下载BusyBox工具的源代码,编译:

注意:

   编译的时候要静态编译,修改 Makefile 中的 DOSTATIC 参数,从false 改为 true,这样,编译出来的代码就不要依赖glibc了。

    因为我们用的是 BusyBox 上的 init,与一般所使用的 init 不太一样,会先执行 /etc/init.d/rcS 而非 /etc/rc.d/rc.sysinit,为了做出来的 FloppyLinux 架构与 Redhat 的架构一样,所以修改了 BusyBox 中的 init.c底下是修到的部分内容∶ 

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

具体操作如下:

(1) 官方网站上下载BusyBox的最新版本:busybox-0.60.5.tar.gz解开,按照上面的注意点修改源代码

(2) 运行下列命令:

#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 ===============è 内存镜像文件

这样这张软盘就能启动一套Linux系统了,占用1.213MB。







|
刚刚看了一下我的邮箱,软盘Linux的镜像竟然还在!
要的话发送给你。

    
 
 

您可能感兴趣的文章:

  • 请问如果要按自己需要修改linux内核源代码需要那些准备知识
  • 使用secureFX连接到linux上需要在linux上配置什么
  • 使用linux内核+qt开发的应用程序需要开源吗
  • 公司需要,要我学linux,和并行系统软件开发,诸位有什么好的建议?我一点不懂linux!
  • 在linux下开发游戏程序需要什么?
  • 网络中其他98的机器怎么telnet到linux机器上,linux中有没有什么需要设置的
  • 做Linux操作系统下的手机驱动开发需要掌握哪些知识啊?
  • 要写一个Linux下的elf加载器需要哪些知识?
  • 测试需要:如何让Linux瞬间宕机?
  • 请教:Linux7.0下安装oracle817需要网卡吗?
  • 嵌入式linux硬件平台移植需要修改哪些相关设置
  • 要在linux上实现router功能,需要装哪些软件?
  • 在装蓝点Linux时提示需要ext2分区,请问如何分区。用何工具?
  • linux上的c程序移植到solaris 10 需要作哪些工作
  • linux中html解析,需要哪些知识
  • 在linux环境下,搞分布式方面的开发,需要什么样的软件,硬件?
  • 作linux开发,平常需要准备那些参考资料?
  • 狂急! 狂急! Satyam公司需要Linux内核高级工程师/测试经理
  • linux需要补丁吗
  • linux下安装postgres需要提前安装什么?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • win7, win8安装docker需要了解的概念
  • 请问装完JBuilder后要做JSP还需要什么配置?需要Apache?
  • PHP编程需要注意地方总结
  • asp需要服务器装iis,那jasp服务端需要装什么软件?
  • 软件项目版本控制需要注意的几点
  • 运行JSP、SERVLET需要那些配置?需要如何设置?请各位指点。
  • Android开发需要的几点注意事项总结
  • 弱弱的问题^_^在VA中怎么编译调试Servlet程序啊?需要安装什么环境?除了VA还需要什么
  • OpenStack中compute介绍和compute实例需要注意的问题
  • memset分配的空间用完以后需要进行释放吗? 如果需要释放,怎么释放呢? ---阿菜
  • 基于c中使用ftruncate()前需要fflush(),使用后需要rewind()的深入探讨
  • 现在在嵌入式系统中需要使用iconv系列函数,都需要用到什么库(.so)
  • spec中打patch是否需要按顺序
  • 这个程序需要在哪些方面做个修改
  • sql语法中什么类型的值需要用单引号‘’修饰?
  • 交换式以网需要CSMA/CD吗?
  • 我刚装好,是不是需要配制环境变量?求教。
  • NOR flash是否需要驱动?
  • 嵌入式如何串口登录需要密码?
  • SCJD需要培训吗?
  • jsp文件到底需不需要编译?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3