国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

細說嵌入式Linux文件系統的制作方法

運維 系統運維
對于一個Linux系統的管理員來說,熟練的掌握文件系統是在重要不過的了。但是對于新入門的人來說,抽象的含義理解起來還是有些困難。下文就向大家詳細的介紹如何掌握嵌入式Linux文件系統的制作方法。

說到Linux文件系統對于剛剛接觸Linux的初學者來說還是有些生疏,其實理解了他的定義并且掌握他的使用方法并不是什么難事。在下文中大家就會詳細的了解到什么是Linux文件系統,并且可以學會嵌入式Linux文件系統的制作方法。

一、什么是文件系統 (Filesystem)

文件系統是包括在一個磁盤(包括光盤、軟盤、閃盤及其它存儲設備)或分區的目錄結構;一個可應用的磁盤設備可以包含一個或多個文件系統;如果您想進入一個文件系統,首先您要做的是掛載(mount)文件系統;為了掛載(mount)文件系統,您必須指定一個掛載點。

二、主要嵌入式采用的文件系統

Linux 中,rootfs 是必不可少的。PC 上主要實現有 ramdisk 和直接掛載 HD(Harddisk,硬盤) 上的根文件系統;嵌入式中一般不從 HD 啟動,而是從 Flash 啟動,最簡單的方法是將 rootfs load 到 RAM 的 RAMDisk,稍復雜的就是 直接從Flash 讀取的 Cramfs,更復雜的是在 Flash 上分區,并構建 JFFS2 等文件系統。

RAMDisk 將制作好的 rootfs 壓縮后寫入 Flash,啟動的時候由 Bootloader load 到RAM,解壓縮,然后掛載到 /。這種方法操作簡單,但是在 RAM 中的文件系統不是壓縮的,因此需要占用許多嵌入式系統中稀有資源 RAM。

ramdisk 就是用內存空間來模擬出硬盤分區,ramdisk通常使用磁盤文件系統的壓縮存放在flash中,在系統初始化時,解壓縮到SDRAM并掛載根文件系統, 在linux系統中,ramdisk有二種,一種就是可以格式化并加載,在linux內核2.0/2.2就已經支持,其不足之處是大小固定;另一種是 2.4的內核才支持,通過,ramfs來實現,他不能被格式化,但用起來方便,其大小隨所需要的空間增加或減少,是目前linux常用的ramdisk技術.

initrd 是 RAMDisk 的格式,kernel 2.4 之前都是 image-initrd,Kernel 2.5 引入了 cpio-initrd,大大簡化了 Linux 的啟動過程,附合 Linux 的基本哲學:Keep it simple, stupid(KISS). 不過cpio-initrd 作為新的格式,還沒有經過廣泛測試,嵌入式 Linux 中主要采用的還是 image-initrd。

Cramfs 是 Linus 寫的很簡單的文件系統,有很好的壓縮綠,也可以直接從 Flash 上運行,不須 load 到 RAM 中,因此節約了 RAM。但是 Cramfs 是只讀的,對于需要運行時修改的目錄(如: /etc, /var, /tmp)多有不便,因此,一般將這些目錄做成ramfs 等可寫的 fs。

SquashFS 是對 Cramfs 的增強。突破了 Cramfs 的一些限制,在 Flash 和 RAM 的使用量方面也具有優勢。不過,據開發者介紹,在性能上可能不如 Cramfs。這也是一種新方法,在嵌入式系統采用之前,需要經過更多的測試

三、建一個包含所有文件的目錄

1。建一個目錄rootfs 用來裝文件系統

2。mkdir bin dev etc lib proc sbin tmp usr var

3. ln -fs bin/busybox linuxrc(使用busybox)

