0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

移植Linux內核ramfs和ramdisk文件系統(tǒng)

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-10-04 14:41 ? 次閱讀

在移植Linux內核早期時,如果flash等存儲設備的驅動還沒寫好,可以將文件系統(tǒng)放到內存中運行。

此時可以使用ramfsramdisk,即將內存的一部分用作文件系統(tǒng)。

ramfs

ramfs就是將文件系統(tǒng)和內核一起編譯,編譯出來的鏡像就包括 內核本身和文件系統(tǒng) 。

內核打開ramfs

Initramfs source file(s)選項中,填入文件系統(tǒng)的路徑即可。

最后,ubootbootargs中需要將init=/sbin/init修改為rdinit=/sbin/init,主要就是initrdinit的區(qū)別。

ramdisk

ramdisk也是將內存的一部分用作文件系統(tǒng),只不過不用像上面一樣要重新編譯內核。

ramdisk制作

ramdisk制作可以使用genext2fs工具或者mke2fs等工具制作。

方法一:genext2fs

genext2fs安裝:

sudo apt-get install genext2fs

ramdisk制作腳本:

genext2fs -b 16384 -d /home/book/rootfs ramdisk.image
gzip –v9 ramdisk.image
mkimage -A arm -O linux -T ramdisk -C gzip -n 'xx ramdisk filesystem' -d ramdisk.image.gz uramdisk.image.gz
  • 先使用genext2fs/home/book/rootfs制作成一個名為ramdisk.imageramdisk
  • 然后使用gizp壓縮ramdisk.image,得到ramdisk.image.gz
  • 最后用mkimage工具生成uramdisk.image.gzuboot使用

方法二:mke2fs

ramdisk制作腳本:

