163 加中网–加拿大曼尼托巴中文门户网站 | 温尼伯华人论坛
标题:
自己作一张软盘的linux
[打印本页]
作者:
tool_guy(客)
时间:
2002-10-2 15:01
标题:
自己作一张软盘的linux
好些时候,我们需要一个只要一张软盘就能启动Linux 的系统,比如说做路由器。但是我们该怎样做呢? 也就是说我们要把Kernel和FileSystem都做在一张3.5'的盘上。我们先把FileSystem 分解成如下几个部分吧。 </P><P> 1. /bin目录下的文件 </P><P> bin目录通常是放置系统的一些基本命令文件的目录,要保证你的系统能够正常启动而且能够完成必要的功能,你需要在 /bin目录下放置如下文件: </P><P> ksh--->shell是不可少的。 </P><P> more-->要知道Linux下可没有type命令哦。 </P><P> dmesg->虽然你很熟悉你的系统硬件,但是有它还是方便多了。 </P><P> ps---->检查系统进程是管理员的良好习惯。 </P><P> login->总不至于不要人家登录吧,再说它也是底层系统的构成呀。 </P><P> sync-->更新磁盘的Block,很有好处啊。 </P><P> mount->除非你不要文件系统就不需要它。 </P><P> umount->卸载文件系统的东东。 </P><P> kill-->杀掉那些无用或停止响应的进程。 </P><P> setterm->修改终端参数的。 </P><P> hostname->显示当前机器名字。 </P><P> telnet->远程登录,你的Linux不会不干点其他的事吧! </P><P> ping-->检查网络连接状态。 </P><P> ftp--->虽然什么也放不下,但是留下它也有好处的。 </P><P> tar--->备份很重要!即使你的系统只有一个软驱! </P><P> killall->shutdown时系统会用它哦。 </P><P> chmod->修改文件属性的。 </P><P> chown->修改文件的归属 </P><P> cp--->拷贝文件,修复系统时可以用啊! </P><P> dd--->据说好多管理员常用啊,但是我还真没用过!因为我很少进行介质拷贝。 </P><P> df--->查看磁盘使用情况。 </P><P> du--->查看指定路径的占用空间。 </P><P> ls--->你不会一次都没用过吧! </P><P> mkdir->建目录是常事,即使在只有一张盘的情况下! </P><P> mv--->移动文件的命令。 </P><P> rm--->删除文件,万一有多的怎么办?靠它了! </P><P> ln--->链接文件,当然有用了! </P><P> dircolors-->设定目录的颜色,当你用的是彩显时。 </P><P> cut-->将文件的一些行送到标准输出设备。 </P><P> cat-->把标准输入送到文件或把文件送到标准输入 </P><P> stty-->很重要的终端命令哦! </P><P> gzip-->打包和解包的程序 </P><P> domainname-->查看域名。 </P><P> 还要把一些东西链接起来哦 </P><P>date@ -> /sbin/clock <BR>less@ -> more <BR>sh@ -> ksh <BR>gunzip@ -> gzip <BR>zcat@ -> gzip <BR>bash@ -> sh <BR>tcsh@ -> sh </P><P></P><P> 2./etc目录下的文件 </P><P> etc目录是放置系统配置信息的文件目录,同时也放置了一些系统初始化文件。 </P><P> mtab -->mounted table已经mount的FileSystem列表。 </P><P> kernel -->系统内核。 </P><P> issue -->login时的prompt信息 。 </P><P> profile -->bash下的全域用户登陆时执行的批处理文件 。 </P><P> psdevtab -->kernel映象的相关文件。 </P><P> inittab -->初始化列表,系统启动时要用到的东东。 </P><P> passwd -->用户的password数据库。 </P><P> motd -->message of today 用户login时显示的信息。 </P><P> fstab -->开机时要自动mount的FileSystem。 </P><P> hosts -->domain name到IP的解析文件。 </P><P> resolv.conf -->本机的IP地址和域名服务器地址配置文件。 </P><P> termcap -->终端字符映射文件。 </P><P> services -->系统启动时加载的服务项目。 </P><P> rpc -->RPC资源解释文件。 </P><P> protocols -->系统协议说明文件。 </P><P> networks --> 定义本机IP和子网的配置文件。 </P><P> mtools -->mtools的parameter文件。 </P><P> hosts.deny --> 设置那些目的机不能Telnet到此主机。 </P><P> hosts.allow -->和hosts.deny相反,设置可以Telnet到此机的目的机地址。 </P><P> exports -->NFS的系统档案。 </P><P> DIR_COLORS -->设置ansi-color终端的系统颜色。 </P><P> HOSTNAME -->本机的domain name。 </P><P> inetd.conf -->inetd进程的配置文件。 </P><P> ld.so.cache -->系统lib的缓存信息。 </P><P> shells -->系统可用的shell的记录。 </P><P> host.conf -->本机的网络相关配置。 </P><P> magic -->系统内档案格式的资料。 </P><P> utmp -->当前login用户的记录。 </P><P> group -->用户组参数记录。 </P><P> ld.so.conf -->记录一些lib所在的目录。 </P><P> fastboot -->shutdown命令产生的一个文件,系统重新启动时会检查该文件。 </P><P> 3. /sbin目录下的文件 </P><P> 这个目录下放置一些系统扩展命令: </P><P> swapoff@ -> swapon --> 把swapoff连接到swapon命令 </P><P> telinit@ -> init --> 把telinit连接到init命令 </P><P> reboot@ -> halt --> 把reboot连接到halt命令 </P><P> addswap -->增加一个交换分区,需要自己编辑一个addswap脚本 </P><P> chkhd -->检查硬盘 </P><P> clock -->测定设置时间 </P><P> swapon -->打开交换分区 </P><P> update -->bdflush的守护 </P><P> mkswap -->格式化交换分区 </P><P> agetty -->终端守护 </P><P> init -->系统初始化命令 </P><P> shutdown -->关闭系统 </P><P> halt -->系统停机 </P><P> killall5 -->清出所有进程 </P><P> ifconfig -->网络配置程序 </P><P> route -->路由设置命令 </P><P> bdflushd -->打开buffer回写到磁盘 </P><P> 4. /usr目录下的文件 </P><P> 用户目录,目录下放置了一些用户经常需要使用的程序和一些配置数据 </P><P> spool@ -> ../var/adm -->连接到/var/adm </P><P> tmp@ -> ../var/adm -->连接到/var/adm </P><P> adm@ -> ../var/adm -->连接到/var/adm </P><P> /usr/bin目录,用户命令文件目录 </P><P> who -->查询当前登陆用户 </P><P> superformat -->高级格式化工具 </P><P> loadkeys -->加载键盘影射表 </P><P> joe -->一种十分好使的编辑器 </P><P> uptime -->查看系统从启动到现在的运行时间 </P><P> finger -->查询用户信息 </P><P> mcheck -->检查dos系统软盘 </P><P> tput -->初始化终端或者查询终端信息 </P><P> traceroute -->检查路由路径 </P><P> host ->检查当前主机配置信息 </P><P> split -->分割文件 </P><P> sleep -->延迟指定时间 </P><P> setfont -->设置字体 </P><P> grep -->行查询指令,常常配合管道使用 </P><P> reset -->重置系统参数 </P><P> usr/sbin目录下放置了用户需要使用的高级指令,但我们没有使用到,看看磁盘空间,能放些什么自己放吧。 </P><P> /usr/local目录放置了一些应用程序的配置文件 </P><P> usr/local/lib目录 </P><P> lynx.cfg -->lynx浏览器的配置文件 </P><P> usr/lib目录 </P><P> es.map -->键盘映射文件 </P><P> t.fnt -->字体文件 </P><P> 5. /lib目录下的文件 </P><P> 此目录下放置了系统的一些库文件,这里不做解释 </P><P>libgpm.so@ -> libgpm.so.1 <BR>libdl.so@ -> libdl.so.1 <BR>ld-linux.so.1 <BR>libtermcap.so.2 <BR>libm.so.5 <BR>libc.so.5 <BR>libdl.so.1 <BR>libgpm.so.1 <BR>libtermcap.so.2 <BR>libcurses.so.1 <BR>ld.so </P><P></P><P> 6. /dev目录,系统设备文件目录,按照标准设备定制。 </P><P> 7. /var目录,主要放置系统参数和配置。 </P><P>var/adm/ <BR>utmp -->空文件,为uucp准备的tmp文件 <BR>cron -->空文件,kernel加载时的tmp文件 <BR>/var/spool/locks目录,放置一些正在运行的程序的临时文件和进程号文件。 </P><P></P><P> 8. 其他目录都为空目录,有: </P><P>/dosa <BR>/dosc <BR>/iomega <BR>/tmp@ -> /dosc/onedisk <BR>/root </P><P></P><P> 9. addswap命令脚本脚本,放置在/sbin下。 </P><P>if [ "$1" = "" ]; <BR>then <BR>$mide=10000 <BR>if <BR>dd if=/dev/zero of=/tmp/linux.swp bs=1k count=$mida <BR>mkswap -c /tmp/linux.swp 2>/dev/null <BR>sync 2>/dev/null <BR>swapon /tmp/linux.swp 2>/dev/null <BR>mida=`cat /proc/meminfo | grep SwapTotal | cut -b16-19 ` <BR>echo $mida 'KB aCTiu'arxiu=`ls /dosc/ | grep .swp` </P><P></P><P> 系统的基本文件系统就介绍完了,下面我们介绍OLD(one disk Linux)系统的具体制作。 </P><P> 介绍完了主要目录和文件的结构,我们对ODL的大概也比较了解了。现在你可以找一个Linux把他裁剪一下,把必要的东西放到一张软盘上,以后用他来启动了你的系统进入Linux了。然后在放进一些需要的软件,如Linux Router,或者其他的小的应用软件,那么他就成了一台小的路由器、代理服务器,你的小玩具,你可以用他上网,读新闻,看信,和浏览。这是多么不可以想象的事情,全不都可以在一张1.44M的软盘系统上实现。 </P><P> 制作ODL的详细过程十分复杂,其基本思想是在一张软盘上做好可以启动的Kernel,然后再将定制的文件系统传到磁盘的剩余空间里,启动时先读前面的让系统boot起来,再读后面的,让系统mount到一个Ramdisk里,然后将定制好的文件系统解压缩,释放到Ramdisk里。这样整个磁盘系统既有kernel,又有FileSystem,自然可以使用一张磁盘启动整个Linux系统。由于篇幅的限制,我们不详细说明全部过程,只把其中最关键的部分,定制文件系统和让系统在无lilo的引导下启动这两个部分做说明(其他目录的相关文件,请按照开始将的文件系统结构建立)。 </P><P> 定制文件系统的过程如下: </P><P>dd if=/dev/zero of=DEVICE bs=1k count=3000 (分配一段内存空间做RamDisk) <BR>mke2fs -m 0 -i 2000 DEVICE (格式化Ramdisk) <BR>mount -t ext2 DEVICE /mnt (装载到/mnt目录下) <BR>cp -dpR /dev /mnt (将/dev/下的硬件设备拷贝到/mnt/dev下) <BR>mkdir /mnt/etc (建立ODL系统配置文件目录) <BR>写/mnt/etc/rc.d文件,其内容如下: <BR>#!/bin/sh <BR>/bin/mount -av <BR>/bin/hostname silver <BR>写/mnt/etc/fstab 文件,其内容如下: <BR>/dev/ram0 / ext2 defaults <BR>/dev/fd0 / ext2 defaults <BR>/proc /proc proc defaults <BR>写入/mnt/etc/inittab文件,其内容如下: <BR>id:2:initdefault: <BR>si::sysinit:/etc/rc <BR>1:2345:respawn:/sbin/getty 38400 tty1 <BR>2:23:respawn:/sbin/getty 38400 tty2 <BR>umount /mnt (卸载Ramdisk) <BR>dd if=DEVICE bs=1k | gzip -v9 > root.gz 将Ramdisk上的内容写入root.gz <BR>让系统在无lilo的引导下启动 <BR>mke2fs -i 8192 -m 0 /dev/fd0 KERNEL_BLOCKS <BR>(KERNEL_BLOCKS为内核部分在磁盘上占的空间大小) <BR>mount /dev/fd0 /mnt <BR>rm -rf /mnt/lost+found <BR>mkdir /mnt/boot <BR>mkdir /mnt/dev(建立一些启动时需要的基本文件目录) <BR>cp -R /dev/{null,fd0} /mnt/dev <BR>(将启动需要的两个设备NULL和fd0拷贝到启动盘中) <BR>cp /boot/boot.b /mnt/boot (建立boot的映象文件) <BR>cp bdlilo.conf KERNEL /mnt (KERNEL为OLD需要的内核文件) <BR>lilo -v -C bdlilo.conf -r /mnt (将lilo信息写到OLD中) <BR>其dblilo.conf的内容如下(可以根据需要修改): <BR>boot =/dev/fd0 <BR>install =/boot/boot.b <BR>map =/boot/map <BR>read-write <BR>backup =/dev/null <BR>compact <BR>image = KERNEL <BR>label = Bootdisk <BR>root =/dev/fd0 <BR>dd if=KERNEL of=/dev/fd0 bs=1k <BR>(将内核KERNEL写到系统的前1024字节,使OLD软盘可以启动系统) <BR>dd if=rootfs.gz of=/dev/fd0 bs=1k seek=KERNEL_BLOCKS <BR>(将原来定制的文件系统 传到磁盘剩余空间中) </P><P></P><P> 此时,你做好的这张磁盘就可以直接将系统启动了。`如果你配置好了网络系统,那么网络也可以通过他自动启动。如果你对Linux还不是很了解,自己定制一个系统还比较困难,那么OLD的全部系统映象文件可以在http://linux.apostols.org/guru/wen/1.x/stone.img下载得到。将下载的文件用rawrite.exe程序在dos下写入一张1.44M的软盘中,此张盘就可以启动系统,并将你带入到神奇的Linux世界。 </P><P> 值得注意的是:此映象文件是一个德国人所做,其终端键盘为类型不是标准的US键盘,所以我们需要修改他的键盘定义。 </P><P> 系统启动后,在/usr/lib/下有一个es.map文件,我们需要修改它,可以在redhat下拷贝一个default.kmap文件,然后执行/bin/loadkeys default.kmap,此时键盘就可以正常使用了。
作者:
GregoryTug
时间:
2024-7-1 03:44
друз
268.5
cons
Repr
Duet
Nich
Голу
Terr
Dany
Manl
колп
Сабл
Злат
Тиме
Bloo
Domi
Lore
Духа
Legh
Istv
крыш
Blue
Cham
Atla
Маще
XVII
ниде
Анат
Вяза
Alle
Arti
riga
Fede
Call
Depe
пост
Толс
Пору
Geor
AAAB
Пушк
Орло
Моро
Tesc
собс
Иллю
Кари
Indi
Omsa
Vogu
Детс
Круп
Inte
губе
Чече
азер
Соде
Gall
Оксю
Нату
Aliv
Foun
Pete
Stav
Phil
Mark
Воло
Push
Funk
Mari
Omsa
ELEG
Adio
Clau
Osir
Воро
Wind
Clic
одна
сере
Miyo
Sela
церк
Wolf
Chri
докл
танц
Коло
Bert
Mans
алма
Cath
Jewe
Zone
Миха
Марк
Серг
Zone
3201
Б900
Zone
02-1
библ
Zone
Zone
Zone
Zone
меня
Zone
Zone
Zone
Zone
RHIN
Zone
Zone
Zone
Косе
Frag
hand
стар
作者:
GregoryTug
时间:
2024-7-1 03:46
Сухо
Zanu
Teka
Iron
Coto
козе
Снеж
Metr
Book
доро
CANA
Mist
неде
STAR
SUZU
четы
спец
Pian
Zewa
упак
Faun
детс
реда
2882
игро
Wind
Play
Wind
Anim
DeLo
Tefa
вход
Fris
(Алм
Ряза
ЛитР
ЛитР
ЛитР
пазз
ЛитР
бочж
Aesc
Шимк
Ильи
Иллю
Алпа
Шмид
Шафе
Comb
Char
Соде
Варш
Лисо
Маши
Попо
Reve
Leon
Мако
Мила
Била
Смир
прог
Musi
ENVY
Кери
фант
Ляли
Лаза
Jaco
Hans
Stud
Lind
Стра
Якем
Розе
1022
авто
Ефим
Juic
Чист
Эдиг
Char
Джон
Пахн
Салл
hand
hand
hand
Михе
Shou
Trac
Chri
Deep
Шеве
Offi
Ханж
деят
книж
Баля
Разе
tuchkas
авто
Малы
欢迎光临 163 加中网–加拿大曼尼托巴中文门户网站 | 温尼伯华人论坛 (http://appdev.163.ca/dz163/)
Powered by Discuz! X3.2