4. 到系統 /dev 把所有的device打一個包,拷貝到 dev下面(最省事的做法);或者使用mknod來自己建所需要的device,我自己用的如下:

 

  1. crw-rw-rw- 1 root root 5, 1 2006-02-24 13:12 console  
  2. crw-rw-rw- 1 root root 5, 64 2006-02-24 13:12 cua0  
  3. crw-rw-rw- 1 root root 63, 0 2006-02-24 13:12 dk0  
  4. crw-rw-rw- 1 root root 63, 1 2006-02-24 13:12 dk1  
  5. drwxr-xr-x 2 root root 4096 2006-02-24 13:12 flash  
  6. brw-rw-rw- 1 root root 3, 0 2006-02-24 13:12 hda  
  7. crw-rw-rw- 1 root root 36, 10 2006-02-24 13:12 ipsec  
  8. crw-rw-rw- 1 root root 241, 0 2006-02-24 13:12 ixNpe  
  9. crw-rw-rw- 1 root root 1, 2 2006-02-24 13:12 kmem  
  10. crw-rw-rw- 1 root root 126, 0 2006-02-24 13:12 ledman  
  11. lrwxrwxrwx 1 root root 16 2007-09-19 14:08 log -> /tmp/var/log/log  
  12. crw-rw-rw- 1 root root 1, 1 2006-02-24 13:12 mem  
  13. crw-rw-rw- 1 root root 90, 0 2006-02-24 13:12 mtd0  
  14. brw-rw-rw- 1 root root 31, 0 2006-02-24 13:12 mtdblock0  
  15. brw-rw-rw- 1 root root 31, 1 2006-02-24 13:12 mtdblock1  
  16. brw-rw-rw- 1 root root 31, 2 2006-02-24 13:12 mtdblock2  
  17. brw-rw-rw- 1 root root 31, 3 2006-02-24 13:12 mtdblock3  
  18. brw-rw-rw- 1 root root 31, 4 2006-02-24 13:12 mtdblock4  
  19. brw-rw-rw- 1 root root 31, 5 2006-02-24 13:12 mtdblock5  
  20. brw-rw-rw- 1 root root 31, 6 2006-02-24 13:12 mtdblock6  
  21. crw-rw-rw- 1 root root 90, 1 2006-02-24 13:12 mtdr0  
  22. crw-rw-rw- 1 root root 1, 3 2006-02-24 13:12 null  
  23. crw-rw-rw- 1 root root 108, 0 2006-02-24 13:12 ppp  
  24. crw-r--r-- 1 root root 5, 2 2006-03-29 15:56 ptmx  
  25. drwxr-xr-x 2 root root 4096 2006-03-29 15:56 pts  
  26. crw-rw-rw- 1 root root 2, 0 2006-02-24 13:12 ptyp0  
  27. brw-rw-rw- 1 root root 1, 0 2006-02-24 13:12 ram0  
  28. crw-rw-rw- 1 root root 1, 8 2006-02-24 13:12 random  
  29. crw-rw-rw- 1 root root 5, 0 2006-02-24 13:12 tty  
  30. crw-rw-rw- 1 root root 4, 0 2006-02-24 13:12 tty0  
  31. crw-rw-rw- 1 root root 3, 0 2006-02-24 13:12 ttyp0  
  32. crw-rw-rw- 1 root root 4, 64 2006-02-24 13:12 ttyS0  
  33. crw-rw-rw- 1 root root 1, 9 2006-02-24 13:12 urandom  
  34. crw-rw-rw- 1 root root 1, 5 2006-02-24 13:12 zero 

 

舉例: mknod console c 5 1 這樣 crw-rw-rw- 1 root root 5, 1 2006-02-24 13:12 console

5。將編譯好的busybox拷貝到/bin下面,除了busybox外,所有其他的命令都是他的link

ash chgrp clear dd echo fgrep gzip ip ls modprobe mv ping pwd sed stty tar true zcat busybox chmod cp df egrep grep hostname kill mkdir more netstat ping2file rm sh sync tftp umount cat chown date dmesg false gunzip ifconfig ln mknod mount pidof ps rmdir sleep sysinfo touch uname

所有的命令你可以在busybox下面用make menuconfig來增減

6。同樣/sbin下面也是busybox的link

halt ifconfig init insmod klogd losetup lsmod mkswap modprobe reboot rmmod route swapoff swapon#p#

7。同樣/usr/bin下面也是busybox的link

basename dirname env free id logger reset tail tr tty uptime which xargs

