1. 程式人生 > >Linux 硬盤與硬件管理

Linux 硬盤與硬件管理

自動修復 entos ali 如果 訪問 xxx 字符 必須 由於

硬件以文件系統(Filesystem)角度來看

文件系統:一個可被掛載的數據稱為文件系統,每個操作系統可以使用的文件系統並不一樣,windows98是FAT或者FAT16文件系統,而windows2000以後有了NTFS文件系統,linux是ext2、ext3,現在出現了ext4。

文件系統通常將檔案的屬性和權限放置在inode中,至於實際數據則放置到data block中,另外還有一個超級區塊(superblock)會記錄整個文件系統的整體信息,包括inode與block的總量、 使用情況,剩余量等。

主引導扇區(master boot recorder,MBR)MBR:分區的一種方式,支持4個主分區或者1-3個主分區+一個擴展分區,其中擴展分區內可以分出多個邏輯分區。文件系統:操作系統用於明確磁盤分區內的文件的方法和數據結構。負責對文件的存儲進行劃分磁盤磁盤空間和標註位置。那些你看著是一個單獨的文件,可能在你的磁盤裏存儲並不是連續的。舉個例子,一個4G的電影,可能前一部分存儲在多少到多少扇區,後一部分存儲在多少到多少扇區。這些扇區位置以及他們的標註由文件系統來操作。不明白的話給一個最切實際的比方:一個年級可以分4個班,這個是MBR。在一個班裏,老師的座次表記錄張三在哪個位置,李四在哪個位置。這個座次表就是文件系統,負責記錄學生的位置,並給他們劃分座位。

inode:記錄檔案的屬性,同時記錄此檔案所在的block號碼,每個檔案都只會占用一個inode,因此文件系統內可以放置的檔案數量和inode的數量是對應的,系統讀取檔案時先要讀取inode,查看檔案的權限與用戶是否符合才能繼續根據inode對應的檔案block編號去尋找文檔的內容。

block:記錄檔案的實際內容,一個block只能存放一個檔案,如果檔案容量比block大,則占用多個block,如果小,則剩下的空間會浪費掉,block的大小為1K,2K,4K,在文件系統格式化的時候這個大小就會被確定下來,而且每個block會有各自的編號,以方便inode記錄尋找。

superblock:

記錄整個文件系統的整體信息。

文件系統一開始就會規劃好inode和block,除非重新格式化(或者指令resize2fs來進行更改)外不然不會更改,由於有些文件系統非常龐大,所以把inode和block放在一起不容易管理,所以文件系統將inode和block分為block group區塊群組進行管理。

block group區塊構成:

block group都有單獨的inode、block以及superblock。

以ext2文件系統為例,ext2文件系統格式化後會變為:boot sector(啟動扇區)和多個block group,boot sector可以存放開機管理程序,這樣可以將不同的開機管理程序安裝在文件系統最前端,而不用覆蓋硬盤唯一的MBR,而block group分為六個部分,下面詳述:

block group分為以下六個部分:

1:superblock :大小為1024bytes,記錄filesytstem相關信息的地方,記錄inode和block的數量,未使用和已使用的inode和block數量,記錄inode和block的大小,例如inode是128bytes,而block是1k或者2k或者4k,記錄filesystem的掛載時間,最近一次寫入數據的時間,最近一次檢驗磁盤(fsck)的時間等文件系統相關信息。最後還要記錄一個valid bit數值,文件系統已被掛載為0,反之為1。

這部分信息可以用dumpe2fs呼叫出來進行查看。

2:檔案系統描述 (filesystem description):這個區塊可以描述麽個block group的開始與結束的block號碼,以及說明每個區段分別介於哪一個block號碼中,這部分也能夠用dumpe2fs來觀察。

3:區塊對應表(block bitmap):block bitmap記錄哪些block是空的,以便新建文檔可以快速調出空的block進行儲存,同時當刪除文檔時,block bitmap也會將對應釋放的block號碼改為未使用。

