当前位置:Linux教程 - Linux综合 - 一张软盘启动的linux

一张软盘启动的linux

  好些时候,我们需要只要一张软盘就能启动的Linux系统,比如说做路由器。但是我 们该怎样做呢?也就是说,我们要把Kernel和FileSystem都做在一张3.5'的盘上。我们 先把FileSystem分解成如下几个部分吧。 (1) /bin目录下的文件   bin目录通常是放置系统的一些基本命令文件的目录,要保证你的系统能够正常启动, 而且能够完成必要的功能,你需要在/bin目录下放置如下文件:   ksh--->shell是不可少的。   more-->要知道Linux下可没有type命令哦。   dmesg->虽然你很熟悉你的系统硬件,但是有它还是方便多了。   ps---->检查系统进程是管理员的良好习惯。   login->总不至于不要人家登录吧,再说它也是底层系统的构成呀。   sync-->更新磁盘的Block,很有好处啊。   mount->除非你不要文件系统就不需要它。   umount->卸载文件系统的东东。   kill-->杀掉那些无用或停止响应的进程。   setterm->修改终端参数的。   hostname->显示当前机器名字。   telnet->远程登录,你的Linux不会不干点其他的事吧!   ping-->检查网络连接状态。   FTP--->虽然什么也放不下,但是留下它也有好处的。   tar--->备份很重要!即使你的系统只有一个软驱!   killall->shutdown时系统会用它哦。   chmod->修改文件属性的。   chown->修改文件的归属   cp--->拷贝文件,修复系统时可以用啊!   dd--->据说好多管理员常用啊,但是我还真没用过!因为我很少进行介质拷贝。   df--->查看磁盘使用情况。   du--->查看指定路径的占用空间。   ls--->你不会一次都没用过吧!   mkdir->建目录是常事,即使在只有一张盘的情况下!   mv--->移动文件的命令。   rm--->删除文件,万一有多的怎么办?靠它了!   ln--->链接文件,当然有用了!   dircolors-->设定目录的颜色,当你用的是彩显时。   cut-->将文件的一些行送到标准输出设备。   cat-->把标准输入送到文件或把文件送到标准输入   stty-->很重要的终端命令哦!   gzip-->打包和解包的程序   domainname-->查看域名。   还要把一些东西链接起来哦   date@ -> /sbin/clock   less@ -> more   sh@ -> ksh   gunzip@ -> gzip   zcat@ -> gzip   bash@ -> sh   tcsh@ -> sh (2) /etc目录下的文件   etc目录是放置系统配置信息的文件目录,同时也放置了一些系统初始化文件。   mtab -->mounted table已经mount的FileSystem列表。   kernel -->系统内核。   issue -->login时的prompt信息。   profile -->bash下的全域用户登陆时执行的批处理文件。   psdevtab -->kernel映象的相关文件。   inittab -->初始化列表,系统启动时要用到的东东。   passwd -->用户的passWord数据库。   motd -->message of today 用户login时显示的信息。   fstab -->开机时要自动mount的FileSystem。   hosts -->domain name到IP的解析文件。   resolv.conf -->本机的IP地址和域名服务器地址配置文件。   termcap -->终端字符映射文件。   services -->系统启动时加载的服务项目。