awk cut du expr head killall mkfifo sort test traceroute uniq wc whoami yes

上面幾乎是最全的link,各個看官可以酌情刪減,不過link也不占什么空間!

8。同樣/usr/sbin下面放著所有編譯完的可執行文件,具體就不多說了

9。非常重要之/lib,務必重視

找到你編譯環境的target目錄,把需要的lib文件先用strip壓縮(非target目錄下的,而已編譯環境提供的strip),先把最基本的libc, ld等等,必須同樣做跟target/lib里面一樣的link。

然后根據特定的應用加相應的lib,不要把不用的加進去,lib比較占空間。

10。在/etc下面加上需要的配置文件,最最重要的是rcS

 

  1. #!/bin/sh  
  2. export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/sbin/scripts  
  3. UTC=yes 
  4. mount -n -t proc proc /proc  
  5. mount -n -t ramfs ramfs /tmp  
  6. mount -n -t devpts devpts /dev/pts  
  7. # build var directories  
  8. /bin/mkdir -m 0777 /tmp/var  
  9. /bin/mkdir -m 0777 /var/lock  
  10. /bin/mkdir -m 0777 /var/log  
  11. /bin/mkdir -m 0777 /var/run  
  12. /bin/mkdir -m 0777 /var/tmp  
  13. #/bin/mkdir -m 0777 /tmp/etc  
  14. #/bin/cp -a /usr/etc//etc  
  15. #/bin/cp -a /usr/dev//dev/  
  16. # loads the NPE ethernet modules into the kernel.  
  17. insmod /lib/modules/2.6.13.2/intel/ixp400.ko  
  18. # Firmware code for NPE Engine.  
  19. cat /etc/IxNpeMicrocode.dat > /dev/ixNpe  
  20. insmod /lib/modules/2.6.13.2/intel/ixp400_eth.ko netdev_max_backlog=500 
  21. insmod /lib/modules/led.ko  
  22. insmod /lib/modules/push_button.ko 

 

下面的具體應用沒有再舉例加上了,這個是系統init必須的。

其他的情況類似如此了,下面里面給了一個lunksys的GPL項目的target。

四、生成一個ramdisk

 

  1. #!/bin/sh  
  2. MODULE_NAME=ramdisk 
  3. RAMPATH=`pwd`  
  4. TMPPATH=${RAMPATH}/tmp  
  5. SOURCE=${RAMPATH}/../target  
  6. if [ ! -d ${TMPPATH} ]  
  7. then  
  8. mkdir ${TMPPATH}  
  9. fi  
  10. if [ `whoami` != 'root' ]  
  11. then {  
  12. echo "You should run the shell as root, Please rerun as a root."  
  13. echo "Aborting."  
  14. exit 1  
  15. }  
  16. fi  
  17. # Clear in tmp path  
  18. rm -rf ${TMPPATH}/tmpmnt  
  19. rm -rf ${TMPPATH}/ramrootfs  
  20. mkdir ${TMPPATH}/tmpmnt  
  21. # Clear the old ramdisk  
  22. rm -f ${RAMPATH}/$MODULE_NAME  
  23. # Make a temp file which size is suitable  
  24. dd if=/dev/zero of=${TMPPATH}/ramrootfs bs=1k count=6144 
  25. # Create a ext2 filesystem  
  26. mke2fs -F -m 0 -i 2000 ${TMPPATH}/ramrootfs  
  27. # Mount it to tmpmnt/  
  28. mount -o loop -t ext2 ${TMPPATH}/ramrootfs ${TMPPATH}/tmpmnt  
  29. # Copy everything from kernel to this.  
  30. cd ${TMPPATH}/tmpmnt  
  31. echo ${SOURCE}  
  32. cp -av ${SOURCE}/.  
  33. cd ${TMPPATH}  
  34. # Unmount it the ext2 filesystem  
  35. umount ${TMPPATH}/tmpmnt  
  36. cat ${TMPPATH}/ramrootfs | gzip -9 > /${RAMPATH}/ramdisk  
  37. echo Copying ramdisk image to ${RAMPATH}  
  38. sync 

 

