磁盤和文件系統創建

磁盤結構:主要是由盤體、控制電路、接口部件等組成。盤體里面封裝了多個盤片的腔體;控制電路包含硬盤BIOS、主控芯片和硬件緩存等單元;接口部件包含電源、數據接口主從跳線等。讀取硬盤數據時,主軸電機帶動盤片旋轉,副軸電機帶動磁頭臂將磁頭放到相應的數據存放的柱面和磁道上,再由磁頭讀出相應扇區中的數據。(圖1-1)

磁道(track):每個盤面被劃分成了多個同心圓環,數據就是存儲在這些同心圓環上。這些同心圓環被稱為磁道。(圖1-2)

扇區(sector):每個磁道上劃分成若干個圓弧,這每一個圓弧稱為扇區,扇區是硬盤上存儲的物理單元通常一個扇區為(512byte)。硬盤的扇區與扇區之間隔了交叉因子,因為硬盤的轉速很快,讀完這個扇區來不及讀下一個扇區,這時就必須等待轉一圈才能讀下一個扇區,造成時間浪費,所有就用交叉因子來解決這個問題。(圖1-3)

柱面(cylinder):不同盤面上相同編號的磁道組成的一個同心的圓柱面,稱為柱面。硬盤的數據讀寫和分區是按柱面進行的,磁頭讀寫數據時首先在同一個柱面的0磁頭開始依次向下直到所有的磁頭全部讀寫完畢后,磁頭在轉向下一個柱面。

ceuyzVtrgdgrY.jpgjiaocha.jpgzhumian.jpg

     圖1-1                                                          圖1-2                                             圖1-3

硬盤分區

MBR:主引導記錄(Master Boot Record),計算機開機后根據主板設備的加載項去讀取硬盤的第一個扇區(0柱面,0磁頭,1扇區),該扇區大小為512byte,其中446byte負責找到系統的活動分區,并從活動分區中裝載并運行系統引導程序(bootloader)。后面64byte為分區表,每16byte標識一個活動分區,最多支持4個活動分區。2byte的結束標識符。

文件系統:

文件系統是一套幫助操作系統管理和存儲文件信息的軟件。它對存儲設備的空間進行管理和分配,負責文件的存儲和檢索。

fdisk對硬盤進行分區操作

fdisk  -l   [-u]    [DEVICE]    ##查看系統的硬盤信息
fdisk  [DEVICE]              ##管理設備##常用的子命令的管理功能
       p   print the partition table             ##顯示已有分區
       n   add a new partition                ##創建新分區   
       d   delete a partition                 ##刪除一個分區   
       w   write table to disk and exit           ##保存分區表并退出   
       q   quit without saving changes             ##退出不保存修改的內容
       m   print this menu                   ##顯示幫助菜單   
       l   list known partition types             ##列表分區的ID和類型   
          change a partition's system id            ##調整分區的ID

查看/proc/parttions內核是否識別新分區

[root@mage ~]# cat /proc/partitions
       major minor  #blocks  name   
       8     0    8388608 sda   
       8     1     512000 sda1   
       8     2    7875584 sda2   
       8    16    4194304 sdb   
       8    17    2104483 sdb1   
       8    18    2088450 sdb2

如果當前硬盤正在使用,新劃的分區未能識別則用partx命令重讀硬盤分區表

[root@mage ~]# partx  -a  /dev/sdb          ##通知內核重新讀取硬盤分區表   
BLKPG: Device or resource busy   
error adding partition 1    
BLKPG: Device or resource busy    
error adding partition 2

Linux支持多種文件系統:ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap….

由于支持這么多的文件系統,為了方便進程或應用程序的調用,弱化各個文件系統之間的差異,所以就需要在內核與文件系統在有一層中間件。于是就有了虛擬文件系統VFS(Virtual File System),虛擬文件系統將不同文件系統的差異進行隱藏,并向進程或應用程序提供同一的調度接口。應用程序或進程要訪問文件時,只需要使用VFS提供的接口,VFS確定要訪問的文件所屬的文件系統,通過存儲在VFS中的指針調用該文件系統進行相應的操作。

ext2(second EXTended Filesysem)是一個被linux廣泛使用的文件系統。文件的文件名不能超過255個字符。ext2文件系統第一塊為引導扇區(boot sector)用于系統啟動引導使用,即使該分區非系統分區也會保留。引導扇區的塊被分成若干個塊組。

