关于建立最小硬盘版LINUX的问题

转载 2007年10月10日 10:26:00
陈绪先生(bjchenxu@sina.com)收集整理
linux知识宝库 2003-2003

好些时候,我们需要一个只要一张软盘就能启动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 -->;系统启动时加载的服务项目。

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

  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`



  系统的基本文件系统就介绍完了,下面我们介绍OLD(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系统配置文件目录)

写/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,此时键盘就可以正常使用了。

好!收下
我已经修改键盘设置 ,如下 :
#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
在redhat下拷贝一个default.kmap文件,然后执行/bin/loadkeys default.kmap,此时键盘就可以正常使用了。<直接删除es那个文件好像也可以>;
#umount /mnt/floppy
#cat rugal | gzip -9 >; rugal.z <解压缩该文件>;
#dd if=/tmp/rugal.z of=/dev/fd0 bs=1k seek=391 <将该文件重新写回软盘. >; 

CentOS分区大于2TB的磁盘以及格式化大于16TB分区的解决方案

一、内容介绍1、问题描述1)、问题一 CentOS 6.x 在格式化大于16TB的ext4分区时,会提示如下错误:mke2fs 1.41.12 (17-May-2010) mkfs.ext4: Si...
  • cmzsteven
  • cmzsteven
  • 2017年01月09日 22:18
  • 4125

linux中磁盘的分区,文件系统的创建,挂载

开头先声明下我们本次的目标是,创建一个5G的分区,文件系统为ext4,卷标为mydata,块大小为1024,预留管理空间为磁盘分区的%3,要求开机后自动挂载到/data下,并且 自动挂载的设备要使用卷...
  • No_red
  • No_red
  • 2016年09月30日 16:59
  • 1783

Linux创建、挂载、格式化虚拟磁盘

我们用dd命令就可以创建一个raw格式的虚拟磁盘,通常Xen就是使用这种格式的虚拟磁盘,今天就来讨论下怎样将虚拟磁盘挂载到本地。 分三种情况:只有一个分区;有多个分区但不包含lvm;包含lv...
  • pkgfs
  • pkgfs
  • 2013年01月13日 19:33
  • 1339

winpe最小硬盘版

  • 2011年11月21日 19:51
  • 18.6MB
  • 下载

【PC|ONS|PSP】花与乙女的祝福(花と乙女に祝福を)+FD皇家花束+春风的礼物【汉化硬盘版】[带全CG存档&攻略+繁体启动+免安装&卸载补丁]

这游戏是本人当年第一次接触的galgame,也就是带领我进入galgame世界的开端。因此这次做的硬盘版整合也很用心。希望各位喜欢 游戏原名:花と乙女に祝福を 中文名称:花与乙女的祝福 制作发行:e...
  • wangzi867258173
  • wangzi867258173
  • 2016年02月18日 21:44
  • 3853

[110624]隙间樱花与谎言都市(すきま桜とうその都会)【v1.13汉化硬盘版】[带全CG存档&攻略+日文原版文

那是世界上最温暖的谎言。 propeller最新作是由剧本家七乌未奏以及原画家refeia创作的(非)日常系恋爱冒险游戏。 迷失在那些许不可思议的街道里的主人公们,沉浸在性格与众不同的同伴们带来的欢乐...
  • wangzi867258173
  • wangzi867258173
  • 2016年02月12日 13:18
  • 2610

【日文硬盘版】つよきす2代系列(NEXT+FESTIVAL)[全CG存档&攻略+免安装&卸载+打开存档补丁]

つよきす NEXT 品牌:CandySoft 发售日期:2013-12-20 原画: 天海雪乃 声优: 上田朱音 御苑生メイ 篠原ゆみ 西乃ころね かわしまりの 桜川未央 夢野ぼたん 剧本: さかき傘...
  • wangzi867258173
  • wangzi867258173
  • 2016年07月30日 14:18
  • 2540

[教程] 4月22更新:WIN下懒人版安装教程(U盘版和硬盘版)

原文出处:http://bbs.pcbeta.com/viewthread-920341-1-1.html 谢谢博主大神,基本上看得懂, 不懂的就google一下, 我6个小时下载软件到安装完成。 ...
  • ashuai81
  • ashuai81
  • 2012年09月29日 17:13
  • 13199

【分享】もっと 姉、ちゃんとしようよっ!+アフターストーリー 【日文硬盘版】(带全CG存档&日文攻略

もっと 姉、ちゃんとしようよっ!介绍   主人公是安家于八角桥商店街的一条家最小的儿子?走馬。 本来是孤身一人在北海道过着自由自在学园生活的,然而,一通故乡的姐姐所打来的电话让状况全都发生了...
  • wangzi867258173
  • wangzi867258173
  • 2015年08月23日 20:36
  • 4345

【分享】传颂之物1+2虚伪的面具 序章【汉化硬盘版】[全CG存档&攻略+英化补丁]

游戏原名:うたわれるもの 中文名:传颂之物 英文名:Utawarerumono 品牌:Leaf 发售日期:2002-04-26/2003-12-12 原画: 甘露樹 剧本: 菅宗光 TA...
  • wangzi867258173
  • wangzi867258173
  • 2016年07月05日 21:17
  • 5957
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于建立最小硬盘版LINUX的问题
举报原因:
原因补充:

(最多只允许输入30个字)