熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Linux 磁碟與硬體管理

2022-06-13   來源: Oracle 

  認識硬碟
  讓我們再來復習一下 硬碟 裡面有什麼東西值得我們來討論的!
  ·物理組成
  就物理組成來說硬碟是由多個硬碟盤所組成的而每一個硬碟盤上面都有個磁頭( Head )在進行該硬碟盤上面的讀寫工作而當磁頭固定不動硬碟盤轉一圈所畫出來的圓就是所謂的磁軌( Track )全部硬碟盤上面同一個磁軌組成了磁柱( Cylinder )這個磁柱也是磁碟分割( partition )時最小的單位了!另外由圓心向半徑方向劃直線而每個 Track 上面細分成一個一個的磁區( Sector )那就是最小的磁碟儲存物理量了一個 Sector 通常為 Bytes 這就是整個硬碟的構造啰那麼如果以硬碟的 filesystem 來做為檢視呢?你可以簡單的這樣想啦一個 Partition 當中就具有一個 filesystem ( 檔案系統 ) 啰!那麼一個 partition 當中能不能具有兩個 filesystem 呢?理論上應該是不行的!因為每個檔案系統都有其獨特的支援方式例如 Linux 的 ext 就無法被 Windows 系統所讀取!而你將一個 partition 格式化的時候總不能格式化為 ext 也同時格式化為 fat 吧?!那是不可能的啊!底下來談一談關於檔案系統的相關功能吧!
  ·Filesystem
  在進行磁碟格式化或者是分割的時候都會需要知道磁碟的一些基本的名詞定義主要有
  o 主要開機磁區( Master Boot Recorder MBR )主要開機磁區可以說是一顆硬碟裡面最重要的地方了怎麼說呢?因為他記錄了所有硬碟的分割資訊以及開機的時候可以進行開機管理程式的寫入等等如果一顆硬碟的 MBR 死掉了那麼這顆硬碟幾乎就可以說是壽終正寢了~那麼 MBR 有什麼限制呢?他最大的限制來自於他的大小不夠大到儲存所有的資訊因此他僅提供最多四個 partition 的記憶這就是所謂的 Primary (P)與 Extended (E)磁區最多相加只能有四個的原因了所以說如果你預計分割超過 個 partition 的話那麼勢必需要使用 P + E 並且將所有的剩余空間都撥給 Extended 才行( 記得呦! Extended 最多只能有一個 )否則只要 P + E 之後還有剩下的空間那麼那些容量將成為廢物而浪費了?所以結論就是『如果您要分割硬碟時並且已經預計規劃使用掉 MBR 所提供的 個 partition ( P + E 或 P )那麼磁碟的全部容量需要使用光否則剩下的容量也不能再被使用』不過如果您僅是分割出 P + E 的話那麼剩下的空間就還能再分割兩個 partition !
  o 區塊( Block )檔案在磁碟當中會被儲存在一個固定的大小區塊中那就是 Block 而 Block 的大小通常為 的次方其中由於磁碟的磁區物理量通常為 K ( Bytes )所以 Block 通常規劃為 K 的倍數例如 EXT 預設 Block 為 K 即是一例!其中需要特別留意的地方是一個 Block 最多僅能容納一個檔案所以當一個檔案不足 K 時例如大小僅為 K 那麼剩下的 K 容量將會被浪費掉這與 inode 也有一定的相關性!因此在規劃您的磁碟時需要留意到您主機的用途來進行規劃較佳!與此同時若 Block 規劃的太小則磁碟的 Block 數目會大增而造成 inode 在指向 block 時候的一些搜尋時間的增加又會造成大檔案讀寫方面的效率較差這也與 inode 有一定程度的相關性呢!需要特別留意的是『當系統讀取了某一個檔案則該檔案所在的區塊資料會被載入到記憶體當中所以該磁碟區塊就會被放置在主記憶體的緩沖快取區中若這些區塊的資料被改變時剛開始資料僅有主記憶體的區塊資料會被改變而且在緩沖區當中的區塊資料會被標記為 Dirty 這個時候磁碟實體區塊尚未被修正!所以亦即表示這些 Dirty 區塊的資料必需寫到磁碟當中以維持磁碟實體區塊上的資料與主記憶體中的區塊資料的一致性』這也是為什麼當 Linux 系統不正常關機或者是突發性的跳電時總是會造成系統在磁碟檢驗上面大花時間的原因了!
  o Superblock當我們在進行磁碟分割( partition )時每個磁碟分割槽( partition )就是一個檔案系統( filesystem )而每個檔案系統開始的位置的那個 block 就稱為 superblock superblock的作用是儲存像是檔案系統的大小空的和填滿的區塊以及他各自的總數和其他諸如此類的資訊等等這也就是說當您要使用這一個磁碟分割槽( 或者說是檔案系統 )來進行資料存取的時候第一個要經過的就是 superblock 這個區塊了所以啰 superblock 壞了您的這個磁碟槽大概也就回天乏術了!
  o Inode: 在 Linux 檔案與目錄管理 當中我們提到了很多的 inode 概念這裡在加重補強一下說明對於檔案系統而言一個inode是在inode tables 中的一個項目Inode包含了所有檔案有關的資訊例如名稱大小連接的數量資料建立之日期修改及存取的時間它也包含了磁碟區塊的檔案指向(pointer)pointer是用來記錄檔案被儲存在何處對於 inode 的規劃方面我們可以使用 mkefs 來進行
  大致上硬碟就有這些東西您還得了解每一個 filesystem 就是一個磁碟分割槽免得到時候底下講的東西太混亂時造成您的困擾那就不好意思啦!
  查看硬碟或目錄的容量
  好了!那麼在文字介面底下有什麼方法可以查看目前的磁碟最大容許容量已經使用掉的容量目前所在目錄的已使用容量?還有還有怎麼知道目前目錄底下使用掉的硬碟容量呢?以及如何查詢目前的 inodes 數目?呵呵!底下我們就來談一談主要的兩個指令
  df 查看以掛載磁碟的總容量使用容量與 inode 等等
  du 查看檔案使用掉的容量有多少?
  
  · df
  語法
  [root @tsai /root ]# df [ikm] 參數說明 i: 使用 inodes 顯示結果 k: 使用 KBytes 顯示結果 m: 使用 MBytes 顯示結果 范例 [root @test /root ]# df k    <==以 KB 顯示磁碟空間 Filesystem      1k-blocks   Used Available Use% Mounted on /dev/hda1       2118832  904600  1106600 45% / /dev/hda3        497861   37525  434632  8% /disk1 none           31220     0   31220  0% /dev/shm /dev/hda5        101089   4127   91743  5% /proxy1 /dev/hda6        101089   4127   91743  5% /proxy2 /dev/hda2       1004052   38360  914688  5% /var /dev/fd0         1423   1405    19 99% /mnt/floppy
  說明:
  這是用來顯示目前磁碟空間的指令!需要注意的是,由於我們的檔案或者是外掛的磁碟都是加在『 / 』底下,所以當根目錄沒有空間的時後,嘿嘿!你的 Linux 系統大概就是掛了吧~(說個笑話!當初我們系上有個研究生在管理 Sun 的工作站,是別研究室的,他的硬碟明明有好幾 GB ,但是就是沒有辦法將幾 MB 的資料 copy 進去,他就去跟老板講說機器壞了!嘿!明明才來維護過幾天而已為何會壞了!結果老板將維護商叫來罵了 2 小時左右吧!後來,維護商發現原來硬碟的『總空間』還有很多,只是某個磁區填滿了,偏偏該研究生就是要將資料 copy 去那個磁區!呵呵!後來那個研究生就被命令『再也不許碰 Sun 主機』了~~)當然啰!你可以將你的資料放置在加掛的硬碟中,那麼如何知道目前哪一個磁碟還有多少空間呢?!
  
  這裡要請大家再復習一下,我們的硬碟磁區規劃中, primary 磁區每一顆硬碟只允許 4 個,其他的就放置在 Extended 磁區中了!而,硬碟的代號與 IDE 的插槽是有關系的!如果忘記了,那就回去 安裝 Linux
  那一章復習一下吧!好了!假設我只有一棵硬碟,且放在 IDE 的 mater ,那麼我的硬碟就是 /dev/hda 啰!而在這顆硬碟中的分割磁區就可以由 /dev/hda1 開始向上加!
  
  OK,那麼使用 df -k 之後,出現的上面的資料中,可以知道我的硬碟更分為 /dev/hda1, /dev/hda2, /dev/hda3, /dev/hda5 與 /dev/hda6 ,咦! /dev/hda4 跑去哪裡了!呵呵!其實 /dev/hda4 通常就是 Extended 磁區啦!而後面的 /dev/hda5, /dev/hda6 等磁區就是由 /dev/hda4 所切出來的!所以 /dev/hda5 + /dev/hda6 = /dev/hda4 !當然,如果還有沒有顯示出來的,例如 Swap ,則 /dev/hda4 還有可能更大呦!
  那麼來解釋一下上面的資料吧!
  · Filesystem:說的是磁區啦!另外,如果你有加掛軟碟的話,那麼就會出現如上表中最後一行啰!
  · 1k-blocks:說明底下的數字單位是 1KB 呦!如果你使用 df -m 則這一欄會出現 1M-blocks 啰!
  · Used :顧名思義,就是使用掉的硬碟空間啦!
  · Available :也就是剩下的磁碟空間大小;
  · Use% :就是磁碟的使用率啦!如果使用率高達 90% 以上時,最好需要注意一下了,免得容量不足造成系統問題(例如最容易被灌爆的 /var/spool/mail 這個放置郵件的磁碟!)。tw.wiNgWIt.Com
  · Mounted on :就是磁碟掛載的目錄所在啦!例如 /dev/hda5 是掛載在 /proxy1 底下,而 /var 是 /dev/hda2 這個磁區啰!
  另外,需要注意的是,有的時後某些系統會出現 /proc 這個磁區,但是裡面的東西都是 0 ,不要緊張! /proc 的東西都是 Linux 系統所需要載入的系統資料,而且是掛載在『記憶體當中』的,有點像是以前 DOS 年代的虛擬硬碟啦!所以當然沒有占任何的硬碟空間啰!
  · du
  語法:
  [root @test /root ]# du [-abckms] [目錄名稱] 參數說明: [目錄名稱] 可以省略,如果省略的話,表示要統計目前所在目錄的檔案容量 -a  :全部的檔案與目錄都列出來!預設值是指列出目錄的值! -b  :列出的值以 bytes 輸出 -c  :最後加總 total ! -k  :列出的值
From:http://tw.wingwit.com/Article/program/Oracle/201311/17557.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.