Linux操作系統 文件系統課件_第1頁
Linux操作系統 文件系統課件_第2頁
Linux操作系統 文件系統課件_第3頁
Linux操作系統 文件系統課件_第4頁
Linux操作系統 文件系統課件_第5頁
已閱讀5頁,還剩47頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Linux操作系統

內容提要1.Linux文件系統概況1.1Linux文件系統的結構1.2Linux文件系統的類型1.2Linux文件系統的構成2.Linux文件系統管理2.1建立文件系統fdiskmke2fsmkswap2.2掛裝和卸載硬盤分區2.3使用/etc/fstab文件2.4使用fsck工具程序進行文件系統恢復2.5文件系統配額管理1.Linux——文件系統Linux是建立在文件系統的基礎上的。文件系統是對磁盤進行組織,在扇區和磁道組成的物理基礎上提供抽象操作層面的機制。磁盤管理要處理以下任務建立硬盤分區、建立文件系統、引導系統時自動掛裝文件系統、以及發生系統崩潰之后如何對它們進行恢復等等。掛裝網絡文件系統、硬盤空間配額管理、自動掛裝(automounter)子系統等等。1.1Linux文件系統介紹(1)/bin:該目錄用于存放用戶命令。

目錄

/usr/bin

中也存放了一些用戶命令。

(2)/sbin:該目錄用于存放許多系統命令,例如

shutdown。目錄

/usr/bin

中也包括了許多系統命令。

(3)/root:該目錄用于存放根用戶(超級用戶)的主目錄。

(4)/mnt:該目錄主要用于存放系統引導后被掛載的文件系統的掛載點。(5)/boot:該目錄用于存放內核和其它系統啟動時使用的文件。(6)/lost+found:該目錄被fsck用于存放零散文件(沒有名稱的文件)。(7)/lib:該目錄用于存放被

/bin

/sbin

中的程序使用的庫文件。

目錄

/usr/bin

中含有更多庫文件。

(8)/dev:該目錄用于存放設備文件。1.1Linux文件系統介紹(9)/etc:該目錄用于存放許多配置文件和目錄。

(10)/var:該目錄用于存放系統中不斷擴充、變化的文件,例如日志文件和鎖定文件。

(11)/usr:該目錄用于存放與系統用戶直接有關的文件和目錄。

(12)/proc:該目錄是一個虛擬的文件系統(不是實際貯存在磁盤上的),它包括被某些程序使用的系統信息。(13)/initrd:該目錄用于存放在計算機啟動時掛載

initrd.img

映像文件的目錄以及載入所需的設備模塊。

(14)/tmp:該目錄用于存放用戶程序運行時所產生或保存的一些臨時文件。

/tmp

有全局讀寫權。

(15)/home:該目錄用于存放用戶主目錄的位置。

1.2Linux文件類型普通文件

目錄文件

特殊文件

文件鏈接

