磁盘文件系统、挂载
參考:https://zhuanlan.zhihu.com/p/106459445
https://blog.csdn.net/qq_39521554/article/details/79501714
文件系統(tǒng)
持久化的數(shù)據(jù)是存儲(chǔ)在外部磁盤上的,如果沒有文件系統(tǒng),訪問這些數(shù)據(jù)需要直接讀寫磁盤的sector,而文件系統(tǒng)存在的意義,就是能更有效的組織、管理和使用磁盤中的數(shù)據(jù)。
文件系統(tǒng)的組成
要管理,先劃分,因?yàn)榇疟P上的數(shù)據(jù)要和內(nèi)存交互,而內(nèi)存通常是以4KB為單位,所以從邏輯上,把磁盤按照4KB劃分比較方便。
被劃分的blocks中除了存儲(chǔ)文件自身的數(shù)據(jù)(user data)外,還需要存儲(chǔ)文件的訪問權(quán)限、大小、創(chuàng)建時(shí)間等控制信息(meta data),meta data存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)就是inode。inode是“index node”的簡(jiǎn)稱,早期的Unix系統(tǒng)中,這些nodes是通過數(shù)組組織起來的,因此要依靠index來索引數(shù)據(jù)中的inode。
同內(nèi)存分配一樣,當(dāng)有了新的數(shù)據(jù)產(chǎn)生時(shí),需要選擇一個(gè)空閑的block來存放數(shù)據(jù),還需要一個(gè)空閑的inode。最簡(jiǎn)單的辦法就是使用bitmap,包括記錄inode使用情況的bitmap(如圖中I),和記錄data block的bitmap(如圖中D)。還剩下一個(gè)block留給superblock(如圖中S),這個(gè)superblock包含了一個(gè)文件系統(tǒng)所有的控制信息,比如系統(tǒng)中有多少個(gè)inodes和data blocks、inode的信息起始于哪個(gè)block,可能還有一個(gè)區(qū)別不同文件系統(tǒng)類型的magic number。
掛載
文件系統(tǒng)生成后,還不能直接使用,需要借助mount操作,將這個(gè)文件系統(tǒng)加入到Linux的管理,這樣用戶才能看到并訪問。
linux下面所有的文件、目錄、設(shè)備都有一個(gè)路徑,這個(gè)路徑永遠(yuǎn)以/開頭,用/分隔,如果一個(gè)路徑是另一個(gè)路徑的前綴,則這兩個(gè)路徑有邏輯上的父子關(guān)系。
但是并不是所有邏輯上的父子關(guān)系都必須要是同一個(gè)設(shè)備,決定不同路徑對(duì)應(yīng)到哪個(gè)設(shè)備的機(jī)制就叫做mount(掛載)。通過mount,可以設(shè)置當(dāng)前的路徑與設(shè)備的對(duì)應(yīng)關(guān)系。
作者:靈劍
鏈接:https://www.zhihu.com/question/266907637/answer/315386532
來源:知乎
每個(gè)設(shè)備會(huì)設(shè)置一個(gè)掛載點(diǎn),掛載點(diǎn)是一個(gè)空目錄。一般來說必須有一個(gè)設(shè)備掛載在/這個(gè)根路徑下面,叫做rootfs。其他掛載點(diǎn)可以是/tmp,/boot,/dev等等,通過在rootfs上面創(chuàng)建一個(gè)空目錄然后用mount命令就可以將設(shè)備掛載到這個(gè)目錄上。掛載之后,這個(gè)目錄下的子路徑,就會(huì)映射到被掛載的設(shè)備里面。
其他
1.使用了 mount /dev/sdb1 ~/Share/ ,把新硬盤的區(qū)sdb1掛載到工作目錄的~/Share/文件夾下,之后訪問這個(gè)~/Share/文件夾就相當(dāng)于訪問這個(gè)硬盤2的sdb1分區(qū)了。對(duì)/Share/的任何操作,都相當(dāng)于對(duì)sdb1里文件的操作。所以Linux下,mount掛載的作用,就是將一個(gè)設(shè)備(通常是存儲(chǔ)設(shè)備)掛接到一個(gè)已存在的目錄上。訪問這個(gè)目錄就是訪問該存儲(chǔ)設(shè)備。
2.掛載就是把設(shè)備放在一個(gè)目錄下,讓系統(tǒng)知道怎么管理這個(gè)設(shè)備里的文件,了解這個(gè)存儲(chǔ)設(shè)備的可讀寫特性之類的過程。
3.我們不是有/dev/sdb1 嗎,直接對(duì)它操作不就行了?這不是它的目錄嗎?
這不是它的目錄。雖然/dev是個(gè)目錄,但/dev/sdb1不是目錄。可以發(fā)現(xiàn)ls /dev/sdb1無法執(zhí)行。/dev/sdb1,是一個(gè)類似指針的東西,指向這個(gè)分區(qū)的原始數(shù)據(jù)塊。mount前,系統(tǒng)并不知道這個(gè)數(shù)據(jù)塊哪部分?jǐn)?shù)據(jù)代表文件,如何對(duì)它們操作。
總結(jié)
- 上一篇: 刮痧多少钱一次
- 下一篇: 操作系统习题——第一章