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

一张软盘启动计算机的问题

    来源: 互联网  发布时间:2015-01-27

    本文导语:  我听说有一种方法可以用一张软盘启动计算机进入LINXU系统(不是启动盘) 方法中有这样的命令: mke2fs -i 8129 -m 0 /dev/fd0 KERNEL_BLOCKS cp bdlilo.conf KERNEL /mnt  //*bdlilo.conf 是自己写的文件 但是这个方法是用与REDHAT5...

我听说有一种方法可以用一张软盘启动计算机进入LINXU系统(不是启动盘)
方法中有这样的命令:
mke2fs -i 8129 -m 0 /dev/fd0 KERNEL_BLOCKS
cp bdlilo.conf KERNEL /mnt  //*bdlilo.conf 是自己写的文件
但是这个方法是用与REDHAT5。1上的
我使用的是7。3命令不能用了 :他说KERNEL_BLOCKS与KERNEL不存在
请问这是怎么一回事

|
在网上搜的:

动手制做自己的Linux启动盘  
http://www.china-pub.com/computers/emook/0335/info.htm

凡是接触计算机久的朋友肯定都使用过DOS启动软盘,至于启动软盘的重要性大家肯定也都清楚。在Linux底下启动软盘同样重要,它不仅能测试新内核、恢复系统错误,而且能升级重要的系统文件。但是在Linux下制做启动盘不象在DOS下那么容易,下面我就一步一步的教大家制做自己系统的启动软盘。 

  1. Linux启动过程简介 
  一个启动盘实际上是一个完整系统的缩影,它能够执行一个完整系统的大部分功能。因此,如果想制做Linux启动盘,你必须了解Linux系统启动的基本过程。接下来我就先简要介绍一下Linux的启动过程。 
   所有的PC机都是通过执行ROM中的代码加载启动盘的0柱面0扇区中的代码来启动整个系统。在Linux系统中启动盘的0柱面0扇区中含有的是启动装载器LILO,它定位内核,装载它,最后执行它。一旦内核装载后,它先是进行基本设备初始化,接着试图加载并登陆磁盘中根文件系统,如果内核找不到可装载的根文件系统,启动过程会就此停止。如果根文件系统装载完毕并登陆成功后,你会看到一行信息: 
  VFS: Mounted root (ext2 filesystem) readonly. 
