導航:首頁 > 操作系統 > linux實現文件系統

linux實現文件系統

發布時間:2022-09-04 11:39:19

1. linux文件系統特點

Linux之所以能在嵌人式系統領域取得如此輝煌的成績,與其自身的優良特性是分不開的。與其他操作系統相比,Linux具有以下一系列顯著的特點。

1.模塊化程度高

Linux的內核設計非常精巧,分成進程調度、內存管理、進程間通信、虛擬文件系統和網路介面五大部分;其獨特的模塊機制可根據用戶的需要,實時地將某些模塊插入或從內核中移走,使得Linux系統內核可以裁剪得非常小巧,很適合於嵌入式系統的需要。

2.源碼公開

由於Linux系統的開發從一開始就與GNU項目緊密地結合起來,所以它的大多數組成部分都直接來自GNU項目。任何人、任何組織只要遵守GPL條款,就可以自由使用Linux 源代碼,為用戶提供了最大限度的自由度。這一點也正投嵌入式系統所好,因為嵌入式系統應用千差萬別,設計者往往需要針對具體的應用對源碼進行修改和優化,所以是否能獲得源代碼 對於嵌入式系統的開發是至關重要的。加之Linux的軟體資源十分豐富,每種通用程序在Linux上幾乎都可以找到,並且數量還在不斷增加。這一切就使設計者在其基礎之上進行二次開發變得非常容易。另外,由於Linux源代碼公開,也使用戶不用擔心有「後閘」等安全隱患。

同時,源碼開放給各教育機構提供極大的方便,從而也促進了Linux的學習、推廣和應用。

3.廣泛的硬體支持

Linux能支持x86、ARM、MIPS、ALPHA和PowerPC等多種體系結構的微處理器。目前已成功地移植到數十種硬體平台,幾乎能運行在所有流行的處理器上。

由於世界范圍內有眾多開發者在為Linux的擴充貢獻力量,所以Linux有著異常豐富的驅動程序資源,支持各種主流硬體設各和最新的硬體技術,甚至可在沒有存儲管理單元MMU 的處理器上運行,這些都進一步促進了Linux在嵌入式系統中的應用。

4.安全性及可靠性好

內核高效穩定。Linux內核的高效和穩定已在各個領域內得到了大量事實的驗證。

Linux中大量網路管理、網路服務等方面的功能,可使用戶很方便地建立高效穩定的防火牆、路由器、工作站、伺服器等。為提高安全性,它還提供了大量的網路管理軟體、網路分析軟體和網路安全軟體等。

5.具有優秀的開發工具

開發嵌入式系統的關鍵是需要有一套完善的開發和調試工具。傳統的嵌入式開發調試工具是在線模擬器(In Circuit Emulator,ICE),它通過取代目標板的微處理器,給目標程序提供一個完整的模擬環境,從而使開發者能非常清楚地了解到程序在目標板上的工作狀態,便於監視和調試程序。在線模擬器的價格非常高,而且只適合做非常底層的調試。如果使用的是嵌人式Linux,一旦軟硬體能支持正常的串口功能,即使不用在線模擬器,也可以很好地進行開發和調試工作,從而節省了一筆不小的開發費用。嵌入式Linux為開發者提供了一套完整的工具鏈(Tool Chain),能夠很方便地實現從操作系統到應用軟體各個級別的調試。

6.有很好的網路支持利文件系統支持

Linux從誕生之日起就與Internet密不可分,支持各種標準的Internet網路協議,並且很容易移植到嵌入式系統當中。目前,Linux幾乎支持所有主流的網路硬體、網路協議和文件系統,因此它是NFS的一個很好的平台。

另一方面,由於Linux有很好的文件系統支持(例如,它支持Ext2、FAT32、romfs等文件系統),是數據各份、同步和復制的良好平台,這些都為開發嵌入式系統應用打下了堅實的基礎。

7.與UNIX完全兼容

目前,在Linux中所包含的工具和實用程序,可以完成UNIX的所有主要功能。

但由於Linux不是為實時而設計的,因而這就成了Linux在實時系統中應用的最大遺憾。不過,目前有眾多的自由軟體愛好者正在為此進行不懈的努力,也取得了諸多成果

2. 操作系統linux 二級文件系統具體是怎麼實現的

