LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 6171|回复: 5

制作自己的Debian GNU/Linux安装磁盘

[复制链接]
发表于 2003-12-24 22:17:24 | 显示全部楼层 |阅读模式
    或许少数人有这样的经历,遇到一台硬件古怪的机器A,手头虽然有Debian GNU/Linux发型版的光盘和软盘,但是尝试了所有自带的内核,举woody的例子来说,如bf24和compact,依然无法正确识别硬件,尤其是不常见的scsi控制器和网卡,导致安装失败。

    怎么办?还有希望的,如果你查阅某一版本内核的源码,发现你的硬件设备是被支持的,只不过没有做到标准发型版的启动内核里,那么我们就需要做自己的启动盘了。

    本文只以制作软盘为例,光盘类同。

一,你需要准备的
    1 另一台装有GNU/Linux系统的机器B,装有编译内核所需软件。
    2 Debian 官方的开机启动软盘映像文件:本文采用bf24 rescue.bin/root.bin
    3 官方的驱动包:drivers.tgz (不必须)

二,rescue.bin究竟是什么
    我们来解开rescue.bin的真面目,看看它到底是什么东西构成的。在机器B上,执行:
  1. mkdir -p /mnt/loop && mount -t msdos -o loop rescue.bin /mnt/loop
复制代码

    到/mnt/loop下看看吧,哈哈,太简单了,除了几个控制显示信息的文本和一小段引导程序,我们真正关心的只有三个东西:linux.bin/config.gz/sys_map.gz 这三个家伙是什么,除了那个gz的后缀,大家都再熟悉不过了。

三,编译自己的内核
    我们选择与bf24同版本的内核源码2.4.18,编译的步骤我就不再重复了,只想强调几点。第一只编尽量少的驱动,仅仅是必需的,像什么声卡、电源管理、并口甚至鼠标都以后再说吧。因为我们要把所有东西的大小限制在一张1.44M软盘容量内。内核本身控制在1.1M以下比较理想,不会超出。这对于2.4系列内核并不困难。第二记得选上ramdisk和floopy,编译进内核,_而不是模块_,要不然你拿什么来启动root.bin那张盘

四,替换
    用自己生成的bzImage替换掉/mnt/loop下面的linux.bin,把.config和System.map压缩一下替换掉config.gz及sys_map.gz。完成后umount /mnt/loop,把修改过的rescue.bin通过dd等程序写到软盘上。用它来启动古怪的A机器吧!

五,其他的事情
    还有个东西drivers.tgz,如果你想用自己编译的模块替换掉它,也没问题。编译内核时候指定一下模块安装的路径:
  1. make INSTALL_MOD_PATH=/tmp/new-modules modules_install
复制代码

把他们打包:
  1. cd /tmp/new-modules/
  2. tar -zcvf ../modules.tgz
复制代码

把drivers.tgz解开,用自己的包代替,再封装:
  1. mkdir /tmp/newdriver
  2. cd /tmp/newdriver
  3. tar -zxvf ../drivers.tgz
  4. rm pcmcia.tgz modules.tgz
  5. cp ../modules.tgz .
  6. tar -zcvf ../drivers-new.tgz
复制代码

    好了,我们的驱动包也做好了,就是这个drivers-new.tgz,为了装到几张软盘里,需要切割一下,有个叫floopy_split(http://silicon-verl.de/home/flo/ ... bf/floppy_split.tgz)的小工具可以完成使命。



文中难免大小错误,各位多多评点,权当小弟抛砖引玉。
版权没有,翻版不究。
发表于 2003-12-24 22:29:48 | 显示全部楼层
我做过一次自己的安装盘,下载了debian的那些安装软盘,然后搞一个dos启动光盘,用loadlin来启动debian的安装过程。光盘上只有最小的系统,装好以后直接连网安装后面的东西。我用这个盘自己装了七八次。
发表于 2003-12-25 08:13:58 | 显示全部楼层
要的就是这个东西,先谢了!
发表于 2003-12-25 10:59:26 | 显示全部楼层
That's what I need!!!Thank you!!
很有启发性。
发表于 2003-12-27 00:37:30 | 显示全部楼层
我编译的内核root盘出错
cramfs: wrong magic
fat:bogus local sector size 31709
UMSDOS: msdos_read_sper failed, mount aborted
Kernel panic:VFS:unable to mount root fs on 02:00

需要额外的file system支持么?
我选了DOS FAT MSDOS fs UMSDOS VFAT Compressed-Rom-file Virtual-memory-file
发表于 2009-4-22 23:40:09 | 显示全部楼层
虽然不知道自己会不会用这个功能,不过了解一下也是好的,谢谢楼主的分享。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表