這里給出一個自動生成腳本!

五、生成一個cramfs

找到cramfs的toolchain。/mkcramfs -r $(FS1_DIR) $(FS_NAME).1

六、生成一個mksquashfs

找到squashfs的toolchain。/mksquashfs $(FS_DIR) $(FS_NAME) -noappend -be -lzma -no-fragments -noI

做文件系統最困難和最可能出問題的地方是在/lib庫和/dev方面,請大家多注意這兩方面。 

【編輯推薦】

  1. 6月第3周系統升級錄:ZFS與Linux文件系統的變革
  2. inotify監控Linux文件系統的必備利器
  3. 四大Linux文件系統在2.6.34內核下的基準測試
  4. Linux文件系統組織結構簡說分析結構
責任編輯:張浩 來源: 賽迪網
相關推薦

2010-01-21 09:15:05

Linux嵌入式文件系

2009-04-20 21:20:32

Linux文件系統存儲機制

2014-09-02 09:45:57

Linux

2009-08-27 10:28:04

2022-01-03 23:33:40

Linux組件系統

2020-07-03 07:00:00

Linux組件

2021-12-19 22:34:45

Linux容器系統

2012-07-30 14:13:11

Linux 2.6內核嵌入式

2009-06-26 16:05:04

嵌入式Linux

2011-01-14 13:13:23

嵌入式Linux開發

2011-01-06 15:11:09

嵌入式linux

2017-12-21 10:43:44

Linux嵌入式終端

2011-04-25 10:25:43

OpenEmbedde嵌入式Linux

2009-04-11 15:22:24

Linux 2.6內核應用

2020-06-15 07:00:00

Linux嵌入式系統

2009-12-24 17:21:38

嵌入式Linux

2022-01-04 22:19:38

Linux開發嵌入式

2009-12-16 15:41:40

嵌入式Linux入門

2009-12-17 10:33:05

嵌入式Linux

2009-12-09 10:12:28

嵌入式Linux
點贊
收藏

51CTO技術棧公眾號