4:Inode對應表(inode bitmap):這個功能和block bitmap類似,只是block bitmap記錄的是使用與未使用的block號碼,而inode bitmap記錄的是使用與未使用的inode號碼。

5:inode table:也就是上面講過的inode,這裏記錄檔案的屬性以及檔案內容放在哪些編號的block裏。同時inode的大小均固定為128bytes,inode記錄一個block需要花費4bytes,由於有些檔案非常巨大,需要占用大量的block,但是記錄一個block需要花費4bytes,而inode只有128bytes,因此系統將inode記錄block號碼的區域分為12個直接,一個間接,一個雙間接,一個三間接記錄區。

具體記錄的數據為:

1)檔案存取模式(rwx)

2)檔案擁有者(owner、group)

3)檔案的容量

4)檔案建立或狀態改變(例如權限)的時間(ctime)

5)檔案最近一次的讀取時間(atime)

6)最近修改的時間(mtime)

7)定義檔案特性的旗桿(flag)

8)該檔案內容真正的指向(pointer)

6:data block:data block是放置檔案數據的地方,就是上面說的block,是一個東西。

------------------以上轉自 貝倫醬 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/belen_xue/article/details/51586178?utm_source=copy

1.查看硬盤或目錄的容量

df查看硬盤總容量,已用容量,與inode等信息

技術分享圖片

-i, --inodes
用信息索引點代替塊表示使用狀況

-k, --kilobytes
指定塊大小等於1024字節來顯示使用狀況

-l, --local
只顯示本地文件系統使用狀況

-m, --megabytes
以指定塊大小等於1048576字節(1M)來顯示使用狀況

du 報告磁盤空間使用情況

du 報告指定的文件已使用的磁盤空間的總量,包括在層次結構中以這些以指定文件為根的目錄在內。這裏的“已使用的磁盤空間”意思為指定的文件下的整個文件層次結構所使用的空間。

在沒給定參數的情況下,du 報告當前目錄所使用的磁盤空間。

GNU 選項
-a, --all
顯示對所有文件的統計,而不只是包含子目錄。

-b, --bytes
輸出以字節為單位的大小,替代缺省時1024字節的計數單位。

-c, --total
在處理完所有參數後給出所有這些參數的總計。這個選項被
用給出指定的一組文件或目錄使用的空間的總和。

-k, --kilobytes
輸出以1024字節為計數單位的大小。多少K

-m, --megabytes
輸出以兆字節的塊為計數單位的大小(就是 1,048,576 字節)。多少M

-s, --summarize
對每個參數只顯示總和。

-S, --separate-dirs
單獨報告每一個目錄的大小,不包括子目錄的大小。

2.磁盤分割與格式化

fdisk