[1] [2] [3] [4] 下一页 

  rpc -->RPC资源解释文件。   protocols -->系统协议说明文件。   networks --> 定义本机IP和子网的配置文件。   mtools -->mtools的parameter文件。   hosts.deny --> 设置那些目的机不能Telnet到此主机。   hosts.allow -->和hosts.deny相反,设置可以Telnet到此机的目的机地址。   eXPorts -->NFS的系统档案。   DIR_COLORS -->设置ansi-color终端的系统颜色。   HOSTNAME -->本机的domain name。   inetd.conf -->inetd进程的配置文件。   ld.so.cache -->系统lib的缓存信息。   shells -->系统可用的shell的记录。   host.conf -->本机的网络相关配置。   magic -->系统内档案格式的资料。   utmp -->当前login用户的记录。   group -->用户组参数记录。   ld.so.conf -->记录一些lib所在的目录。   fastboot -->shutdown命令产生的一个文件,系统重新启动时会检查该文件。 (3) /sbin目录下的文件   这个目录下放置一些系统扩展命令:   swapoff@ -> swapon --> 把swapoff连接到swapon命令   telinit@ -> init --> 把telinit连接到init命令   reboot@ -> halt --> 把reboot连接到halt命令   addswap -->增加一个交换分区,需要自己编辑一个addswap脚本   chkhd -->检查硬盘   clock -->测定设置时间   swapon -->打开交换分区   update -->bdflush的守护   mkswap -->格式化交换分区   agetty -->终端守护   init -->系统初始化命令   shutdown -->关闭系统   halt -->系统停机   killall5 -->清出所有进程   ifconfig -->网络配置程序   route -->路由设置命令   bdflushd -->打开buffer回写到磁盘 (4) /usr目录下的文件   用户目录,目录下放置了一些用户经常需要使用的程序和一些配置数据   spool@ -> ../var/adm -->连接到/var/adm   tmp@ -> ../var/adm -->连接到/var/adm   adm@ -> ../var/adm -->连接到/var/adm   /usr/bin目录,用户命令文件目录   who -->查询当前登陆用户   superformat -->高级格式化工具   loadkeys -->加载键盘影射表   joe -->一种十分好使的编辑器   uptime -->查看系统从启动到现在的运行时间   finger -->查询用户信息   mcheck -->检查dos系统软盘   tput -->初始化终端或者查询终端信息   traceroute -->检查路由路径   host ->检查当前主机配置信息   split -->分割文件   sleep -->延迟指定时间   setfont -->设置字体   grep -->行查询指令,常常配合管道使用   reset -->重置系统参数   usr/sbin目录下放置了用户需要使用的高级指令,但我们没有使用到,看看磁盘空间,能放些什么自己放吧。   /usr/local目录放置了一些应用程序的配置文件   usr/local/lib目录   lynx.cfg -->lynx浏览器的配置文件     usr/lib目录   es.map -->键盘映射文件   t.fnt -->字体文件 (5) /lib目录下的文件   此目录下放置了系统的一些库文件,这里不做解释   libgpm.so@ -> libgpm.so.1   libdl.so@ -> libdl.so.1   ld-linux.so.1   liBTermcap.so.2   libm.so.5   libc.so.5   libdl.so.1   libgpm.so.1   libtermcap.so.2   libcurses.so.1   ld.so (6) /dev目录,系统设备文件目录,按照标准设备定制。
上一页 [1] [2] [3] [4] 下一页 

(7) /var目录,主要放置系统参数和配置。   var/adm/   utmp -->空文件,为uUCp准备的tmp文件   cron -->空文件,kernel加载时的tmp文件   /var/spool/locks目录,放置一些正在运行的程序的临时文件和进程号文件。 (8) 其他目录都为空目录,有:   /dosa   /dosc   /iomega   /tmp@ -> /dosc/onedisk   /root (9) addswap命令脚本脚本,放置在/sbin下。   if [ "$1" = "" ];   then   $mide=10000   if   dd if=/dev/zero of=/tmp/linux.swp bs=1k count=$mida   mkswap -c /tmp/linux.swp 2>/dev/null   sync 2>/dev/null   swapon /tmp/linux.swp 2>/dev/null   mida=`cat /proc/meminfo grep SwapTotal cut -b16-19 `   echo $mida 'KB aCTiu'arxiu=`ls /dosc/ grep .swp`   系统的基本文件系统就介绍完了,下面我们介绍ODL(one disk Linux)系统的具体制作。   介绍完了主要目录和文件的结构,我们对ODL的大概也比较了解了。现在你可以找一 个Linux把它裁剪一下,把必要的东西放到一张软盘上,以后用它来启动你的系统进入 Linux了。然后再放进一些需要的软件,如Linux Router,或者其他小的应用软件,那么 它就成了一台小的路由器、代理服务器,你的小玩具,你可以用它上网,读新闻,看信, 和浏览。这是多么不可想象的事情,全都可以在一张1.44M的软盘系统上实现。   制作ODL的详细过程十分复杂,其基本思想是在一张软盘上做好可以启动的Kernel, 然后再将定制的文件系统传到磁盘的剩余空间里,启动时先读前面的让系统boot起来, 再读后面的,让系统mount到一个Ramdisk里,然后将定制好的文件系统解压缩,释放到 Ramdisk里。这样整个磁盘系统既有kernel,又有FileSystem,自然可以使用一张磁盘启 动整个Linux系统。由于篇幅限制,我们不详细说明全部过程,只把其中最关键的部分, 即定制文件系统和让系统在无lilo引导的情况下启动这两个部分做说明(其他目录的相关 文件,请按照开始列出的文件系统结构建立)。   定制文件系统的过程如下: dd if=/dev/zero of=DEVICE bs=1k count=3000 (分配一段内存空间做RamDisk) mke2fs -m 0 -i 2000 DEVICE (格式化Ramdisk) mount -t ext2 DEVICE /mnt (装载到/mnt目录下) cp -dpR /dev /mnt (将/dev/下的硬件设备拷贝到/mnt/dev下) mkdir /mnt/etc (建立ODL系统配置文件目录) vi /mnt/etc/rc.d文件,其内容如下: #!/bin/sh /bin/mount -av /bin/hostname silver vi /mnt/etc/fstab 文件,其内容如下: /dev/ram0 / ext2 defaults /dev/fd0 / ext2 defaults /proc /proc proc defaults vi /mnt/etc/inittab文件,其内容如下: id:2:initdefault: si::sysinit:/etc/rc 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 umount /mnt (卸载Ramdisk) dd if=DEVICE bs=1k gzip -v9 > root.gz 将Ramdisk上的内容写入root.gz 让系统在无lilo的引导下启动 mke2fs -i 8192 -m 0 /dev/fd0 KERNEL_BLOCKS (KERNEL_BLOCKS为内核部分在磁盘上占的空间大小) mount /dev/fd0 /mnt rm -rf /mnt/lost+found mkdir /mnt/boot mkdir /mnt/dev(建立一些启动时需要的基本文件目录) cp -R /dev/{null,fd0} /mnt/dev (将启动需要的两个设备null和fd0拷贝到启动盘中) cp /boot/boot.b /mnt/boot (建立boot的映象文件) cp bdlilo.conf KERNEL /mnt (KERNEL为OLD需要的内核文件) lilo -v -C bdlilo.conf -r /mnt (将lilo信息写到OLD中)
上一页 [1] [2] [3] [4] 下一页 