1.3文件系統的構成Linux的缺省文件系統ext2的全部抽象操作層面的構成和管理操作。i-結點超級塊1.3文件系統的構成:i-結點UNIX文件系統最基礎的材料是i-結點(i-node)i-結點是一個包含著指針的控制結構,其中的指針要么指向其他i-結點,要么指向數據塊。i-結點中的控制信息包括文件的所有者、訪問權限、長度、最后一次存取時間、建立時間、用戶分組GID號等等/usr/src/linux/include/linux/ext2-fs.h文件中可以查到完整的內核數據結構i-結點中沒有保存的東西就是文件名。子目錄本身就是文件的一種特殊形式。這就意味著每一個子目錄都有一個i-結點,i-結點指向的數據塊中包含子目錄所有文件的信息資料。1.3文件系統的構成:i-結點ext2文件系統中i-結點和數據塊的組織結構。2管理文件系統2.1建立文件系統fdiskmke2fsmkswap2.2掛裝和卸載硬盤分區2.3使用/etc/fstab文件2.4使用fsck工具程序進行文件系統恢復2.5文件系統配額管理2.1建立文件系統BlockDeviceNamingMostblockdevicesarelocatedin/devSCSIdisksDiskorlogicalvolume:sd[a-iv]Primarypartitions:sda[1-4]Logicalpartitions:sda[5-15]IDEdisksDiskorlogicalvolume:hd[a-t]Primarypartitions:hda[1-4]Logicalpartitions:hda[5-31]2.1建立文件系統分區檢查新設備,可以使用下列命令fdisk-l/proc/diskstats>dmesgfdisk命令對硬盤做分區#fdisk[device]fdisk里的常用命令atoggleabootableflagddeleteapartitionmprintthismenunaddanewpartitionpprintthepartitiontableqquitwithoutsavingchangestchangeapartition'ssystemid82LinuxSwap83LinuxwwritetabletodiskandexitCreatingLogicalPartitions#/sbin/fdisk/dev/sdeCommand(mforhelp):nCommandactionllogical(5orover)pprimarypartition(1-4)lFirstcylinder(1-1020,default1):Usingdefaultvalue1Lastcylinderor+sizeor+sizeMor+sizeK(1-1020,default1020):+5mCommand(mforhelp):pDisk/dev/sde:232heads,62sectors,1020cylindersUnits=cylindersof14384*512bytesDeviceBootStartEndBlocksIdSystem/dev/sde11102073358095Extended/dev/sde511713083LinuxListingPartitions#cat/proc/partitionsmajorminor#blocksnameriormerge…808281507sda…818281476sda1…8164192965sdb…8172048256sdb1…8182048287sdb2…8329430155sdc…8339430123sdc1…8489430155sdd…8494715046sdd1…8504715077sdd2… 220252290hdc…2.1建立文件系統/sbin/mkfs

格式化分區–t指定文件系統類型如:Ext2:

#mkfs–text2/dev/sdb1Ext3:

#mkfs–j/dev/sdb1或使用/sbin/mkfs.<fstype>代替mke2fs建立ext2/3文件系統;#mke2fs/dev/hdb3#mke2fs-jext3/dev/hdb3Swap分區配置mkswap建立swap文件系統。使用mkswap命令設置swap空間也同樣簡明。唯一的參數是在其上建立swap空間的分區名稱。如果想在/dev/hdb2上建立swap空間,需要輸入下面的命令:#mks物理內存的2倍,或大于2GB獲得swap分區信息:#/sbin/swapon-sTypeSizeUsedPriority/dev/sda5partition20964400-1/dev/sda6partition20964400-2/proc/procisavirtualProvidesaninstantaneousviewoftheoperationofthesystem/proc/meminfo,/proc/mounts,/proc/partitionsCanbeviewedwithcat,more,lessCanbeusedtoconfigurekernelparametersSettableparametersarebelow/proc/sysCanbesetwithechoorviasysctlshmfsMounttmpfson/dev/shmviafstabOption“size=8g”means8GBOption“size=??”canbelargerthanphysicalRAMRequiredbyOracleforVLMmodeOnlyusedforbuffercacheNeverusedinnon-VLMmode創建裸設備Createpartitionsoftype“Linux”(typeid=83)Use/sbin/rawtobindrawdevicewithapartitionExamples:#/sbin/raw/dev/raw/raw1/dev/sdc1#/sbin/raw/dev/raw/raw1833Giveoracleuserownershipofrawdevice:#chownoracle:dba/dev/raw/raw1BindingsarenotpersistentacrossrebootUse/etc/sysconfig/rawdevicesSystemVSharedMemoryUsedbyOraclefortheSGAMayhavemultiplesegmentsifshmmaxislowNormallyallsegmentsdeletedatshutdownIfinstancecrashes,segmentsmayhangaroundToviewexistingsegments:/usr/bin/ipcsTomanuallyremoveasegment:/usr/bin/ipcrmshm<shm_id>2.2使用mount命令One-timeMountsmount[options]devicedirectory用于mount選項:

-o命令的參數如下所示下面的mount命令把/dev/hda3分區以只讀屬性掛裝到/usr子目錄上:[root@ford/root]#mount-oro/dev/hda3/usr-a把/etc/fstab文件(本小節后面介紹)中列出的文件系統都掛裝上-tfstype定義掛裝的文件系統類型。mount命令通常可以自己檢測出這類信息,例外:OCFS-ooptions定義作用于掛裝過程的選項。它們通常是一些與文件系統類型有關的選項(掛裝網絡文件系統的選項不能夠用來掛裝本地文件系統)/bin/mount/dev/sdb1/oracle2.2使用mount命令掛載光盤mount–tiso9660/dev/cdrom/dir掛載iso文件(LoopbackMounts)mount-oloop,ro[isofile]/[dir]mount–tiso9660–oloop/img/cd_1.iso/mnt/cdrom掛載samba文件mount-tsmbfs-ousername=usr,password=pwd//host/folder/[dir]Etc/fstab://host/folder/dirsmbfsusername=user,password=pwd12Mountdir掛載NFS文件mount[host]:/[dir]/[dir]2.2使用mount命令mount-o命令的參數說明ro以只讀屬性掛裝該分區rw以讀-寫屬性掛裝該分區(缺省值)exec允許二進制代碼的執行(缺省值)noatime禁止刷新i-結點上的存取時間。用于存取時間不重要的分區(比如新聞隊列),可以提高性能noauto如果使用了-a參數,禁止這個分區的自動掛裝(只作用于/etc/fstab文件)nosuid禁止setuid程序的應用程序對此掛裝分區置位sb=n告訴mount命令對一個ext2文件系統使用第n個數據塊作為超級塊2.2卸載文件系統如果想卸載一個文件系統,使用umount命令。下面是這個命令的格式:umount[-f]directory其中的directory是準備卸載的子目錄名。如下所示:[root@test/root]#umount/usr把掛裝在/usr子目錄位置上的分區卸載下來。2.2卸載文件系統umount命令不足之處:如果文件系統正在使用中(也就是說有人在那個分區上打開了文件),就無法把這個文件系統卸載下來。有三種方法可以用來解決這個問題:使用lsof程序或者fuser程序檢查有哪些進程打開了文件,終止那些進程的運行或者讓進程的所有者停止操作。如果選擇終止那些進程的運行,一定要明白自己在做些什么。umount-f參數強制執行卸載操作。任何在這個分區上打開的進程都將被掛起來,可能會造成數據丟失。最安全和適當的辦法是把系統調整為單用戶模式,然后再卸載這個文件系統。在現實生活里,你可能不會總有這個奢侈之舉。2.3/etc/fstab文件/etc/fstab是一個mount命令可以利用的配置文件。這個文件包含著一個系統中全部已知硬盤分區的清單。在引導過程中,這個清單被讀出,其中包含的各個分區都被自動掛裝到系統上。下面是/etc/fstab文件中數據項的格式,下表定義了/etc/fstab數據項的各組成元素。/dev/device/dir/to/mountfstypeparametersfs_freqfs_passno掛載命令:mount/oraclemount/dev/sdb12.3/etc/fstab文件/etc/fstab文件的數據項說明/dev/device將被掛裝的分區比如dev/hda3/dir/to/mount:分區掛裝到其上的子目錄(比如/usr)fstype:文件系統的類型(比如ext2/ext3)parameters:mount命令-o參數的附加參數mountoptiondefaults缺省值noauto