說通俗一點就類似於數組加上鏈表的結構,i_addr[8]數組中每一個元素都指向了一個磁碟塊,如果那個磁碟塊中也存放了一個i_addr[8]數組,並且那個數組中的每個元素也指向了一個磁碟塊,那麼這就是二級的索引文件結構了~
建議看一下操作系統原理(龐麗萍)一書中的文件系統一章
這個東西是Unix
V的一種典型的文件系統~呵呵~

3. 如何在 Linux下實現一個文件系統

linux系統下也有開發C的很多開發工具的,一般工程可用make文件但最簡單的直接用命令編譯就可以了gcc -o 你的執行文件名 main.c func1.c func2.c fun3.c就可以直接用你的4個C源文件生成你要的執行文件了

4. Linux下是如何實現多文件系統的,簡答題。

1 忘了
2 mv file1 /home/user1/tmp/file2
3cp -Rf /home/user1/myfiles/* /home/user2
init 0=shutdown
Init 1=單用戶模式
init 2=多用戶模式禁用nfs
init3=多用戶模式
init4=自已定
init5=圖形化界面
init6=reboot
4adser username
5 選擇語言~選擇鍵盤~選擇滑鼠~分區~配置network~iptables~root用戶名密碼~下一步下一步下一步ok
6當系統執行的任務臨時要求大內存而得不到滿足時,將部分不活躍的內存內容移到硬碟上的一個緩存區域,這個專門預留的區域就是swap分區
7 磁碟文件系統的入口目錄就是掛載點 不懂網路
tmp~etc~home~var~home===
8這個太多了 chkconfig出來一堆自己看吧
2例子
iptables=防火牆你懂得
sshd=一般用於遠程登錄管理
純手打

5. Linux 文件系統管理

3.1Linux 文件系統類型

不同的操作系統使用不同類型的文件系統,為了與其他的操作系統兼容,以相互交換數據,

通常,每種操作系統都支持多種類型的文件系統。

Linux 中保存數據的磁碟分區通常採用EXT2/EXT3 文件系統,而實現虛擬存儲的swap 分區

採用swap 文件系統,同時Linux 內核支持十多種不同的文件系統。

1. EXT2 和EXT3 文件系統

EXT(Extended File System,擴展文件系統)是專為Linux 設計的文件系統。在Linux 發展

早起,起到重要中用,但在穩定性、速度和兼容性方面存在缺陷。

EXT2 是為解決EXT 系統存在的缺陷而設計的可擴展、高性能的文件系統。

EXT3 是EXT2 的增強版本,在EXT2 的基礎上,增加了文件系統的日誌管理功能。

EXT3 文件系統具有的特點:

(1) 高效性:當系統因為異常斷電或系統崩潰,重新啟動時不需要檢查文件系統的一致

性,只需要根據文件系統的日誌,快速檢測並恢復文件系統到正常狀態。

(2) 數據的完整性:可以保持數據域文件系統狀態的高度一致性,避免意外關機對文件

系統造成的破壞。

(3) 數據的存取速度更快:EXT3 文件系統的日誌功能對磁碟驅動器的讀/寫進行優化,

使讀/寫系統的速度更快。

(4) 數據易於轉換

2. swap 文件系統

用於Linux 的交換分區。在Linux 中,使用整個交換分區來提供虛擬內存。

3. VFAT 文件系統

VFAT 是Linux 對DOS、Windows 系統下的FAT 文件系統的統稱。

4. NFS 文件系統

NFS 即網路文件系統,用在UNIX 或Linux 系統間通過網路進行文件共享。

5. SMB 文件系統

SMB 是Samba 的縮寫,是另一種網路文件系統,用於在Windows 和Linux 系統之間共享文

件和列印機。

6. ISO9660 文件系統

CD-ROM使用的標准文件系統。

此外,Linux 支持的文件系統還有minix、msdos、ncpfs、hpfs、umsdos 等。

3.2 Linux 的目錄和文件

1.Linux 系統的目錄結構

Linux 文件系統由文件和目錄組成,文件是專門用來存儲數據的對象,目錄是一種用來組織

文件和其他目錄的容器。Linux 和DOS、Windows 系統一樣,使用樹形目錄結構來組織和管

理文件。

1. / 文件系統的入口,最高一級目錄;

2. /bin 基礎系統所需要的命令位於此目錄,是最小系統所需要的命令,如:ls, cp, mkdir等。

這個目錄中的文件都是可執行的,一般的用戶都可以使用。

3. /boot 包含Linux內核及系統引導程序所需要的文件,比如vmlinuz initrd.img文件都位於這個目錄中。在一般情況下,GRUB或LILO系統引導管理器也位於這個目錄;

4. /dev 設備驅動程序文件存儲目錄,比如音效卡、磁碟等,是Linux文件系統的一個閃亮的特性-所有對象都是文件或目錄。仔細觀察這個目錄你會發現hda1, hda2等,它們代表系統主硬碟的不同分區。

5. /etc 存放系統程序或者一般工具的配置文件。

如安裝了apache2之後,配置文件在/etc/apache2/目錄下。

/etc/init.d這個目錄是用來存放系統或伺服器以System V模式啟動的腳本,這在以System V模式啟動或初始化的系統中常見。

6. /home 普通用戶默認存放目錄Linux是多用戶環境,所以每一個用戶都有一個只有自己可以訪問的目錄(當然管理員也可以訪問)。它們以/home/username的方式存在。這個目錄也保存一些應用對於這個用戶的配置,比如IRC, X等。

7. /lib 庫文件存放目錄這里包含了系統程序所需要的所有共享庫文件,類似於Windows的共享庫DLL文件。

8. /var 這個目錄的內容是經常變動,因為存儲的文件,如資料庫,數據文件大小是在不斷的增大。

/var/log這是用來存放系統日誌的目錄。

/var/www目錄是定義Apache伺服器站點存放目錄;/var/lib用來存放一些庫文件,比如MySQL的,以及MySQL資料庫的的存放地;

/var/log系統日誌存放,分析日誌要看這個目錄的東西;

/var/spool列印機、郵件、代理伺服器等假離線目錄;

9. /lost+found 在ext2或ext3文件系統中,當系統意外崩潰或機器意外關機,而產生一些文件碎片放在這里。當系統啟動的過程中fsck工具會檢查這里,並修復已經損壞的文件系統。 有時系統發生問題,有很多的文件被移到這個目錄中,可能會用手工的方式來修復,或移到文件到原來的位置上。

Linux應該正確的關機。但有時你的系統也可能崩潰掉或突然斷電使系統意外關機。那麼啟動的時候fsck將會進行長時間的文件系統檢查。Fsck會檢測並試圖恢復所發現的'不正確的文件。被恢復的文件會放置在這個目錄中。所恢復的文件也許並不完整或並不合理,但畢竟提供了一些恢復數據的機會。

10. /media 即插即用型存儲設備的掛載點自動在這個目錄下創建,比如USB盤系統自動掛載後,會在這個目錄下產生一個目錄 ;CDROM/DVD自動掛載後,也會在這個目錄中創建一個目錄,類似cdrom的目錄。這個只有在最新的發行套件上才有. 10. /mnt /mnt這個目錄一般是用於存放掛載儲存設備的掛載目錄的,比如有cdrom等目錄。有時我們可以把讓系統開機自動掛載文件系統,把掛載點放在這里也是可以的。比如光碟機可以掛載到/mnt/cdrom。

11. /opt 表示的是可選擇的意思,有些軟體包也會被安裝在這里,也就是自定義軟體包,比如在Fedora Core 5.0中,OpenOffice就是安裝在這里。有些我們自己編譯的軟體包,就可以安裝在這個目錄中;通過源碼包安裝的軟體,可以通過./configure --prefix=/opt/,將軟體安裝到opt目錄。

這個目錄包含所有默認系統安裝之外的軟體和添加的包。

12. /proc 操作系統運行時,進程(正在運行中的程序)信息及內核信息(比如cpu、硬碟分區、內存信息等)存放在這里。/proc目錄是偽裝的文件系統proc的掛載目錄,proc並不是真正的文件系統。

這是系統中極為特殊的一個目錄,實際上任何分區上都不存在這個目錄。它實際是個實時的、駐留在內存中的文件系統。

13. /root Linux超級許可權用戶root的家目錄;

14. /sbin 大多是涉及系統管理的命令的存放,是超級許可權用戶root的可執行命令存放地,普通用戶無許可權執行這個目錄下的命令;

這個目錄和

/usr/sbin;/usr/X11R6/sbin或/usr/local/sbin目錄是相似的; 我們記住就行了,凡是目錄sbin中包含的都是root許可權才能執行的。

15. /tmp 臨時文件目錄,有時用戶運行程序的時候,會產生臨時文件。/tmp就用來存放臨時文件的。/var/tmp目錄和這個目錄相似。

許多程序在這里建立lock文件和存儲臨時數據。有些系統會在啟動或關機時清空此目錄。

16. /usr 這個是系統存放程序的目錄,比如命令、幫助文件等。

這個目錄下有很多的文件和目錄。

當我們安裝一個Linux發行版官方提供的軟體包時,大多安裝在這里。

如果有涉及伺服器配置文件的,會把配置文件安裝在/etc目錄中。

6. linux文件系統類型

Linux系統核心支持十多種文件系統類型:jfs,ReiserFS,ext,ext2,ext3,iso9660,xfs,minx,msdos,umsdos,Vfat,NTFS,Hpfs,Nfs,smb,sysv,proc等.Linux最早引入的文件系統類型是MINIX。
MINIX文件系統由MINIX操作系統定義,有一定的局限性,如文件名最長14個字元,文件最長64M位元組。第一個專門為Linux設計的文件系統是EXT(ExtendedFileSystem),但目前流行最廣的是EXT4。

7. linux支持的文件系統有哪些

比如Btrfs、JFS、ReiserFS、ext、ext2、ext3、ext4、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。

Linux操作系統使用虛擬文件系統(VFS)向上和用戶進程文件訪問系統調用介面,向下和具體不同文件系統的實現介面。VFS屏蔽了具體文件的實現細節,向上提供統一的操作介面。通過VFS可以實現任意的文件系統,這些文件系統通過文件訪問系統調用都可以訪問。所以Linux系統核心可以支持十多種文件系統類型。

(7)linux實現文件系統擴展閱讀:

EXT是延伸文件系統(英語:Extended file system,縮寫為 ext或 ext1),也譯為擴展文件系統,一種文件系統,於1992年4月發表,是為linux核心所做的第一個文件系統。採用Unix文件系統(UFS)的元數據結構,以克服MINIX文件系統性能不佳的問題。它是在linux上,第一個利用虛擬文件系統實現出的文件系統,在linux核心0.96c版中首次加入支持,最大可支持2GB的文件系統

EXT3是第三代擴展文件系統(英語:Third extended filesystem,縮寫為ext3),是一個日誌文件系統,常用於Linux操作系統。它是很多Linux發行版的默認文件系統。Stephen Tweedie在1999年2月的內核郵件列表中,最早顯示了他使用擴展的ext2,該文件系統從2.4.15版本的內核開始,合並到內核主線中。

8. Linux裡面文件系統有哪些

Linux系統是現在非常受歡迎的操作系統,在Linux之中,一切都是文件,因為有很多操作都是依靠文件系統才可以完成的,而且文件系統可以滿足用戶正常的使用,那麼Linux中常見的文件系統有哪些?為大家介紹一下。
總體來說,在Linux之中,系統能夠支持的文件系統要比Windows系統多很多,達到數十種,所以說Linux系統也是非常出色的操作系統。Linux中常見的文件系統介紹:
1、Ext3:是一款日誌文件系統,能夠在系統異常的情況下避免文件系統資料丟失,並且能夠修復數據的不一致以及錯誤,同時,當硬碟容量較大的時候,所需要的修復時間也會增長,無法保證百分之百資料不會丟失,將整體磁碟的每個寫入動作細節預先記錄,避免發生異常的時候可追蹤到被中斷的部分,嘗試修補。
2、Ext4:是上一個的改進版本,是RHEL
6系統中的默認文件管理系統,支持存儲容量達到了1EB,同時還能夠無限多的子目錄,另外文件系統能夠批量分配block塊,從而極大地提高了讀寫效率。
3、XFS:是一個高性能的日誌文件系統,而且是RHEL
7中默認的文件管理系統,優勢就是在於發生意外可以快速回復可能被破壞的文件,強大的日誌功能只需要花費較低的計算和存儲性能,最大支持存儲容量18EB,幾乎滿足多種需求。

9. 如何製作 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,我自己用的如下:
crw-rw-rw- 1 root root 5, 1 2006-02-24 13:12 console crw-rw-rw- 1 root root 5, 64 2006-02-24 13:12 cua0 crw-rw-rw- 1 root root 63, 0 2006-02-24 13:12 dk0 crw-rw-rw- 1 root root 63, 1 2006-02-24 13:12 dk1 drwxr-xr-x 2 root root 4096 2006-02-24 13:12 flash brw-rw-rw- 1 root root 3, 0 2006-02-24 13:12 hda crw-rw-rw- 1 root root 36, 10 2006-02-24 13:12 ipsec crw-rw-rw- 1 root root 241, 0 2006-02-24 13:12 ixNpe crw-rw-rw- 1 root root 1, 2 2006-02-24 13:12 kmem crw-rw-rw- 1 root root 126, 0 2006-02-24 13:12 ledman lrwxrwxrwx 1 root root 16 2007-09-19 14:08 log -> /tmp/var/log/log crw-rw-rw- 1 root root 1, 1 2006-02-24 13:12 mem crw-rw-rw- 1 root root 90, 0 2006-02-24 13:12 mtd0 brw-rw-rw- 1 root root 31, 0 2006-02-24 13:12 mtdblock0 brw-rw-rw- 1 root root 31, 1 2006-02-24 13:12 mtdblock1 brw-rw-rw- 1 root root 31, 2 2006-02-24 13:12 mtdblock2 brw-rw-rw- 1 root root 31, 3 2006-02-24 13:12 mtdblock3 brw-rw-rw- 1 root root 31, 4 2006-02-24 13:12 mtdblock4 brw-rw-rw- 1 root root 31, 5 2006-02-24 13:12 mtdblock5 brw-rw-rw- 1 root root 31, 6 2006-02-24 13:12 mtdblock6 crw-rw-rw- 1 root root 90, 1 2006-02-24 13:12 mtdr0 crw-rw-rw- 1 root root 1, 3 2006-02-24 13:12 null crw-rw-rw- 1 root root 108, 0 2006-02-24 13:12 ppp crw-r——r—— 1 root root 5, 2 2006-03-29 15:56 ptmx drwxr-xr-x 2 root root 4096 2006-03-29 15:56 pts crw-rw-rw- 1 root root 2, 0 2006-02-24 13:12 ptyp0 brw-rw-rw- 1 root root 1, 0 2006-02-24 13:12 ram0 crw-rw-rw- 1 root root 1, 8 2006-02-24 13:12 random crw-rw-rw- 1 root root 5, 0 2006-02-24 13:12 tty crw-rw-rw- 1 root root 4, 0 2006-02-24 13:12 tty0 crw-rw-rw- 1 root root 3, 0 2006-02-24 13:12 ttyp0 crw-rw-rw- 1 root root 4, 64 2006-02-24 13:12 ttyS0 crw-rw-rw- 1 root root 1, 9 2006-02-24 13:12 urandom 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
[NextPage]
7、同樣/usr/bin下面也是busybox的link
basename dirname env free id logger reset tail tr tty uptime which xargs
awk cut 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
#!/bin/sh export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/sbin/scripts UTC=yes mount -n -t proc proc /proc mount -n -t ramfs ramfs /tmp mount -n -t devpts devpts /dev/pts # build var directories /bin/mkdir -m 0777 /tmp/var /bin/mkdir -m 0777 /var/lock /bin/mkdir -m 0777 /var/log /bin/mkdir -m 0777 /var/run /bin/mkdir -m 0777 /var/tmp #/bin/mkdir -m 0777 /tmp/etc #/bin/cp -a /usr/etc//etc #/bin/cp -a /usr/dev//dev/ # loads the NPE ethernet moles into the kernel. insmod /lib/moles/2.6.13.2/intel/ixp400.ko # Firmware code for NPE Engine. cat /etc/IxNpeMicrocode.dat > /dev/ixNpe insmod /lib/moles/2.6.13.2/intel/ixp400_eth.ko netdev_max_backlog=500 insmod /lib/moles/led.ko insmod /lib/moles/push_button.ko下面的具體應用沒有再舉例加上了,這個是系統init必須的。
其他的情況類似如此了,下面裡面給了一個lunksys的GPL項目的target.

四、生成一個ramdisk
#!/bin/sh MODULE_NAME=ramdisk RAMPATH=`pwd` TMPPATH=${RAMPATH}/tmp SOURCE=${RAMPATH}/……/target if [ ! -d ${TMPPATH} ] then mkdir ${TMPPATH} fi if [ `whoami` != 'root' ] then { echo "You should run the shell as root, Please rerun as a root." echo "Aborting." exit 1 } fi # Clear in tmp path rm -rf ${TMPPATH}/tmpmnt rm -rf ${TMPPATH}/ramrootfs mkdir ${TMPPATH}/tmpmnt # Clear the old ramdisk rm -f ${RAMPATH}/$MODULE_NAME # Make a temp file which size is suitable dd if=/dev/zero of=${TMPPATH}/ramrootfs bs=1k count=6144 # Create a ext2 filesystem mke2fs -F -m 0 -i 2000 ${TMPPATH}/ramrootfs # Mount it to tmpmnt/ mount -o loop -t ext2 ${TMPPATH}/ramrootfs ${TMPPATH}/tmpmnt # Copy everything from kernel to this. cd ${TMPPATH}/tmpmnt echo ${SOURCE} cp -av ${SOURCE}/. cd ${TMPPATH} # Unmount it the ext2 filesystem umount ${TMPPATH}/tmpmnt cat ${TMPPATH}/ramrootfs | gzip -9 > /${RAMPATH}/ramdisk echo Copying ramdisk image to ${RAMPATH} 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方面,請大家多注意這兩方面。

10. 如何在Linux上實現文件系統的自動檢查和修復

我在本教程中將介紹如何藉助fsck工具,實現文件系統的自動檢查。

系統一啟動,就觸發文件系統自動檢查機制

如果你希望系統一啟動,就自動觸發fsck,那麼有一些方法可以設置在啟動過程中實現無人值守的fschk,這些方法具體取決於特定的Linux發行版。

在Debian、Ubuntu或Linux Mint上,編輯/etc/default/rcS,如下所示。

$ sudo vi /etc/default/rcS
# 啟動過程中,自動修復出現不一致性的文件系統

FSCKFIX=yes
在CentOS上,使用下列內容,編輯/etc/sysconfig/autofsck(要是它沒有,就創建)。

$ sudo vi /etc/sysconfig/autofsck
AUTOFSCK_DEF_CHECK=yes
強制定期檢查文件系統

如果文件系統很龐大,你可以強制定期檢查文件系統,而不是每次系統啟動時檢查文件系統。為了實現這個操作,先要藉助tune2fs命令,找到文件系統配置。下面這個命令行顯示了文件系統相關參數的當前值。請注意:/dev/sda1是文件系統超級塊所在的分區。

$ sudo tune2fs -l /dev/sda1

從tune2fs的輸出結果中,我們不僅可以看到文件系統的狀態(干凈與否),還可以看到與文件系統檢查有關的一些參數。"Maximum mount count"(最大掛載次數)這個參數是指文件系統檢查被觸發後的掛載次數。"Check interval"(檢查時間間隔)這個參數顯示了兩次文件系統檢查之間的最長時間。在大多數Linux發行版上,這些參數並不是默認情況下被設置的,這意味著並不進行任何定期的文件系統檢查。

如果想強制每隔30次掛載就檢查文件系統,請運行下面這個命令。

$ sudo tune2fs -c 30 /dev/sda1
如果想強制每隔3個月就檢查文件系統,請使用下面這個命令。

$ sudo tune2fs -i 3m /dev/sda1
現在確認剛添加上去的文件系統檢查條件已正確設置。

$ sudo tune2fs -l /dev/sda1
. . .
Last mount time: n/a
Last write time: Fri Mar 14 22:29:24 2014
Mount count: 20
Maximum mount count: 30
Last checked: Mon Mar 3 20:55:08 2014
Check interval: (3 months)
Next check after: Sun Jun 1 21:55:08 2014
強制下一次系統重啟時,進行一次性的文件系統檢查

如果你想在下一次系統重啟時觸發一次性的文件系統檢查,可以使用這個命令。

$ sudo touch /forcefsck
一旦你在類似上面的頂層目錄(/)中創建了一個名為forcefsck的空文件,它就會在你下一次重啟時,強制進行文件系統檢查。系統成功啟動後,/forcefsck則會自動被清除。

閱讀全文

與linux實現文件系統相關的資料

熱點內容
本地電腦怎麼設置傳奇伺服器 瀏覽:1000
安卓10框架怎麼製作 瀏覽:957
程序員退休工資待遇 瀏覽:607
湛江中文編程數控系統代理 瀏覽:417
openglandroid書 瀏覽:170
奇妙組件安卓版叫什麼 瀏覽:729
微信授權什麼app權重最高 瀏覽:11
php循環數組foreach 瀏覽:78
zip和app有什麼區別 瀏覽:633
乖法快速演算法 瀏覽:871
日本程序員一年工資 瀏覽:199
出國做程序員怎麼樣 瀏覽:735
rar鎖定壓縮文件 瀏覽:871
安卓id號碼怎麼更換 瀏覽:524
db2如何連接伺服器資料庫 瀏覽:630
wordtopdf轉換 瀏覽:840
雲伺服器在哪設置ftp 瀏覽:622
黑客社會工程學攻擊pdf 瀏覽:998
專業中穎單片機程序開發 瀏覽:426
python多進程多線程實例 瀏覽:639