是一個臭蟲(直接從man fdisk 復制下來的)
在 Linux 中有很多版本的 *fdisk 類程序。 每一個都有自己的強項和缺點。分別試著使用 cfdisk,fdisk, sfdisk. (fdisk是一個有很多臭蟲的分區工具軟件,它所做的操作是模糊不清的,通常在碰巧的情況下它才會正常的運行。 它唯一值得使用的地方是它對BSD 的磁盤標簽和非 DOS 的分區表有所支持, 盡量少用這個程序。

(sfdisk是一個專為黑客提供的程序,它的用戶界面很不友善, 但它更精確,也比 fdisk 和 cfdisk 更有效。另外,它只能以非交互的方式運行。

cfdisk 是一個漂亮的程序,它只接受最嚴謹的分區表,而且它能生成高質量的分區表。 如果可能,你最好使用這個程序。)

fdisk最主要的工作就是修改分區表,咱們就先按書上的步驟走一遍:

先是刪除的步驟:

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

按q退出(系統認定以上步驟作廢,即無事發生,按 w是真的保存設定了噢)

再來增加分區的操作:步驟同上,不過刪除是d,新增就是n啦,n-》p(主分區)-》選編號1-4(未使用過的)-》q,不保存,哈哈哈

e2label - Change the label on an ext2/ext3/ext4 filesystem 修改設備名

技術分享圖片

這是什麽東西。

使用e2label對磁盤操作時,如果報“e2label: Bad magic number in super-block while trying to open /dev/sdb1 ,Couldn’t find valid filesystem superblock.”這樣的報錯。是因為e2label對xfs文件系統做操作出現的,一般是centos7以上系統,在7以上系統應該使用xfs_admin來操作即可!

如:

[root@localhost ~]# xfs_admin -l /dev/sdb1       #查看xfs文件系統卷標
 label = ""
[root@localhost ~]# xfs_admin -L test /dev/sdb1 #設置xfs文件系統的卷標為test
 writing all SBs
 new label = "test"
[root@localhost ~]# xfs_admin -l /dev/sdb1
 label = "test"

xfs_admin - change parameters of an XFS filesystem

然鵝

技術分享圖片

。。。唉,在這先插個眼xfs的基本使用http://www.rundba.com/?post=59。我先往下學Linux的基本指令。

mke2fs Linux下重要的格式化工具

-b設定每個數據塊的大小

-i設定inode值

-c檢查磁盤錯誤

-L設定這個扇區的label(表頭名稱)

-j建立ext3這個具備日誌管理功能的文件格式

哈哈哈哈,這個可以改名,但我沒有改

技術分享圖片

mknod - 建立塊專用或字符專用文件

mknod 用指定名稱產生一個FIFO(命名管道),字符專用或塊專用文件。

文件系統中的一個專用文件存貯著三種信息(布朗型、整型、整型)。
布朗型在字符文件與塊文件之間作出選擇,兩個整型是主、次設備號。

通常,一個專用文件並不在磁盤上占用空間,僅僅是為操作系統提供交流,而不是為數據存貯服務。一般地,專用文件會指向一個硬件設備(如:磁盤、磁帶、打印機、虛擬控制臺)或者操作系統提供的服務(如:/dev/null, /dev/random)。

塊文件通常類似於磁盤設備(在數據可以被訪問的地方賦予一個塊號,意味著同時設定了一個塊緩存)。所有其他設備都是字符文件。(以前,兩種文件類型間是有差別的。比如:字符文件I/O沒有緩存,而塊 文件則有。)

mknod命令就是用來產生這種類型文件的。

以下參數指定了所產生文件的類型:

p FIFO型

b 塊文件

c 字符文件

技術分享圖片

技術分享圖片

最下面一行 3, 3嗯就是這了

3.檢查硬盤壞軌與數據同步寫入

fsck檢查硬盤壞軌,有的話把數據扔到lost+found文件夾裏,fsck - 檢查並修復Linux文件系統。

系統啟動時就會執行的指令 fsck -A根據/etc/fstab,掃描所有設備

-a自動修復檢查到的問題扇區,不用一直按y

-r修復檢查到的問題扇區,會讓你一直按y

使用這個指令的情況是在系統出現極大問題時,(掃描硬盤時會導致部分文件系統損壞)所以在Linux啟動時必須進入單人單機模式下(runlevel1)進入維護的情況下再使用吧,用的時候就是fsck -a /dev/xxx,確認成功後reboot。

Linux為了系統效率,默認會將一些數據寫在內存裏,而不是直接寫入硬盤,但是系統莫名其妙的關機,我們就需要特定的方法讓這些數據回到硬盤即sync。

指令就是sync(一般是兩次以上)就這樣打上去sync;sync;sync;reboot

4.關於啟動盤

制作一張可引導的啟動軟盤

mkbootdisk 制作啟動軟盤(我裝的版本就沒有這個。難受)

技術分享圖片

fdformat 用來低級格式化軟盤,這個可以

6.硬盤的裝載

要建裝載目錄,如果不為空,裝進去後,原來的東西會被清空哦

mount這個指令可以裝載 linux的,windows的光驅 軟驅 硬盤,不錯哦(但是現在我用不到,我就不看了)

umount 卸載

6.硬盤效能測試與啟用

hdparm可以開啟32位存取模式。

技術分享圖片

Linux 硬盤與硬件管理