防止啟動時自動加載fs_freq:數值類型,告訴dump命令備份這個文件系統的頻率fs_passno:數值類型,告訴fsck程序在引導時確定文件系統的檢查順序(請注意所有文件系統在掛裝之前都要被檢查)2.3/etc/fstab文件swap分區是虛擬內存駐留的地方。Linux的虛擬內存可以保存在根分區以外的另一個分區上。swap分區遵守的規則不同于普通的文件系統,所以這樣做可以提高性能。因為這個分區不需要備份或者在機器引導時由fsck程序檢查,所以最后的兩個參數都設置為0請注意swap還可以被保存為一個普通的磁盤文件。詳細資料請查閱mkswap命令的使用手冊頁.2.3/etc/fstab文件/proc文件系統和/proc聯系在一起的none數據項用來定義/proc文件系統。這是一個特殊的文件系統,它提供了一個到內核參數的接口,通過這個接口可以模擬任何其他的文件系統。雖然它看起來好像是保存在磁盤上的文件,其實它不是的—所有文件分別代表內核中的某些東西。最引人注目的是/dev/kcore,它實際上就是抽取成文件的系統內存映像。不熟悉/proc文件系統的人經常把它誤認為是一個沒用的大文件,錯誤地刪除了它,從而引起系統發生許多明顯的故障。除非你確實知道自己在干什么,否則最好還是把/proc中的文件留在那里別動。/dev/pts文件系統數據項/dev/pts,是一個新的機制,用來完善網絡終端支持(ptys)的實現。如果你打算讓你的主機支持通過rsh、telnet、rlogin或者ssh的遠程登錄,這個數據項就是必不可少的。2.4使用fsck程序fsck工具程序的名字是ChecK(文件系統檢查)的縮寫,它被用來診斷和修復在日常操作中可能已經損壞的文件系統。系統發生崩潰的時候,一般都來不及把內部緩沖區中的全部數據轉存到磁盤上,所以類似的修復通常是十分必要的。如果確實發現某個文件系統的操作行為與其正常情況不一樣(log日志是這類情況的最佳提示),你可能會在一個運轉著的系統上運行fsck程序。唯一的不足之處是:為了執行這個程序,需要診斷的文件系統必須先卸載下來。如果你選擇了這個方法,完成操作后別忘記把文件系統再掛裝上去。2.4使用fsck程序e2fsck注意fsck并不是ext2文件系統修復工具合適的名字;它實際上只是e2fsck的一個別名。fsck嘗試確定哪一個文件系統需要修復,然后再調用適當的修復工具程序,把我們傳遞給fsck的參數都傳遞過去。對ext2文件系統來說,真正的工具叫做e2fsck。當發生系統崩潰的時候,與其依靠其他應用程序替你調用e2fsck,還不如自己直接來調用它。2.4e2fsck的可用參數如果想在/dev/hda3文件系統上運行e2fsck,需要輸入下面的命令:[root@test/root]#e2fsck/dev/hda3強制進行文件系統檢查并對出現的全部提示都回答“

