歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 自己動手制作一張軟盤的linux

自己動手制作一張軟盤的linux

日期:2017/2/27 14:31:07   编辑:更多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 -->系統啟動時加載的服務項目。   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,此時鍵盤就可以正常使用了。



  值得注意的是:此映象文件是一個德國人所做,其終端鍵盤為類型不是標准的US鍵盤,所以我們需要修改他的鍵盤定義。   系統啟動後,在/usr/lib/下有一個es.map文件,我們需要修改它,可以在redhat下拷貝一個default.kmap文件,然後執行/bin/loadkeys default.kmap,此時鍵盤就可以正常使用了。



  系統啟動後,在/usr/lib/下有一個es.map文件,我們需要修改它,可以在redhat下拷貝一個default.kmap文件,然後執行/bin/loadkeys default.kmap,此時鍵盤就可以正常使用了。



Copyright © Linux教程網 All Rights Reserved