荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: HbBdByXc.bbs@bjsing.net (奋斗无止境·爱拼才会赢), 信区: Linux
标  题: 做一张软盘的linux
发信站: DQPI (Fri Nov 29 21:08:06 2002)
转信站: SZU!news.tiaozhan.com!news.bjsing.net!DQPI

发信人: axlyyj (dick), 信区:
Linux

标  题: 做一张软盘的linux

发信站: BBS 水木清华站 (Fri Nov 29 20:48:21
2002)

做好了。写成镜像发给我richyyj@yahoo.com.cn

谢谢

以下是转发的

好些时候,我们需要一个只要一张软盘就能启动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


  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 -->系统启动时加载的服务项目。


  rpc -->RPC资源解释文件。


  protocols -->系统协议说明文件。


  networks --> 定义本机IP和子网的配置文件。


  mtools -->mtools的parameter文件。


  hosts.deny --> 设置那些目的机不能Telnet到此主机。


  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目录下放置了用户需要使用的高级指令,但我们没有使用到,看看磁盘空

,能放些什么自己放吧。



  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

  /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目录,系统设备文件目录,按照标准设备定制。


  7. /var目录,主要放置系统参数和配置。


var/adm/

utmp -->空文件,为uucp准备的tmp文件

cron -->空文件,kernel加载时的tmp文件

/var/spool/locks目录,放置一些正在运行的程序的临时文件和进程号文件。




  8. 其他目录都为空目录,有:


/dosa

libdl.so.1

libgpm.so.1

libtermcap.so.2

libcurses.so.1

ld.so




  6. /dev目录,系统设备文件目录,按照标准设备定制。


  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`



/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`



  系统的基本文件系统就介绍完了,下面我们介绍OLD(one disk Linux)系统的具体制




  介绍完了主要目录和文件的结构,我们对ODL的大概也比较了解了。现在你可以找一

Linux把他裁剪一下,把必要的东西放到一张软盘上,以后用他来启动了你的系统进入Li
n
ux了。然后在放进一些需要的软件,如Linux Router,或者其他的小的应用软件,那么

就成了一台小的路由器、代理服务器,你的小玩具,你可以用他上网,读新闻,看信,

浏览。这是多么不可以想象的事情,全不都可以在一张1.44M的软盘系统上实现。


  制作ODL的详细过程十分复杂,其基本思想是在一张软盘上做好可以启动的Kernel,

后再将定制的文件系统传到磁盘的剩余空间里,启动时先读前面的让系统boot起来,再

后面的,让系统mount到一个Ramdisk里,然后将定制好的文件系统解压缩,释放到Ramdi
s
k里。这样整个磁盘系统既有kernel,又有FileSystem,自然可以使用一张磁盘启动整个
L
inux系统。由于篇幅的限制,我们不详细说明全部过程,只把其中最关键的部分,定制

件系统和让系统在无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系统配置文件目录)

写/mnt/etc/rc.d文件,其内容如下:

#!/bin/sh

/bin/mount
-av

/bin/hostname
silver

写/mnt/etc/fstab 文件,其内容如下:

/dev/ram0 / ext2
defaults

/dev/fd0 / ext2
defaults

/proc /proc proc
defaults

写入/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中)

其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,此时键盘就可以正

使用了。



--


※ 来源:·BBS 水木清华站 smth.org·[FROM:
202.204.59.44]


--
      ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
      ▏错误!                                                        × ▏
      ▏  Windows 发生严重错误,立即请小男孩去吃烧烤!                  ▏
      ▏                          ▁▁▁▁▁                            ▏
      ▏                         |  确定   ▏                          ▏
      ▏                          ▔▔▔▔▔                            ▏
※ 来源:·北极星BBS站 bjsing.net·[FROM: 218.14.111.124]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店