Something for linux(boot+ext2)

1. 開機的過程
1.1 BIOS加載與檢測,找到第一個啓動設備進而找到尋找MBR
1.2 通過Bootloader(通常是grub)引導加載kernel,initrd【其中grub能定位到第幾塊磁盤的第幾個分區如(hd0,0)】)
     注:通常內核文件在/boot分區,如果不修改其內容,那麼該分區沒必要掛載
1.3 kernel文件解壓縮到內存,主動權從bios交接給內核,內核掛載根目錄,通過根目錄下的相關驅動程序來測試、驅動設備。
     注:如果根目錄在某些不可識別的磁盤上,如sata,那麼久通過initrd虛擬文件系統來加載相關驅動,進而識別這些磁盤,最後卸載虛擬文件系統而掛載真正的根目錄
1.4 執行相關init程序。啓動各種服務。

2.ext2文件系統
2.1 結構上由多個block group組成,每個block group由boot block,superblock,group description,block bitmap,iNode bitmap,inode table,data blocks。
2.2 超級塊包含很多信息,如塊大小,塊總數和已使用總數,節點總數和已使用總數以及節點大小(一般128字節)。佔1024字節。
2.3 組描述符包含信息有iNode table開始的塊號
2.4 節點表連續存着多個iNode。每個文件對應一個iNode。iNode包含該文件的相關信息,如訪問權限,所有者信息,還含有12個直接指針,1個一級指針,1個二級指針,1個三級指針(若一個block=1024B,那麼這些指針可指向約16G的文件)。指針都是指向data block的。
2.5 數據塊中存有iNode和file name的對應。可以根據路徑名找到相應的節點編號,根據文件名找到文件內容。

注:
1. 每個塊組中可以含有超級塊也可以不含有(有就是爲了備份,畢竟超級塊記錄着整個文件系統的信息),但位置是預留着的。不過第一個塊組必需有超級塊的內容。
2. boot block記錄該文件系統的引導內容。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章