Yes”,需要輸入下面的命令:[root@test]#e2fsck-f-y/dev/hda32.4e2fsck的可用參數e2fsck的參數說明-bsuperblock讓e2fsck讀取分區信息的超級塊編號。大多數情況下,e2fsck可以在第一個數據塊中找到它,但是如果那個塊損壞了,就需要指定另外一個號碼。超級塊每隔8192個出現一次,因此第二個超級塊在8193、然后是16385等等-c在運行e2fsck之前先執行badblocks程序。它對整個硬盤按塊查找并校驗該塊的完整性。這是檢查硬盤最徹底的方法,但是花的時間比較多-f強制進行檢查,即使認為文件系統已經沒有問題了-y告訴e2fsck對e2fsck提示的問題全部自動回答為“Yes”2.4lost+found子目錄另外一個比較少見的情況是e2fsck找到了一些文件碎片,但是沒有辦法把它們恢復到原始文件中去。這種情況下,它會把這些碎片放到該分區的lost+found子目錄里。這個子目錄就在該分區掛裝的位置,因此如果分區/dev/hda3被掛裝在子目錄/usr上,那么子目錄/usr/lost+found就對應于分區/dev/hda3。任何東西都可以放到lost+found子目錄里—文件碎片、子目錄、甚至一些特殊文件。如果在這里找到了普通文件,可以看出它的所有者,你可以與該所有者聯系看他們是否還需要這些文件(他們通常都不需要)。如果在lost+found中遇到了子目錄,與其試圖從lost+found中重新建立它的結構,還不如從最近的備份中來恢復。lost+found子目錄至少可以告訴你有一些東西失去了定位。但是,這種錯誤實在太少見了。2.5硬盤空間配額的管理實現配額管理的準備工作設置配額管理配額2.5實現配額管理的準備工作第一步是配置系統使用硬盤配額的一次性設置工作,通過這個設置把實行配額管理所必須的軟件安排就位,以后每次開機時就進入預備狀態,第二步是在/etc/fstab文件中進行必要的設置,并在每個準備實行硬盤配額管理的分區里加上必須的文件。第二步的工作需要對每一個準備實行硬盤配額管理的分區分別進行設置操作。2.5設置引導過程大多數Linux發行版本(包括RedHat)都已經把對配額管理的支持作為標準安裝的一個部分預先設置好了。因此不必再對引導過程進行什么改動了。如果想啟動配額管理程序,在用戶的引導腳本程序末尾(rc.local是個不錯的選擇)加上下面這幾行語句:2.5配置各個分區對每個準備實行硬盤配額管理的分區,需要進行三項設置:usrquota參數、grpquota參數和配額數據庫。?usrquota參數編輯/etc/fstab文件,在每一個需要配額的硬盤分區的掛裝參數里加上usrquota參數。舉例來說,假設/dev/hda5掛裝到/home子目錄,現在準備對這個子目錄設置用戶配額,/etc/fstab文件中的對應數據項應該修改為如下所示的樣子:/dev/hda5/homeext2defaults,usrquota11?grpquota參數需要用戶分組配額支持的硬盤分區對應的/etc/fstab文件中的數據項應該有grpquota參數,與剛才介紹的usrquota參數一樣(請注意同時設置這兩個參數是可以的)。?

配額數據庫建立相應的數據庫文件保存用戶和用戶分組配額信息。這些文件是空的,它們被放置在每一個實行配額的硬盤分區的根目錄下;只有根用戶才能讀取它們的內容;而且必須給它們起名為quota.user和quota.group。2.5設置配額無論是對用戶還是對用戶分組,建立、修改和刪除配額的操作都是由edquota命令來完成的。首先學習幾個術語:軟限制:這個限制作用于用戶或者用戶分組。如果用戶的賬戶超過了軟限制,就開始進入限制期,也就是這個賬戶在超過軟限制后還能存在多長的時間。在這個期間,用戶會收到警告他們的賬戶超標的消息。硬限制:這個限制是由操作系統實行的,不允許超過。試圖在硬限制以外進行數據寫操作會被拒絕。限制期(時間限制):當用戶的賬戶超過軟限制的時候,時鐘開始計時。在限制期結束之前,用戶是無法再訪問這個賬戶的。這個限制期的長度因系統而異,通常會是一個星期。如果不想讓這個賬戶被禁用,用戶需要刪除或者壓縮文件,使自己的硬盤空間消耗量降低到軟限制以下。2.5edquota的命令行參數當管理單個用戶的配額時,edquota命令只有三個參數,如下所示:#edquota[option][user]-ulogin為參數定義的用戶設置配額數據#edquota-uheidi-t為硬盤分區設置限制期。把它與-u或者-g參數聯合使用可以分別為用戶或者用戶分組全部設置好限制期。請注意:如果用戶/用戶分組在同一個分區上,它們就不能有不同的限制期-ggroup為參數定義的用戶分組設置配額數據-plogin允許把一個用戶的配額資料(用戶名為login)克隆給另外一個用戶。這個參數必須與-u參數合用#edquota-pjyomebosze臨時文件.edquota命令編輯這些信息時會給其臨時文件起一個唯一的名字。保存這個臨時文件—不要把這些信息寫到quota.user或者quota.group文件上!edquota命令會把這些信息自動調整到這兩個文件里去。2.5edquota命令示范各項限制的值都是0,表示此時在heidi的賬戶上還沒有設置任何配額。請注意:對i-結點和數據塊都可以進行限制。別忘了Linux中的數據塊的長度是1K字節,而i-結點則是保存文件所必須的控制信息。每個文件一般

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論