其dblilo.conf的内容如下(可以根据需要修改): boot =/dev/fd0 install =/boot/boot.b map =/boot/map read-write backup =/dev/null compact image = KERNEL label = Bootdisk root =/dev/fd0 dd if=KERNEL of=/dev/fd0 bs=1k (将内核KERNEL写到系统的前1024字节,使OLD软盘可以启动系统) dd if=rootfs.gz of=/dev/fd0 bs=1k seek=KERNEL_BLOCKS (将原来定制的文件系统 传到磁盘剩余空间中)   此时,你做好的这张磁盘就可以直接将系统启动了。如果你配置好了网络系统,那么 网络也可以通过它自动启动。如果你对Linux还不是很了解,自己定制一个系统还比较困 难,那么OLD的全部系统映象文件可以在 http://linux.apostols.org/guru/wen/1.x/stone.img下载得到。将下载的文件用 rawrite.exe程序在dos下写入一张1.44M的软盘中,此张盘就可以启动系统,并将你带入 到神奇的Linux世界。   值得注意的是:此映象文件是一个德国人所做,其终端键盘类型不是标准的US键盘, 所以我们需要修改他的键盘定义。   系统启动后,在/usr/lib/下有一个es.map文件,我们需要修改它,可以在redhat下 拷贝一个default.kmap文件,然后执行/bin/loadkeys default.kmap,此时键盘就可以正 常使用了。 好!收下 我已经修改键盘设置 ,如下 : #dd if=/mnt/bak/hd-disk/stone1.img of=/tmp/rugal.z bs=1k skip=391 <将数据区从IMG文件解压缩出来> #cat rugal.z gunzip -9 > rugal <解压缩该文件> #mount -t ext2 -o loop /tmp/rugal /mnt/floppy <mount 该文件>   在redhat下拷贝一个default.kmap文件,然后执行/bin/loadkeys default.kmap, 此时键盘就可以正常使用了。<直接删除es那个文件好像也可以> #umount /mnt/floppy <umount该文件> #cat rugal gzip -9 > rugal.z <解压缩该文件> #dd if=/tmp/rugal.z of=/dev/fd0 bs=1k seek=391 <将该文件重新写回软盘>

(出处:http://www.sheup.com)


上一页 [1] [2] [3] [4] 

#umount /mnt/floppy <umount该文件> #cat rugal gzip -9 > rugal.z <解压缩该文件> #dd if=/tmp/rugal.z of=/dev/fd0 bs=1k seek=391 <将该文件重新写回软盘>

(出处:http://www.sheup.com)


上一页 [1] [2] [3] [4] [5] 

#cat rugal gzip -9 > rugal.z <解压缩该文件> #dd if=/tmp/rugal.z of=/dev/fd0 bs=1k seek=391 <将该文件重新写回软盘>

(出处:http://www.sheup.com/)


上一页 [1] [2] [3] [4] [5] [6]