QQ圖片20151213162158.png

超級塊:該文件系統的信息,包括inode和block的總數、空閑、塊的大小、文件、塊組的大小、文件系統創建時間、默認掛載的參數等。

超級塊會備份到若干個塊組內。

組描述符:存放block和inode的開始與結束的位置,空閑塊數和inode的空閑數,塊組中的目錄數等信息,

inode位圖:對位標識每個inode空閑與否的狀態信息

塊位圖:對位標識每個block空閑與否的狀態信息

inode表:大小為128字節,每個inode恰好描述了一個文件。文件類型,鏈接數據,文件的改變、修改、訪問時間,文件的屬主、屬組、大小,以及12block硬盤物理地址和后面3個間接指針(直接指針、間接指針、三級指針)。

數據塊:存放文件內容數據的位置,每個數據塊的大小在文件系統創建時都已經確認了,一個文件至少占用一個數據塊,可以占用多個數據塊。

ext3是ext2文件系統的升級版,并加入了日志文件系統。系統在寫入數據時會現將數據寫入日志區。再通過日志信息將數據寫入數據區中,這樣的好處,一旦系統非正常關機成數據的損壞??梢酝ㄟ^日志信息快速檢測錯誤區并加以修復。而不需要像ext2遍歷全盤,節約了事件,也提高了數據的可靠性。

創建文件系統

   mkfs命令

  mkfs.cramfs   mkfs.ext2     mkfs.ext3     mkfs.ext4  
  mkfs.FS_TYPE   /dev/DEVICE             
  mkfs -t  FS_TYPE   /dev/DEVICE        
  mke2fs  ##ext文件系統專用管理工具    
  mke2fs  [OPTION]   /dev/DEVICE          
            -t    {ext2|ext3|ext4}      ##指定要創建的類型        
            -b    {1024|2048|4096}      ##指定塊大小              
            -L  'LABEL'             ##指定卷標              
            -i #                ##數據空間每多少個字節創建一個inode;此大小不應該小于block的大??;        
            -N #             ##為數據空間創建個多少個inode              
            -m               ##為管理人員預留的空間占據的百分比;默認為5%              
            -O FEATURE[,....]        ##啟用指定特性               
            -O ^FEATURE                ##關閉指定特性               
            
 [root@mage ~]# mke2fs  -t ext4   -b 4096  -L 'TEST'  -m 3   /dev/sdb1      
 mke2fs 1.41.12 (17-May-2010)Filesystem label=TEST                                            ##卷標
 OS type: Linux
 Block size=4096 (log=2)                                          ##塊的大小
 Fragment size=4096 (log=2)
 Stride=0 blocks,Stripe width=0 blocks
 197600 inodes, 789185 blocks                        ##該文件系統總共的塊和inode的數量
 23675 blocks (3.00%) reserved for the super user
 First data block=0
 Maximum filesystem blocks=809500672
 25 block groups                                                  ##塊組數量
 32768 blocks per group, 32768 fragments per group                ##32768塊組成一個塊組
 7904 inodes per group                                            
 Superblock backups stored on blocks:                             ##超級塊的備份        
        32768, 98304, 163840, 229376, 294912
 Writing inode tables: done                            
 Creating journal (16384 blocks): done                            ##創建的日志文件塊
 Writing superblocks and filesystem accounting information: done
 This filesystem will be automatically checked every 26 mounts or      
 180 days, whichever comes first.  Use tune2fs -c or -i to override.

塊屬性的信息查看

  blkid  [OPTION].........[DEVICE]    
        -U UUID                 ##根據指定的UUID來查找對應的設備       
        -L LABEL                ##根據指定的LABEL來查找對應的設備 
  [root@mage ~]# blkid   /dev/sdb1
  /dev/sdb1: LABEL="TEST" UUID="65770a04-cacc-4a27-8c66-c8bdae1ff40d" TYPE="ext4"

修改ext文件系統的卷標

e2label  DEVICE [LABEL]
[root@mage ~]# e2label   /dev/sdb1   MYDATA
[root@mage ~]# blkid /dev/sdb1/dev/sdb1: LABEL="MYDATA" UUID="65770a04-cacc-4a27-8c66-c8bdae1ff40d" TYPE="ext4"

調整ext文件系統的參數

