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工具的源代码。

注意:

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

(2) 因为我们用的是 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引导器详细过程_linux教程相关推荐

  1. linux+软盘启动程序,软盘上的Linux系统方案

    本文将介绍一种两张软盘上的Linux系统,它可以当作系统应急修复盘.路由器或防火墙等许多地方,通过对它的研究,也可以加深对嵌入式系统的理解. 一.前言 嵌入式Linux是由一个几百KB的Linux内核 ...

  2. linux系统设置服务开机启动3种方法,Linux开机启动程序详解

    linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图 方法2:利用命令行chkconfig命令进行设置 简要说明一下ch ...

  3. linux 软盘启动程序,Linux 引导过程及原理-从软盘启动GRUB

    制作启动盘后,可以用软盘启动引导硬盘上的操作系统.插入制作好的启动软盘,进入BIOS并设置用软盘启动.软盘启动成功后就会进入GRUB的命令行模式: grub> 要启动一个操作系统,首先指定引导哪 ...

  4. linux 快速启动程序,在Linux上安装ULauncher快速启动应用程序的方法

    本文介绍在Linux操作系统上安装ULaunche的方法,Ulauncher是一款应用程序启动器,安装后可以非常轻松地查找和启动文件.快速打开网站.查找要打开的程序.计算数学问题等等,参考Linux应 ...

  5. linux sd启动盘制作工具,制作Mini Linux U盘启动盘

    by ncforest http://ncforest.blog.163.com 在将U盘制作成启动盘,然后用Mini Linux引导,可以用以修复硬盘上的Linux系统错误. Mini linux很 ...

  6. Linux开机启动程序rc.local

    文章目录 1./etc/rc.local是/etc/rc.d/rc.local的软链接 2.rc.local文件的原始内容 3.rc.local文件的配置 4.应用经验 5.版权声明 在CentOS7 ...

  7. linux命令启动程序,菜鸟学Linux命令:nohup命令启动程序

    在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止. 要实现守护进程,一种方法是按守护进程的规则去编程,比较麻烦: 另一种方法是仍然用 ...

  8. Linux开机启动程序的两种方法

    /usr/lib/systemd/system: 安装包相关配置,一般是供应商提供的操作系统资源.通常,只允许包管理工具(yum/dnf/rpm/apt)进行包安装的过程中操作此路径: /lib/sy ...

  9. Linux下启动程序常见问题,linux系统启动流程及常见故障解决方式

    Linux系统中启动的流程: 1.加载bios的硬件信息以及进行自我检测  并根据设置取得第一个启动的设备 2.若以硬盘方式引导  读取并执行引导扇区 MBR 3.加载grub(引导程序)启动菜单(/ ...

最新文章

  1. 最新!3D目标检测论文汇总(多模态融合)
  2. MySQL性能测试工具sysbench的安装和使用
  3. .net 网页播放器
  4. Vue.js-Day01-AM【第一次学习-安装、基础使用(引入方式)、数据展示、指令介绍(v-html、v-text、v-bind、v-if、v-for】
  5. python range函数范围_Python range函数
  6. 北大青鸟c语言课后答案,北大青鸟C语言教程--第一章 C语言基础.ppt
  7. 前端学习(239):渐进增强和优雅降级
  8. python类的私有属性_Python类的私有属性
  9. div 设置a4大小_如何在A4纸张尺寸页面制作HTML页面?
  10. cisco 9月24日 CCNA实验
  11. Linux下MySQL5.6的修改字符集编码为UTF8
  12. bzoj4332;vijos1955:JSOI2012 分零食
  13. 解决maven打包 错误: 程序包com.sun.istack.internal不存在 - BBSMAX
  14. 信息安全体系建设(一)
  15. 分布式系统互斥算法---令牌环算法
  16. 日本老人租妻女,“共享家庭”能用来抵抗孤独吗?
  17. 《数据清洗》 第六章 数据转换
  18. Windows Filtering Platform Windows筛选平台
  19. hotmail邮箱设置【2018年10月14日】
  20. 电脑突然开机无反应,怎么办

热门文章

  1. 浮点数单精度双精度存储
  2. 概率分布函数和概率密度函数
  3. Win10下python2和python3同时安装并解决pip共存
  4. 武汉计算机专业好的二本,武汉好点的计算机类二本
  5. 最小均方误差和最小二乘法的关系
  6. 【新年有礼】网易智能年终答谢获奖名单公布!
  7. 2021年潮阳一中的高考成绩查询,奋斗拼搏 无悔青春——寄语潮阳一中2019届高三学子...
  8. 面试题--Git与设计模式
  9. 【IEEE CIM 2023】基于多目标进化算法的抗菌肽设计方法
  10. 用腾讯轻联,打通草料二维码与其他应用的连接