之后,系统发现init程序并执行它,init程序寻找它的配置文件/etc/inittab,并开始执行其中的脚本,这些脚本是一些SHELL命令的组合,用来执行如下命令,如加载所需模块、装载SWAP、初始化网络、装载fstab中列出的所有驱动器等。最后启动一个叫getty的程序,它负责console和ttys之间的通信,它在显示器上打印login提示符并激活login程序,login处理登陆的有效性并建立与用户的对话。至此,启动过程完毕。 

  2. 制做启动盘 
  创建一个启动盘首先必须创建根文件系统,由于软盘容量有限,因此常采用压缩的根文件系统。下面我就详细的介绍怎样创建压缩格式根文件系统。 

  1) 准备 
  一个根文件系统必须包括支持完整Linux系统的全部东西,因此,它至少应包括以下几项: 
  · 基本文件系统结构
  · 至少含有以下目录:/dev, /proc, /bin, /etc, /lib, /usr, /tmp 
  · 最基本的应用程序,如sh, ls, cp, mv等 
  · 最低限度的配置文件,如rc, inittab, fstab等 
  · 设备:/dev/hd*, /dev/tty*, /dev/fd0 
  · 基本程序运行所需的库函数 
  由于以上所需文件远超过1.44M,因此我们通常的做法是先准备好内容后再压缩到软盘中,当用软盘启动时,再把文件解压到内存中,形成一个虚拟盘(RAMDISK),通过RAMDISK控制系统启动。 
  为了能创建以上的根文件系统,你必须有一个空闲的能够放下大约4M文件的RAMDISK。 
  如果你使用LILO控制启动,先检查一下LILO的配置文件/etc/lilo.conf中定义的RAMDISK的大小。
  /etc/lilo.conf 中有一行 RAMDISK_SIZE = nnn 

  2) 创建根文件系统 
  Linux内核识别两种可以直接拷贝到RAMDISK的文件系统,它们是minix 和ext2,ext2性能更好。如果你使用ext2,你会发现使用-i选项定义比缺省更多的信息节点非常有用。mke2fs缺省情况下在1.44M的软盘上产生360个信息节点,使用压缩格式的根文件系统需要更多的信息节点,所以使用如下命令创建文件系统可以创建2000个信息节点,一般不会用光: 
  mke2fs -m 0 -i 2000 /dev/ram0 
  mke2fs将会自动判断设备容量的大小并相应的配置自身,-m 0参数防止它给root保留空间,这样会腾出更多的有用空间。接着把虚拟盘挂在节点/mnt上: 
  mount -t ext2 /dev/ram0 /mnt
  如果没有节点/mnt,建一个。接着是创建目录。根文件系统最少应该有如下8个目录: 
  /dev ? 设备 
  /proc -- proc 文件系统所需目录 
  /etc ? 系统配置文件 
  /sbin ? 重要的系统程序 
  /bin ? 基本应用程序 
  /lib ? 共享函数库
  /mnt ? 装载其他磁盘节点 
  /usr ? 附加应用程序
  其中/proc,/mnt和/usr在此情况下都是空的,只需要用mkdir创建它们既可。其余的目录应根据需要分别创建,下面我一个一个的详细叙述。
  
   · /dev:/dev中含有系统不可缺少的设备文件,虽然该目录很普通,可以用 mkdir创建,然而目录中的设备文件必须用mknod创建,当然也有捷径,你可以把现有系统中/dev的文件拷贝过来,然后删除不必要的文件。命令cp -dpR /dev /mnt会拷贝/dev整个目录但不拷贝文件内容,dp开关保证链结文件仍然不变,不会拷贝链结所指原文件,而且属性不变。 
  必须注意的是,每一个设备文件占用一个信息节点,而软盘上节点数是有限的,因此有必要删除没用的设备文件。例如,如果你没有SCSI设备,删除所有的以sd开头的文件。如果你不想使用串口设备,删除所有以cua开头的文件。不过记住一定要保留console, kmem, mem, null, ram, tty1等文件。 

  · /etc:这个目录中含有一些必不可少的系统配置文件,那么到底哪些文件是必需的,哪些可有可无呢?告诉你一个小窍门,用命令ls ?ltru,该命令会根据最后使用日期反列一下目录/etc中的文件,如果一些文件很长时间没有被进入过,基本上可以从你的启动盘中删去。
  我的启动盘中含有不到15个配置文件,大致可分为3部分: 
  启动盘中必须含有的文件 
  · rc.d/* -- 系统启动脚本 
  · fstab ?列出要登陆的文件系统 
  · inittab ? 包含启动过程参数    
  而且这些文件都是最简单的。rc应该包括: 
  #!/bin/sh 
  /bin/mount -av 
  /bin/hostname yjy 
  fstab应包括: 
  /dev/ram0 / ext2 defaults 
  /dev/fd0 / ext2 defaults 
  /proc /proc proc defaults 
  inittab包括: 
  id:2:initdefault: 
  si::sysinit:/etc/rc 
  1:2345:respawn:/sbin/getty 9600 tty1 
  2:23:respawn:/sbin/getty 9600 tty2 
  整理系统所需文件 
  · passwd ?用户名和目录. 
  · group ?用户组 
  · shadow ?用户加密密码 
  如果你觉得这不安全,就把passwd和shadow删掉,这样只有root可以进入系统。 
  偶尔使用的文件,可根据自己的实际情况选择。 
  · /bin和/sbin:该目录中包含有必不可少的应用程序,如ls, mv, cat,你可以根据自己的需要选择,不过一定要记住包括以下程序:init, getty,login, mount,运行你的rc的外壳shell。 
  · /lib: 该目录中包含有你的启动盘启动过程中所需要的共享函数库,如果缺少必须的函数库,系统会停止启动或出现一大堆错误信息,所以一定要注意。 
  几乎所有的程序都需要libc库,列一下目录/lib中的libc: 
  % ls -l /lib/libc* 
  -rwxr-xr-x 1 root root 4016683 Apr 16 18:48 libc-2.1.1.so* 
  lrwxrwxrwx 1 root root 13 Apr 10 12:25 libc.so.6 -> libc-2.1.1.so* 
  libc.so.6的6表示版本号,它指向的文件才是你真正需要的。 
  查看每一个程序使用的函数库,用命令ldd,如: 
  % ldd /sbin/mke2fs 
  libext2fs.so.2 => /lib/libext2fs.so.2 (0x40014000) 
  libcom_err.so.2 => /lib/libcom_err.so.2 (0x40026000) 
  libuuid.so.1 => /lib/libuuid.so.1 (0x40028000) 
  libc.so.6 => /lib/libc.so.6 (0x4002c000) 
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) 
  输出右边的库都是必须的,有的可能是链结文件。 
  在/lib目录下你还必须有函数库装载器,这个装载器或是ld.so (对 a.out 库) 或是 ld-linux.so (对 ELF 库)。新版本的ldd一般会告诉你所需库的加载器。 
  把装载器和库拷贝到/lib后,在仔细检查一遍,一定保证没有遗漏。 

  3) 模块 
  如果你有一个模块化的内核,你还得必须考虑需要加载的模块,它们都位于/lib/modules,你可以把不是很重要的模块放到别的盘上,当系统启动后在加载,这样会节省启动盘的空间。 

  4) 打包 
  一旦你完成了上述工作,卸下虚拟盘,拷贝到一个文件中,然后压缩。 
  umount /mnt 
  dd if=/dev/ram0 bs=1k | gzip -v9 > rootfs.gz 
  压缩结束后,你就拥有了一个压缩的根文件系统,不过你得检查它的大小,如果大了,你还得去掉一些东西。

  3. 选择内核 
  在你完成了制做压缩的根文件系统后,下一步就是选择或自己创建一个内核。多数情况下,你可以拷贝现有系统的内核,但是有些情况下,你不得不自己另外创建一个。最可能出现的问题就是容量限制:如果你想做单张的启动盘,盘中最大的文件往往是内核,所以你必须想方设法压缩内核的体积。要想压缩内核体积,创建它时就得把不必要的功能去掉,如去掉对网络的支持和对不必要设备的支持,但是一定要记住保留内核对RAMDISK和ext2的支持,否则你的启动盘将不能工作。还有就是要记住把对你备份所用设备的支持加到内核中去,因为启动盘的最大用处就是检测和修复损坏的系统,如果你没有把对备份设备的支持加到内核中去,你将没有办法修复损坏的系统,只能再重装Linux。
  创建新内核的方法我就不在此叙述了,如有问题,请查阅相关资料。重建完内核后记住用“make zImage”压缩内核。 

  4. 整合 
  有了根文件系统和内核之后,最后的工作就是把它们整合在一起。 
  先检查总文件的大小,如果超出1.44M,就得考虑重新创建所需或用两张磁盘,即使用两张磁盘,你的根文件系统也得小于1.44M。 
  接着就是确定是用LILO控制启动还是直接用拷贝到盘上的内核控制启动。用LILO的好处是你能增加支持初始化硬件的参数到内核中,缺点是较复杂且占用珍贵的磁盘空间,不过我还是建议使用LILO控制系统启动。下面我就介绍用LILO的过程,直接用拷贝到盘上的内核控制启动的方法就不作叙述了。 
  用LILO控制启动首先就得写一个LILO配置文件,以下是一个最简单的配置文件,但是已经够用了。 
  boot =/dev/fd0 
  install =/boot/boot.b 
  map =/boot/map 
  read-wr

|
用mkbootdisk --device /dev/fd0 2。4。18-3--->这里是kernel的版本好!

    
 
 

您可能感兴趣的文章:

  • 内核移植到软盘上怎么做?软盘脱离原linux环境可自启动,怎么做?
  • 做redhat linux7.3启动软盘:我的LINUX系统是在hda7上的,但我在这做的启动软盘是要用来启动接在hdc1上的另一个LINUX系统的,请问该怎么办啊
  • SCO UNIX 5.0用软盘启动之后无法启动UNIX
  • 救命啊!Linux 进不去了, Linux 能用软盘启动吗? 怎样创建 Linux 的启动软盘?
  • 高手指教:sco unix 5.0.5 系统在用dos软盘开机引导后,启动不起来(可能是软盘有引导病毒,破坏硬盘主引导),如何恢复?
  • redhat9.0是怎样设置从软盘启动还是从硬盘启动的?
  • 突然无法从软盘启动
  • 再线送分:我的硬盘装了REDHAT LINUX,但不启动,软盘启动盘也没了,请问怎样能再次启动?
  • 没有卸载软盘关机导致启动失败?
  • 求windows XP下制作sco 5.0.5启动软盘的方法,在线等!!
  • linux启动软盘坏了,有救吗?
  • 就做linux裁减系统启动软盘的讨论!
  • 求救:red hat7.1升级到7.2后lilo没了,启动机器只显示LI。然后就没了,用软盘启动才能进linux
  • 请问,用一张软盘能启动机器加连网吗?不知如何实现?
  • 我没在硬盘上装启动,我用的是软盘启动,现在想要在NT下启动Linux
  • 请问如何制作Solaris Unix的安装软盘(用于启动安装)?
  • 谁能做一个用来引导硬盘安装的启动软盘啊?我不会啊。
  • 傻傻的问:linux下怎么做启动盘(软盘)
  • 再线送分:我的硬盘装了REDHAT LINUX,但不启动,软盘启动盘也没了,请问怎样能再次启动? iis7站长之家
  • 能不能把软盘上的linux启动文件刻成光盘,制作成光盘引导?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎样用软盘安装Linux(只用软盘,不借助其他的),能实现吗?
  • 把一张软盘内的全部文件头复制到另一张空软盘里,怎么作
  • Linux下如何格式化软盘和读取软盘?
  • linux没有软盘,如何做磁盘阵列
  • 忘记了,进行软盘按磁道DISKCOPY的软件是什么来?
  • 软盘无法加载(在线等候)
  • Redhat 7.2下如何格式化软盘?
  • 我的Linux只用软盘引导,若重装Windows还需格掉Linux吗?
  • unix 和windows之间能用软盘传递文件吗?
  • 在uinx下如何直接对软盘进行读写操作?
  • RH8下为何只能往软盘中装入300K内容
  • 怎样才能在SCO OpenServer5.05中查看软盘,,,这里谢谢了,,
  • 请问solaris中怎样用mount命令对软盘和cdrom操作?
  • 如何将unix下的文件拷贝到软盘里及光盘里????
  • 我想装Solaris for X86 能用软盘引导吗?
  • 我的LILO在软盘上!怎样设置让它在硬盘上!
  • 怎样查看软盘资料?
  • 哪里有只有一张软盘的Linux ? (做路由用的)
  • 请问vmware下有什么软件可以制作虚拟软盘吗?
  • 一张软盘上安装的linux系统,无法重启,也不能杀掉进程


  • 站内导航:


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

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

    浙ICP备11055608号-3