dd if=/dev/zero of=ramdisk.image bs=1k count=15360
mke2fs –F –v –m 0 ramdisk.image
mount –o loop ramdisk.image /mnt/loop
cp -a rootfs/* /mnt/loop
umount /mnt/loop
gzip –v9 ramdisk.image
mkimage -A arm -O linux -T ramdisk -C gzip -n 'xx ramdisk filesystem' -d ramdisk.image.gz uramdisk.image.gz

過程類似,只不過是先制作一個空的鏡像,然后拷貝文件系統(tǒng)的內容。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11304

    瀏覽量

    209543
  • 文件
    +關注

    關注

    1

    文章

    566

    瀏覽量

    24749
  • 系統(tǒng)
    +關注

    關注

    1

    文章

    1017

    瀏覽量

    21347
收藏 人收藏

    評論

    相關推薦

    ramfsramdisk文件系統(tǒng)的制作和啟動

    移植Linux內核早期時,如果flash等存儲設備的驅動還沒寫好,可以將文件系統(tǒng)放到內存中運行。
    發(fā)表于 08-21 15:31 ?5965次閱讀
    <b class='flag-5'>ramfs</b>和<b class='flag-5'>ramdisk</b><b class='flag-5'>文件系統(tǒng)</b>的制作和啟動

    淺析Ramdisk制作供linux掛載的根文件系統(tǒng)過程

    ,然后去執(zhí)行。在linux中,ramdisk有2種:?initrd:linux內核2.0開始支持,大小固定?initramfs: linux
    發(fā)表于 07-21 15:26

    ramfs不支持創(chuàng)建文件夾,是否可以設計一個ramdisk呢?

    ramfs不支持創(chuàng)建文件夾,是否可以設計一個ramdisk來實現(xiàn)塊設備然后實現(xiàn)在ram上的文件系統(tǒng)。想法是:1.在系統(tǒng)初始化時使用ram生成
    發(fā)表于 02-08 11:08

    實現(xiàn)嵌入式Linux的新方法-ramdisk

    實現(xiàn)嵌入式Linux的新方法-ramdisk 概述   在Linux操作系統(tǒng)中,有一項特殊的功能——初始化內存盤INITRD(INITial Ram   Disk)技術,而且
    發(fā)表于 04-19 08:40 ?997次閱讀

    制作ZedBoard上linux文件系統(tǒng)(ramdisk)

    loader(FSBL)和引導linux需要的Second-Stage boot loader(SSBL)、Linux內核zImage、設備樹文件devicetree_
    發(fā)表于 02-10 18:46 ?1594次閱讀
    制作ZedBoard上<b class='flag-5'>linux</b>根<b class='flag-5'>文件系統(tǒng)</b>(<b class='flag-5'>ramdisk</b>)

    詳解Linux文件系統(tǒng)Ramdisk的制作過程

    ramdisk是一個最小的linux rootfs系統(tǒng),它包含了除內核以外的所有linux系統(tǒng)
    發(fā)表于 10-30 15:54 ?1次下載

    Linux 內核/sys 文件系統(tǒng)介紹

    linux2.6內核引入sysfs文件系統(tǒng),sysfs可以看成與proc,devfs和devpty同類別的文件系統(tǒng),該文件系統(tǒng)是虛擬的
    發(fā)表于 04-25 16:20 ?4294次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>內核</b>/sys <b class='flag-5'>文件系統(tǒng)</b>介紹

    需要了解的混合文件系統(tǒng)ramdisk+jffs)

    ramdisk制作成一個基本的文件系統(tǒng),不同項目改動的只是jffs2數(shù)據(jù)分區(qū),可以實現(xiàn)文件系統(tǒng)的重復利用。類似于核心板和底板的關系。
    發(fā)表于 04-25 17:38 ?1831次閱讀
    需要了解的混合<b class='flag-5'>文件系統(tǒng)</b>(<b class='flag-5'>ramdisk</b>+jffs)

    Linuxramdisk,tmpfs,ramfs對比說明

    Linux中可以將一部分內存mount為分區(qū)來使用,通常稱之為RamDisk,分為:Ramdisk, ramfs, tmpfs.
    發(fā)表于 04-27 19:38 ?2511次閱讀
    <b class='flag-5'>Linux</b>中<b class='flag-5'>ramdisk</b>,tmpfs,<b class='flag-5'>ramfs</b>對比說明

    如何實現(xiàn)Linux內核移植和yaffs2根文件系統(tǒng)制作

    本文檔的主要內容詳細介紹的是如何實現(xiàn)Linux內核移植和yaffs2根文件系統(tǒng)制作。
    發(fā)表于 03-24 09:12 ?9次下載

    嵌入式Linux系統(tǒng)移植開發(fā)-(1)基于Yocto構建嵌入式u-boot,內核,文件系統(tǒng)

    基于Yocto構建嵌入式u-boot,內核,文件系統(tǒng)Yocto是什么?簡單地概括,它是一個工具,可以用來構建u-boot,kernel,文件系統(tǒng),交叉編譯工具鏈,等等。Yocto提供了一套完整的全面
    發(fā)表于 11-01 17:38 ?14次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>移植</b>開發(fā)-(1)基于Yocto構建嵌入式u-boot,<b class='flag-5'>內核</b>,<b class='flag-5'>文件系統(tǒng)</b>

    嵌入式Linux系統(tǒng)移植-(Linux文件系統(tǒng)

    嵌入式Linux系統(tǒng)移植-(Linux文件系統(tǒng))嵌入式文件系統(tǒng)概述·
    發(fā)表于 11-02 12:51 ?16次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>移植</b>-(<b class='flag-5'>Linux</b><b class='flag-5'>文件系統(tǒng)</b>)

    深入剖析Linux內核虛擬文件系統(tǒng)

    虛擬文件系統(tǒng)(Virtual File System,簡稱VFS)是Linux內核的子系統(tǒng)之一,它為用戶程序提供文件
    的頭像 發(fā)表于 05-14 15:53 ?3079次閱讀
    深入剖析<b class='flag-5'>Linux</b><b class='flag-5'>內核</b>虛擬<b class='flag-5'>文件系統(tǒng)</b>

    Linux配置kernel使用ramdisk文件系統(tǒng)

    配置kernel使用ramdisk文件系統(tǒng) 修改 uboot 的環(huán)境變量: setenv initrd_high= 0 xffffffff setenv bootargs console=ttyS
    的頭像 發(fā)表于 10-04 14:48 ?1984次閱讀
    <b class='flag-5'>Linux</b>配置kernel使用<b class='flag-5'>ramdisk</b><b class='flag-5'>文件系統(tǒng)</b>

    Linux文件系統(tǒng)的掛載過程

    Linux文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點,它是內核啟動
    的頭像 發(fā)表于 10-05 16:50 ?428次閱讀