久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 把Linux放進軟盤里

把Linux放進軟盤里

作者: 時間:2016-09-12 來源:網絡 收藏

壓縮根文件系統

一般我們會采取 RAM Disk 的方式實現。簡單的來說就是將準備好的根文件系壓縮成為Ramdisk的鏡像文件,當用軟盤啟動時,再把鏡像文件解壓到內存中,形成一個虛擬盤(RAMDISK),通過RAMDISK控制系統啟動。

我們現在制作Ramdisk的鏡像文件

# dd if=/dev/zero of=/tmp/tmp_loop bs=1k count=2048

# losetup /dev/loop0 /tmp/tmp_loop

# mke2fs -m 0 /dev/loop0

# mount -t ext2 /dev/loop0 /mnt

# cp -a /floppy- /mnt

# umount /mnt

# losetup -d /dev/loop0

# dd if=/tmp/tmp_loop | gzip -9 > /tmp/Image.gz

# rm -f /tmp/tmp_loop

# sync

這樣我們就得到了壓縮過的根文件系統也就是Ramdisk的鏡像文件Image.gz。

目前為止我們已經有了內核和壓縮過的根文件系統.現在剩下的就是把它們整合在一張軟盤里面。

整合核心和根文件系統

根據引導的方式不同,有以下三種整合方案:

用grub引導

依次執行:

# mke2fs /dev/fd0

# mount /dev/fd0 /mnt/floppy

# mkdir /mnt/floppy/boot

# mkdir /mnt/floppy/boot/grub

# cp /boot/grub/stage1 /mnt/floppy/boot/grub

# cp /boot/grub/stage2 /mnt/floppy/boot/grub

#grub

在 grub> 提示符處,輸入:

grub> root (fd0)

grub> setup (fd0)

grub> quit

#cp newkernel /mnt/floppy/boot

#cp Image.gz /mnt/floppy/boot

#cp /boot/grub/grub.conf /mnt/floppy/boot/grub

編輯grub.conf, 內容如下:

timeout 10

default 0

title My little

root (fd0)

kernel /boot/newkernel ro root=/dev/ram0

initrd /boot/ Image.gz

然后制作grub.conf的link文件menu.lst

#ln -s /mnt/floppy/boot/grub/grub.conf /mnt/floppy/boot/grub/menu.lst

#umount /mnt/floppy

整合完成!

用sys引導

依次執行:

# mkdosfs /dev/fd0

# sysLinux /dev/fd0

編輯 sysLinux 的組態檔 sysLinux.cfg,內容如下

TIMEOUT 20

DEFAULT Linux

LABEL Linux

KERNEL newkernel

APPEND root=/dev/ram0 ro initrd=Image.gz

然后將 sysLinux.cfg、newkernel、Image.gz 拷貝到磁盤中

# mount /dev/fd0 /mnt/floppy

# cp newkernel /mnt/floppy

# cp Image.gz /mnt/floppy

# cp sysLinux.cfg /mnt/floppy

#umount /mnt/floppy

整合完成!

直接引導

依次執行:

# dd if=newkernel of=/dev/fd0 bs=1k

252+1 records in

252+1 records out

在這個例子中,dd 寫入了 252 個完整記錄(records) + 1個partial record ,所以內核占用了 253 個軟盤的 blocks 。這個數字稱為 KERNEL_BLOCKS ,請記得它,這個數字還要使用.

#rdev /dev/fd0 /dev/fd0

#rdev -R /dev/fd0 0

#rdev -r /dev/fd0 VALUE

在這里這個VALUE的值應為16384+ KERNEL_BLOCKS(上一步dd 命令所產生的數值)

所以本例應為:

#rdev -r /dev/fd0 16637

#dd if= root system file of=/dev/fd0 bs=1k seek=KERNEL_BLOCKS

在這里這個KERNEL_BLOCKS就是上一步dd 命令所產生的數值

所以本例應為:dd if= Image.gz of=/dev/fd0 bs=1k seek=253

整合完成!

現在我們就擁有了一張可以自激活到Linux環境的軟盤。對于本例來講,想要執行AMD官方測試軟件Maxpower64,只要將Maxpower64這個可執行文件復制到 /bin目錄就可以了。我們可以在“使用BusyBox制作常用命令“這個階段來完成它.

# cp Maxpower64 /floppy-Linux/bin

這張軟盤會自激活到linux環境下,并顯示“#”命令提示符,我們只要執行Maxpower64就可以了。

#/bin/Maxpower64

如果希望系統一開機就直接執行Maxpower64,則需要在“編輯有關的 shell script”這個階段編輯rc.sysinit文件為:

#!/bin/sh

mount –a

/bin/Maxpower64

這樣軟盤引導進入linux后會直接執行Maxpower64而不再顯示“#”命令提示符。

小結

除了以上的方法,我們也可以通過引導器給內核傳遞參數來實現內核和根文件系統分別放置在不同的軟盤上,這樣內核就可以再大一些,支持的功能也就越多。總之制作一張包含小型linux的軟盤并不困難,關鍵是要細心和耐心,此外最好能夠了解BusyBox和RAMDISK的工作原理,這對于更好的完善系統是有很大幫助的。


上一頁 1 2 下一頁

關鍵詞: Linux 放進軟盤

評論


相關推薦

技術專區

關閉