製作ramdisk檔案系統

2021-05-08 10:01:14 字數 2301 閱讀 7793

近段時間跟老闆做些嵌入式的實驗,順便學了下ramdisk檔案系統的製作,為防忘記,寫篇日誌提醒提醒。

由於實驗採用的是龍芯的板子,所以很多地方是基於mips來寫的。網上也有很多ramdisk檔案系統製作的帖子,各有各的優缺點,我這就算是乙個新的參考吧。

介紹下我的環境:ubuntu 8.04 

核心版本:2.6.18.1

gcc版本號忘記了

將busybox1.1.3.tar

解壓到你的工作目錄下,如:/home/xx/

,以下用變數$

表示。1

建立根檔案系統結構

$#mkdir rootfs

$#cd rootfs

$/rootfs#mkdir bin dev etc lib proc sbin tmp usr var

$/rootfs#chmod 1777 tmp

$/rootfs#mkdir usr/bin usr/lib usr/sbin

$/rootfs#mkdir var/lib var/lock var/log var/run var/tmp

$/rootfs#chmod 1777 var/tmp 2

使用busybox

製作系統應用程式

2.1進入busybox

解壓後的目錄,配置busybox

$/busybox1.1.3$make menuconfig

配置時幾個注意的地方:

a.最好選上busyboxsettings/build options/build busybox as a static binary

項,表示不依賴動態庫;

b.busybox settings/build options/do you want to build busybox with acrosscompiler

需選上,並輸入交叉編譯工具的字首,如:$path/mipsel-linux-

,注意不是mipsel-linux-gcc

;c.busybox settings/installation options

設定為$/rootfs

;d.shells/ choose your default shell

設定為ash;e.

選上initutilities/init

及initutilities/support reading an inittab file

;其他配置看需要進行選取。

2.2編譯並安裝busybox

$/busybox1.1.3$make

$/busybox1.1.3$make install

2.3準備所需的裝置檔案

可以直接拷貝宿主機上的,或者自建幾個,

如:$#cd rootfs/dev

$/rootfs/dev#mknod -m 600 console c 5 1

在直接拷貝的時候,應加上cp的-dpr這三個選項,否則會出現問題。

2.4準備配置檔案

一般是直接拷貝宿主機上/etc/下的所有檔案到自己根檔案系統的/etc/下邊。

將/sbin/init拷貝到新生成的檔案系統根目錄下,或手工建立乙個指向/bin/busybox的鏈結init;

2.5生成映象檔案

對不同的檔案系統採用不同的生成工具,如生成cramfs使用命令:

#mkfs.cramfs ./rootfs ./rootfs.cramfs

到此為止,檔案系統算是大致完成了,對於是否要製作映象檔案,看具體應用而定。在此我們不製作映象檔案,直接編譯到核心中。

3配置核心載入檔案系統

a.將/rootfs/

內的檔案拷貝到核心資料夾下的arch/mips/ramdisk/

裡邊;完成後對核心進行配置:輸入makemenuconfig;b.

進入devicedrivers / block devices,

選中以下幾項:

>>loopbackdevice support

>>ramdisksupport

>>defaultnumber of ram disks (16)

>>defaultram disk size(kbytes) (4096)

>>defaultram disk block size(bytes) (1024)

>>initialram filesystem and ram disk support c.

進入 generalsetup,

選中 initramfssource file,

指定 ramdisk

的路徑,即:arch/mips/ramdisk;4

編譯核心,載入到目標機上執行。

Ramdisk根檔案系統

ramdisk根檔案系統生成在 可以參考一下linux usr makefile,會呼叫scripts gen initramfs list.sh根據變數config initramfs source指定 定義為.root 呼叫usr gen init cpio工具,來生成cpio格式的壓縮的根檔案...

Linux下Ramdisk根檔案系統製作過程解析

一 在乙個已建好的檔案系統上進行修改 設已建立好的檔案系統壓縮檔案為ramdisk.gz 1 解壓 cd ramdisk.gz所在目錄 gunzip ramdisk.gz 在解壓後,得到檔案系統鏡象檔案ramdisk,覆蓋了原來的壓縮檔案 2 鏡象檔案掛載 鏡象檔案必須經過掛載後才能看到檔案系統中的...

zynq修改ramdisk檔案系統

掛載 ramdisk 新建目錄 tmp,並將 uramdisk.image.gz 拷貝至該目錄 cd filesystem mkdir tmp cp uramdisk.image.gz tmp cd tmp 去掉 mkimage 生成的 64 bytes 的檔案頭,生成新的 ramdisk.imag...