• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 軟盤上的Linux系統方案

    軟盤上的Linux系統方案

    作者: 時間:2011-05-20 來源:網絡 收藏

    本文將介紹一種兩張上的,它可以當作應急修復盤、路由器或防火墻等許多地方,通過對它的研究,也可以加深對嵌入式的理解。
      
      一.前言

    本文引用地址:http://www.czjhyjcfj.com/article/150724.htm

      嵌入式是由一個幾百KB的內核和一個根據需要制定的文件系統所構成了, 由于Linux是開放源代碼的操作系統,所以在嵌入式領域有著非常廣闊的前景,并已經廣泛應用在許多手機、PDA、MP3播放器等許多電子產品中。本文將介紹一種兩張上的Linux系統,它可以當作系統應急修復盤、路由器或防火墻等許多地方,通過對它的研究,也可以加深對嵌入式系統的理解。
      
      二.Linux啟動過程

      所有的PC機在加電之后,BIOS會尋找到啟動盤第一個扇區,并將其復制到RAM中來執行它,對于兩種不同的啟動方式,這個扇區通常含有兩種不同的代碼:引導程序(比如Lilo或Grub等)的代碼,引導程序會幫助定位內核的位置。內核的代碼,這通常是從啟動時使用的引導的方式。對于前者,通常需要內核支持initrd。如果是后者,使用的Boot Loader就是arch/i386/boot/bootsect.S。當內核被編譯的時候,這段執行代碼就被鏈接到內核image的最開始的地方。這樣很容易就能只要把內核復制到起始位置為第一個扇區的軟盤上就能得到可自啟動的軟盤。內核會初始化設備驅動和內部的數據結構,之后它會到一個特定的位置DDRamdisk Word來獲得根文件系統的位置。內核必須知道去那里尋找這個根文件系統,否則它將停機。
      
      在使用軟盤啟動的方式時,內核可以把一個壓縮的文件系統釋放到RAM中,稱之為Ramdisk,這是一個內存區域,但內核會把它當作磁盤一樣使用。
      
      本文中介紹的例子使用Grub做為引導程序,并使用initrd來輔助Linux的啟動。兩張軟盤分別命名為bootldr盤和rootfs盤,在bootldr盤中內容為grub、內核、initrd,rootfs盤中是壓縮過的根文件系統。系統啟動時bootldr盤的Grub定位并執行內核,然后內核解開initrd,并執行linuxrc文件,這個文件負責提示用戶更換rootfs盤并將其中內容解壓至內存中,然后執行剛剛解壓的init繼續啟動過程。
      
      為了方便理解這個例子,先介紹目錄結構如下:
      
      /home/papaya
      ├─bootldr/
      │ ├─grub/
      │ ├─kernel/
      │ │ ├─images/
      │ │ └─linux-2.4.21/
      │ └─initrd/
      │   ├─mkinitrd.sh
      │   ├─local/
      │   └─ramdisk/
      ├─rootfs/
      │ ├─mkrootfs.sh
      │ ├─ramdisk/
      │ └─local/
      └─lib/

      三.定制Grub引導程序

      插入一張軟盤,然后將其格式化,然后加載到/mnt/floppy
      
      #mke2fs /dev/fd0
      #mount -t ext2 /dev/fd0 /mnt/floppy -o loop
      在其中創建/boot/grub目錄
      #mkdir -p /mnt/floppy/boot/grub
      
      將系統中/boot/grub下的device.map, stage1, stage2 復制到/mnt/floppy/boot/grub中,然后在/mnt/floppy/boot/grub目錄下創建grub.conf文件:
      
      default=0
      timeout=10
      title Floppy Linux
      kernel (fd0)/bzImage root=/dev/ram0
      initrd (fd0)/initrd.gz
      
      然后創建一個鏈接
      
      #ln -s grub.conf menu.lst
      
      執行
      
      /sbin/grub --batch --device-map=/dev/null   device (fd0) /dev/fd0
      root (fd0)
      setup (fd0)
      quit
      EOF
      
      這樣grub就被安裝到bootldr盤上了。

    linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

    上一頁 1 2 3 下一頁

    關鍵詞: 方案 系統 Linux 軟盤

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 成安县| 商丘市| 安仁县| 土默特左旗| 弋阳县| 加查县| 广元市| 邹平县| 华池县| 临清市| 衡阳县| 张掖市| 顺昌县| 天门市| 云霄县| 嘉祥县| 香格里拉县| 抚宁县| 张家口市| 西昌市| 崇左市| 莲花县| 奉贤区| 苗栗县| 安丘市| 乡城县| 本溪市| 贵南县| 肇东市| 安吉县| 林周县| 镇远县| 比如县| 南雄市| 安陆市| 北海市| 界首市| 皮山县| 武汉市| 长兴县| 合作市|