tune2fs  [OPTION]     /dev/DEVICE
     -l                             ##查看指定文件系統超級塊信息;super block 
     -L 'LABEL'                        ##修改卷標     
     -m #                          ##修預留給管理員的空間百分比     
     -j                            ##將ext2升級為ext3     
     -O                           ##文件系統屬性啟用或禁用     
     -o                          ##調整文件系統的默認掛載選項     
     -U:UUID                        ##修改UUID號
[root@mage~]# tune2fs   -l  /dev/sdb1     ##查看超級塊
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   TEST
Last mounted on:          <not available>
Filesystem UUID:          d2eda9dd-3c63-40d1-8dce-9f2c18b36602
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 
flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              197600
Block count:              789185
Reserved block count:     23675
Free blocks:              759231
Free inodes:              197589
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      192
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         7904
Inode blocks per group:   494
Flex block group size:    16
Filesystem created:       Sun Dec 13 10:31:18 2015
Last mount time:          n/a
Last write time:          Sun Dec 13 10:31:18 2015
Mount count:              0
Maximum mount count:      26
Last checked:             Sun Dec 13 10:31:18 2015
Check interval:           15552000 (6 months)
Next check after:         Fri Jun 10 10:31:18 2016
Lifetime writes:          113 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      4dc8c1cb-a593-4f0f-8da7-2d787b789e4e
Journal backup:           inode blocks

dumpe2fs [OPTION]   /dev/DEV
     -h                              ##查看超級塊信息                
     -x                              ##查看塊組以信息十六進制顯示
Group 0: (Blocks 0-32767) [ITABLE_ZEROED]              ##塊組的block的范圍  
Checksum 0xc867, unused inodes 7893                 ##校驗碼和未使用的inode的數量  
Primary superblock at 0, Group descriptors at 1-1  
Reserved GDT blocks at 2-193  
Block bitmap at 194 (+194), Inode bitmap at 210 (+210)      ##塊位圖,inode位圖  
Inode table at 226-719 (+226)                     ##inode表  
24632 free blocks, 7893 free inodes, 2 directories, 7893 unused inodes  ##未使用的塊,未使用的inode節點,2個目錄  
Free blocks: 8136-32767                            ##未使用塊的范圍  
Free inodes: 12-7904                              ##未使用inode的范圍

原創文章,作者:Y.sir,如若轉載,請注明出處:http://www.www58058.com/9922

(0)
Y.sirY.sir
上一篇 2016-02-14 09:44
下一篇 2016-02-14 09:48

相關推薦

  • 信息論的熵

    1.  前言    熵的概念最早起源于物理學,用于度量一個熱力學系統的無序程度。    在信息論里則叫信息量,即熵是對不確定性的度量。從控制論的角度來看,應叫不確定性。信息論的創始人香農在其著作《通信的數學理論》中提出了建立在概率統計模型上的信息度量。他把信息定義為“用來消除不確定性的東西”。在信息世界,熵越…

    Linux干貨 2016-03-27
  • Linux Cluster之LVS

    一、Linux Cluster 基礎: Cluster:計算機集合為解決某個特定問題組合起來形成的單個系統 Linux Cluster類型: LB(Load Banlancing):負載均衡 HA(High Availability):高可用。提高服務可用性,避免出現單點故障 HP(High Performance):高性能 可用性衡量公式: A=MTBF/…

    2016-11-02
  • 我的學習宣言,不忘初心

    Dear 馬哥: 我相信選擇馬哥教育是正確的。 我將用洪荒之力的努力來成為一名合格的馬幫門徒! 一定不學中國足球。 敬禮 自學生 朱宏

    Linux干貨 2016-10-30
  • Linux任務計劃,周期性任務執行詳解

    Linux任務計劃,周期性任務執行 概述 本章將為大家介紹一些任務計劃和周期性任務計劃執行相關內容任務計劃的分類主要有由兩種    未來的某時間點執行一次某任務:at,batch    周期性運行某任務:crontab具體分為三個方面來說明:    1、at計劃任務    2、c…

    Linux干貨 2016-09-27
  • linux的文件類型

    linux的文件類型 linux其中的一個哲學思想就是一切皆文件,今天我們就來學習一下linux系統中的文件類型。linux不同于windows,有多種多類的文件類型,文件類型的判斷也不是以文件的后綴為標準的。linux中一共有七種文件類型,分別是:普通文件、目錄、字符設備文件、塊設備文件、套接字文件、命名管道文件和符號鏈接文件。那么接下來我們就分別看看每種…

    Linux干貨 2016-10-27
欧美性久久久久