磁盤和文件系統創建

磁盤結構:主要是由盤體、控制電路、接口部件等組成。盤體里面封裝了多個盤片的腔體;控制電路包含硬盤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的大?。?nbsp;       
            -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
下一篇 2016-02-14

相關推薦

  • shell中的引號用法

        SHELL引號  在shell里可以通過使用單引號,雙引號,反引號(TAB鍵上方的按鍵),反斜線來轉換某些shell元字符的含義。比如說,我們希望echo命令顯示出$本身字符的意義,而不是變量,我們需要使用某些功能來屏蔽$符號本身賦予的特殊含義,使其還原本身字面的意思。 主要講述四個比較特殊常用的符號。 1.反…

    2017-06-11
  • memcached簡析

    一. memcached簡介      memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in    &nbs…

    2016-10-29
  • Linux之磁盤管理

    Linux之磁盤管理       linux系統中, 一切都是文件, 而這些文件都是存儲在磁盤中, 因此對于磁盤的管理是非常重要的, Linux磁盤管理的好壞, 直接關系到整個系統的性能問題, 本文主要介紹了磁盤結構, 分區類型, 管理分區, 管理文件系統, 掛載設備, 管理虛擬內存這幾大項的內容.    &…

    Linux干貨 2016-08-29
  • Linux Basic–磁盤分區

    附件: 磁盤管理相關方法.pdf

    Linux干貨 2016-11-21
  • 自制linux和內核編譯

    自制linux和內核編譯 1、分區并創建文件系統 fdisk /dev/sdb分兩個必要的分區/dev/sdb1對應/boot /dev/sdb2對應根/mkfs.ext4 /dev/sdb1mkfs.ext4 /dev/sdb2 2、掛載boot mkdir/mnt/bootmount /dev/sdb1 /mnt/boot 3、安裝grub grub-i…

    Linux干貨 2016-09-16
  • lvs集群搭建

    Linux Cluster: Cluster:計算機集合,為解決某個特定問題組合起來形成的單個系統; Linux Cluster類型:LB:Load Balancing,負載均衡;HA:High Availiablity,高可用;A=MTBF/(MTBF+MTTR)(0,1):90%, 95%, 99%, 99.5%,  99.9%, 99.99%…

    2017-05-09
欧美性久久久久