sm久久捆绑调教精品一区| 666av成人影院在线观看| 一区二区三区在线影院| 国产又大又黄又粗又爽| 成人激情免费网站| 神马午夜dy888| 国产精品国产三级国产三级人妇| 欧美深夜福利视频| 亚洲精品乱码久久久久久黑人| 三级在线视频| 中文字幕综合一区| 亚洲精品国产setv| 亚洲精品一卡二卡三卡四卡| 久久精品一区四区| 在线黄色网页| 91干在线观看| 久久久噜噜噜| 开心快乐六月丁香婷婷| 精品视频一区 二区 三区| 欧美大片高清| 97视频免费看| 日韩av在线播放网址| 91国自产精品中文字幕亚洲| 黑人久久a级毛片免费观看| 欧美高清性xxxxhdvideosex| 亚洲男人天堂一区| 青青国产精品| 99久久久久国产精品免费| 久久综合av免费| 天堂电影一区| 99久久国产免费看| 国产麻豆9l精品三级站| 亚洲伊人观看| jlzzjlzz欧美大全| 亚洲精品色婷婷福利天堂| 网站一区二区| 欧美久久天堂| 亚洲图片欧美色图| 大地资源中文在线观看免费版| 3d动漫精品啪啪| 久久野战av| 99久久无色码| 日本一区二区三区国色天香| xxxx成人| 久久亚洲午夜电影| 国产精品一区二区在线观看网站| 成人在线免费看| 欧美一级大胆视频| 久久九九影视网| 国产一区二区久久久久| 老太脱裤子让老头玩xxxxx| 国产在线视频网| 在线成人免费视频| 久久久成人av毛片免费观看| 亚洲精品永久www嫩草| 一个色综合av| 97精品国产| av在线资源站| 国产日韩一区二区三区| 欧美色图片你懂的| 亚洲综合好骚| 三级免费网站| 国产99久久久欧美黑人| 激情av一区二区| 黄色av一区| 成年网站在线视频网站| 国产精品第157页| 日韩在线视频观看正片免费网站| av日韩在线网站| 自拍偷拍亚洲| 国产一线二线三线在线观看| 琪琪第一精品导航| 欧美日韩亚洲一区二| 欧美日韩日本国产亚洲在线| 国产在线自天天| 欧美午夜小视频| 国产精品久久久久久久久久久久久久 | 精品噜噜噜噜久久久久久久久试看 | 欧美xxxx黑人又粗又长精品| 精品粉嫩超白一线天av| 国产亚洲欧美日韩俺去了| 风间由美性色一区二区三区四区| 男女羞羞视频教学| 91制片厂免费观看| 日本午夜人人精品| 亚洲国产另类久久精品 | 欧美日本黄视频| 国产精品一区二区久久精品爱涩 | 九七影院97影院理论片久久| 国产网红在线| 伊人av成人| 亚洲一区二区三区香蕉| 日韩欧美国产高清| 亚洲视频精选在线| 日本在线播放一区二区三区| 久久成人综合| 亚洲人和日本人hd| 精品国模一区二区三区欧美 | 久久综合给合久久狠狠狠97色69| 久久av一区| 极品尤物久久久av免费看| 老司机成人在线| 超碰成人在线观看| 两个人看的在线视频www| 精品176二区| 在线观看免费网站| 992tv在线| 黄色三级高清在线播放| 成人在线观看a| 精品一区二区日本| 成人疯狂猛交xxx| 国产精品亚洲综合天堂夜夜| 国产va在线视频| 日韩中文在线不卡| 日韩va亚洲va欧洲va国产| 色网站国产精品| 国产精品少妇自拍| 国产日本欧洲亚洲| 日韩电影一区二区三区四区| 老司机久久99久久精品播放免费| 最新成人av网站| 六月婷婷一区| 中文亚洲欧美| 久久精品999| 91热门视频在线观看| 99riav一区二区三区| 国产欧美日韩三级| 国产精品久久久久婷婷| 亚洲.国产.中文慕字在线| 国产69精品久久久久777| 成人av第一页| 91小视频在线| 国产精品妹子av| 色哟哟一区二区| 日韩区在线观看| 日韩在线播放一区| 国产精品福利网| 国产一区二区香蕉| 久久国产精品久久| 国产黄色一级网站| 免费人成短视频在线观看网站| 免费在线国产| 女子免费在线观看视频www| www.久久草.com| 一区二区三区视频免费视频观看网站 | 日本中文在线一区| 国产欧美精品在线观看| 91精品久久久久久久99蜜桃| 992tv在线成人免费观看| 成人午夜在线观看| 九九久久99| 婷婷亚洲天堂| av免费在线免费观看| 久久在线视频| 久久久久国产精品| 国自产拍偷拍福利精品免费一| 免费亚洲婷婷| 日本伊人色综合网| 中文在线免费一区三区高中清不卡| 欧美美女bb生活片| 国产一区二区香蕉| 成人免费淫片在线费观看| 国产色在线观看| 精品国产一区二区三区久久久樱花 | 国产色视频网站| av高清不卡| 香蕉视频一区| 精品一区二区三区日韩| 91精品1区2区| 亚洲一区二区久久久久久| www.国产区| 中文字幕成人| 久久精品国产精品亚洲精品| 欧美日韩1234| 欧美精品一区二区三区在线四季| 粉嫩粉嫩芽的虎白女18在线视频| 一区二区电影免费观看| 免费视频一区二区| 欧美高清www午色夜在线视频| 亚洲毛片在线看| 99国产在线| 在线你懂的视频| 韩日视频一区| 日本久久成人网| 成人av免费在线观看| 亚洲图片欧洲图片av| 国产91精品入口17c| 在线视频婷婷| 日韩成人av影视| 亚洲欧洲一区二区三区在线观看| 国产精品国产福利国产秒拍| 中文字幕免费中文| 视频亚洲一区二区| 国产欧美综合色| 精品裸体舞一区二区三区| 国产不卡在线观看| 欧美日本网站| 麻豆91在线观看| 91.com视频| 女女同性女同一区二区三区91|