簡介
Linux引導啟動時,默認使用的檔案系統是根檔案系統。其中一般都包括這樣一些子目錄:
/etc/,/dev/,/usr/,/usr/bin/,/bin/,/var/等。
etc/目錄主要含有一些系統配置檔案;dev/含有設備特殊檔案,用於使用檔案操作語句操作設備;/usr/存放庫函式、手冊和其它一些檔案。bin/存放執行程式;var/用於存放系統運行時可變的數據或者是日誌等信息。
存放檔案系統的設備就是檔案系統設備。比如,對於一般使用的windows2000作業系統,硬碟C糟就是檔案系統設備,而硬碟上按一定規則存放的檔案就組成檔案系統,windows2000有NTFS或FAT32等檔案系統。
相關資料
我認為根檔案系統就是一種目錄結構,那么根檔案系統和普通的檔案系統有什麼差別呢?我認為根檔案系統就是要包括Linux啟動時所必須的目錄和關鍵性的檔案,例如Linux啟動時都需要有init目錄下的相關檔案,在Linux掛載分區時Linux一定會找/etc/fstab這個掛載檔案等,根檔案系統中還包括了許多的套用程式bin目錄等,所有包括這些Linux系統啟動所必須的檔案都能成為根檔案系統。
Linux支持多種檔案系統類型,在嵌入式上常用的有:ROMFS,JFFS2,NFS,CRAMFS,YAFFS等等。在Linux系統中是通過mount命令來掛載不同的檔案系統。
在ARMLinux中常用的檔案系統的設定:
RAMDiskDriver+EXT2;
MTDDriver+JFFS2/yaffs;
NFS;
uclinux中常見的檔案系統設定為:
BlkmemDriver+ROMFS(支持NORFLASH);
RAMDiskDriver+ROMFS(不支持FLASH);
MTDDriver+JFFS2/YAFFS(支持多種flash);
建立根檔案系統的步驟:
1.創建根檔案系統目錄。
2.創建各種必要的系統檔案目錄。
3.創建設備檔案。
4.建立啟動相關的設定檔案。
5.編譯安裝庫檔案glibc/uclibc。
6.編譯busybox,安裝系統軟體和套用。
這裡重點要建立啟動相關的設定檔案(Linux-2.6):
創建/etc/inittab
::sysinit:/etc/init.d/rcS
::respawn:/sbin/getty115200s3c2410_serial0
::restart:/sbin/init
::shutdown:/bin/umount-a-r
創建/etc/init.d檔案
#!/bin/sh
mount-a
/etc/init.d/udevstart
mkdir/dev/pts
mount-tdevptsdevpts/dev/pts
hwclock--hctosys
ifupeth0