1. 程式人生 > >謝煙客---------Linux之文件系統管理創建與掛載

謝煙客---------Linux之文件系統管理創建與掛載

linux

文件系統在哪實現? 內核

內核級文件系統的組成?模塊、用戶空間中的程序

哪些是內核級文件系統?除了分布式文件系統

模塊的定義

中間層定義

文件如何按名存取

查找文件、創建文件、存儲文件
文件系統、格式化

swap,虛擬內存

日誌型文件系統和非日誌型文件系統工作原理

超級塊


文件按名存取的實現

技術分享

文件系統實現按名存取將分區後的存儲空間劃分為數據區元數據區

數據區: 存儲大小相同的數據塊

元數據區:有多個inode塊,每個inode塊中存儲:filename,perm,owner,group,timestamp,size數據區的數據塊編號,數據塊的映射


在查找文件時先找元數據後找數據

先找到元數據區的inode。從inode中的數據地址編號,找到對應的數據塊。


在創建文件時,先創建元數據,由元數據找空閑數據塊

先創建元數據,找到空閑的磁盤塊,才能存儲數據


在存儲文件時,找到的磁盤塊不夠用,就再分配磁盤塊,並將分配的新磁盤塊編號記錄於inode中,供以後查找


文件系統的定義

索引和索引指向的編址方式

數據區中存儲數據的不同組織機制和元數據區存儲數據時存放索引的位置。


數據的組織機制:數據在存儲空間存放的形式存儲空間的結構

例如:

一個圖書館內的書架可以橫、豎、斜著放,每個書架上存放書的格子不同。

一張白紙,在其上寫文字可以打成方格、行格、斜格,其結構都可以不同。

寫的時候可以橫、豎、斜著寫。


格式化:重新構建數據的組織機制,廢墟之上重建

例如:將之前擺放的書架,一把火燒了,重新買書架,重新按照不同的結構組織書架的擺放,書的擺放也可能不同。



文件系統的常見類型


按應用場景劃分

Linux:Windows:iso:unix:網絡文件系統:集群文件系統:分布式文件系統:

按內核級劃分

除了分布式文件系統之外的所有文件系統

按是否支持日誌功能劃分

日誌型文件系統: ext3,ext4,xfs

非日誌型文件系統: ext2 vfat(將winodws的fat32識別為vfat)


++++++++++++++++++++++++++++++++++++++++++++++++++++++

Linux

ext2 ext3 ext4 xfs btrfs swap

CentOS 5 ,ext2 ext3

ext2 單個文件支持8EB

CentOS 6, ext4,xfs

ext ( extended filesystem) - 系統的文件系統有向下兼容的特性

XFS - SGI 的第二代文件系統。(centos6 支持xfs,內核中有xfs模塊,需要安裝xfs用戶空間中的管理工具)


CentOS7: ext4,xfs,btrfs,relserFS,JFS

ext4 - 因穩定性原因,不在被推崇

btrfs - SUN公司研發 --文件系統級別支持 本來lvm2級別才能擁有的功能

btrfs 單個文件支持沒有理論上限值 64bit的文件系統,位數越多意味著單個文件所能夠尋址的磁盤塊數量越大


reiserFS 命名是源自作者Hans Reiser的姓氏,其特色為能很有效率地處理大型文件到眾多小文件都可以用很高的效率處理

JFS

由IBM研發,AIX支持的文件系統,JFS,JFS2


swap,交換分區

用於Solaris之上,為了避免虛擬內存機制,導致的物理內存滿載後不能進行任何操作的嚴重的影響,Sun公司研發了一種文件系統,能在物理內存耗盡之前,把磁盤空間中的某段存儲空間格式化為同物理內存一樣的存儲格式,而後把物理內存中不太有用的數據放至磁盤之上,如果需要用到此數據時,將數據拿回來即可,這種行為叫做“交換”

虛擬內存:如果物理內存只有2G,對於32bit系統,每一個進程有4G內存可用,實際上可能只有幾M大小內存。如果某個進程內存占據逐漸增大時,將物理內存大耗盡,可能導致其他進程不能運行,管理工具無法使用。



光盤:iso9660

ISO 9660源於High Sierra文件系統,被一些硬件和軟件供應商稱作CDFS(光盤文件系統),是一個由國際標準化組織(ISO)為光盤媒介發布的文件系統。其目標是能夠在不同的操作系統如Windows、Mac OS以及類Unix系統上交換數據。


Windows

fat32, ntfs

fat32

FAT文件系統考慮當時電腦性能有限,所以未被復雜化,因此幾乎所有個人電腦的操作系統都支持。這特性使它成為理想的軟盤和存儲卡文件系統,也適合用作不同操作系統中的數據交流。現在,一般所講的FAT專指FAT32。

但FAT有一個嚴重的缺點:當文件刪除後寫入新數據,FAT不會將文件整理成完整片段再寫入,長期使用後會使文件數據變得逐漸分散,而減慢了讀寫速度。碎片整理是一種解決方法,但必須經常重組來保持FAT文件系統的效率。

其它IBM PC的可選操作系統,如Linux、FreeBSD和BeOS都支持FAT格式,並且大部分都在相應的Windows版本發布以後很快就支持VFAT和FAT32格式

ntfs

NTFS(英語:New Technology File System),是Microsoft公司開發的專用文件系統,從Windows NT 3.1開始成為Windows NT家族的標準文件系統。

NTFS取代FAT(文件分配表)和HPFS(高性能文件系統)並進行一系列改進,例如增強對元數據的支持,使用更高級的數據結構以提升性能、可靠性和磁盤空間利用率,並附帶一系列增強功能,如訪問控制列表(ACL)和文件系統日誌。

Linux和BSD提供自由及開放源代碼的軟件,可用於讀寫NTFS文件。


UNIX

UFS

Unix File System是一種文件系統,為許多UNIX和類Unix操作系統所使用。它也被稱為伯克利快速文件系統(Berkeley Fast File System)

FFS

BSD快速文件系統(BSD Fast File System)FFS對Unix System V文件系統“FS”有所繼承。FFS在Unix文件系統(1或2)之上,提供目錄結構的信息,以及各種磁盤訪問的優化。UFS(以及UFS2)定義了on-disk數據規格。

JFS2


網絡文件系統

NFS

Network File System是一種分布式文件系統協議,最初由Sun Microsystems公司開發,並於1984年發布。其功能旨在允許客戶端主機可以像訪問本地存儲一樣通過網絡訪問服務器端文件。

NFS和其他許多協議一樣,是基於開放網絡運算遠程過程調用(ONC RPC)協議之上的。它是一個開放、標準的RFC協議,任何人或組織都可以依據標準實現它。NFS的消息格式是固定長度,

CIFS

服務器消息塊(Server Message Block,縮寫為SMB),又稱網絡文件共享系統(Common Internet File System,縮寫為CIFS, /sfs/),一種應用層網絡傳輸協議,由微軟開發,CIFS消息一般使用NetBIOS或TCP協議發送,分別使用不同的端口139或445,目前傾向於使用445端口。CIFS的消息格式大多數是可變長度,這增加了協議的復雜性。


集群文件系統

GFS2(redhat Global File System version2)

OCFS2(oracle cluster filesystem version 2)


分布式文件系統

ceph(linux內核中所實現)

HDFS、GlusterFS、Ceph、OpenStack的Swift項目等都屬於分布式集群文件系統。分布式集群文件系統可擴展性更強,目前已知最大可擴展至10K節點。對於分布式集群,其對文件元數據的管理方式又可以分為單一路徑映像和單一文件系統映像兩種方式。


++++++++++++++++++++++++++++++++++++++++++++++++


日誌文件系統

文件存儲時,先創建元數據,由元數據找到空閑數據塊,就能存儲文件,在存儲過程中,如果系統斷電了,其存儲的文件是不完整的。對於windows系統來說,需要文件恢復,將之前存儲數據的不完整的文件查找出來刪除。


非日誌文件系統

存儲文件時直接在元數據區給文件創建元數據,通過元數據區的元數據條目"inode"塊,找到對應的數據塊即可完成存儲。

存儲過程中,如果斷電,在斷電恢復時,需要遍歷整個文件系統所有文件查找不完整的文件。

技術分享


日誌型文件系統

存儲文件時在日誌區中給文件創建元數據,通過日誌區的元數據條目"inode"塊,找到對應的數據塊即可完成存儲。

存儲過程中,如果斷電,在斷電恢復時,只需要查找日誌區的所有元數據即可,是不是很快?

技術分享


文件管理由內核實現的原因

1、內核管理硬件,內核才能跟磁盤交互

2、內核將磁盤數據區劃分為不同的格式及建立文件的索引

3、文件系統在內核中實現


內核級文件系統的組成

內核中的模塊:

linux由於其開源特性,其上實現了眾多文件系統,每種文件系統都有一個對應的模塊,ext2,ext3,ext4,xfs,btrfs,....,程序員要格式化不同的文件系統就要調用對應的模塊賊困難。後來,用一種機制解決了這個問題,添加一個中間層

中間層:在Linux之上只要有兩個層級間不能銜接,就需要一個中間層就能抹除底層不同文件系統的差異。解決文件系統的差異是VFS。

VFS:抽象底層不同模塊功能為一個統一的接口,類似於操作系統一樣:抽象底層硬件功能為一個簡潔、易用、美觀的接口,目的是:方便程序員調用,利於程序員編程。

技術分享


用戶空間中的程序:

調用內核中的模塊完成格式化的功能

常用工具有: mkfs,mke2fs, mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs,mkfs.btrfs


模塊 提供一種功能,只要調用此模塊就能完成功能。


########對於任何一個文件系統想要在Linux中使用:1、內核中有模塊且已經裝載,2、遵循POSIX規範,3、有用戶空間的程序#######################


用戶空間工具的使用

mkfs,mke2fs,mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs,mkfs.btrfs


獲取當前內核支持的文件系統

[[email protected] ~]# cat /proc/filesystems   
	ext3
	ext2
	ext4
nodev	rpc_pipefs
nodev	nfsd
nodev	binfmt_misc

##註意 
     nodev:  沒有使用的文件系統
    無nodev:  正在使用的文件系統

對於任何一個文件系統想要在Linux中使用

1、查看內核中的所有已經裝載的模塊

[[email protected] ~]# lsmod
Module                  Size  Used by
binfmt_misc            17468  1 
tcp_diag               12591  0 
inet_diag              18949  1 tcp_diag
ip6t_rpfilter          12595  1 
ipt_REJECT             12541  2 
nf_reject_ipv4         13373  1 ipt_REJECT

2、查看用戶空間的程序

[email protected] ~]# mkfs  ##兩次TAB,打印列表(以下有的用戶空間的程序均為內核中存在模塊,且可使用)
mkfs   mkfs.btrfs  mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.ext4    mkfs.minix   mkfs.xfs


mkfs.FS_TYPE命令

mkfs.FS_TYPE [-L LABEL] filesys
    FS_TYPE: ext2,ext3,ext4,xfs,btrfs 文件系統類型
    -L LABEL 卷標
    
ext2:# mkfs.ext2 /dev/sdb5
ext3:# mkfs.ext3 /dev/sdb5
ext4:# mkfs.ext4 /dev/sdb5  
-L: # mkfs.ext4 -L ‘MYDATA‘ /dev/sdb5
xfs:# mkfs.xfs -f /dev/sdb5 
btrfs:# mkfs.btrfs -f /dev/sdb5    ##CentOS 7

mkfs命令

 mkfs [-L LABEL] [-t fstype] filesys
     fstype:ext2,ext3,ext4,xfs,btrfs 文件系統類型
    -L LABEL 卷標
     
ext2:# mkfs -t ext2 /dev/sdb5
ext3:# mkfs -t ext3 /dev/sdb5
ext4:# mkfs -t ext4 /dev/sdb5  
-L: # mkfs -t ext4 -L ‘MYDATA‘ /dev/sdb5
xfs: # mkfs -t xfs /dev/sdb5
btrfs: # mkfs -t btrfs /dev/sdb5    ##CentOS 7


mke2fs命令:創建ext2,ext3,ext4文件系統的專用的命令

mke2fs [-t fstype] [OPTIONS...] filesys
OPTIONS:
    -b {1024|4096|2048} 單位是byets,不指定是2048
    -t {ext2|ext3|ext4} 
        小文件多: 1024
	大文件多: 4096
	小文件多用大塊,浪費磁盤空間
    -L LABEL 指定卷標
    -j 相當於 mke2fs -t ext3
    -i # 比率關系. 為數據空間每多少個byte創建一個Inode. 大小不應該小於單個塊大小 
        數據空間總大小 
        -----------------------------  =  inode數量
        單個inode占據數據空間的大小 
        
        數據空間總大小 
        -----------------------------  =  塊數量
        單個塊大小 
        
        inode = 單個塊大小 時, inode數量 = 塊數量
        inode > 單個塊大小 時, inode數量 < 塊數量
        inode < 單個塊大小 時, indoe數量 > 塊數量,此時如果一個塊,存儲一個文件,inode也多了.inode空間浪費
    
    -N # 為數據空間創建多少個inode	
    -m # 為管理人員預留的空間占據的百分比. 默認為5% 避免磁盤空間占滿之後,管理人員不能操作
    -O FEATURE[,...] 創建分區時,啟用哪些特性
	-o ^FEATURE 關閉特性
	mke2fs -O journal 格式化為ext3	


選項註釋

-b,默認為496 ,-L LABEL,-m # 選項註釋

[[email protected] ~]# mke2fs -t ext4 -L ‘mydata‘ -m 2 /dev/sdb5
mke2fs 1.41.12 (17-May-2010)
文件系統標簽=mydata  ##卷標名
操作系統:Linux 
塊大小=4096 (log=2)  ##未給出塊大小時的默認大小
52451 blocks (2.00%) reserved for the super user ##為super user預留百分比
Superblock backups stored on blocks:  ##超級塊的磁盤塊編號
	16386, 49152, 81920, 114688, 217456, 409600, 442368, 802816, 1327104, 
	2048000, 3981313

-m 選項默認為5%,

[[email protected] ~]# mke2fs -t ext4 -b 2048 -L ‘mydata‘ /dev/sdb5
mke2fs 1.41.12 (17-May-2010)
文件系統標簽=mydata ##卷標
操作系統:Linux
塊大小=2048 (log=1)  ##塊大小非默認
262259 blocks (5.00%) reserved for the super user  ##默認預留百分比
Superblock backups stored on blocks:  ##超級塊位置
	16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 
	2048000, 3981312


blkid命令 塊設備屬性信息查看

blkid [OPTIONS...] [DEVICE.]
-U UUID 根據UUID查詢設備
-L LABLE 根據LABEL查詢設備

使用示例

[[email protected] ~]# blkid /dev/sdb5
/dev/sdb5: LABEL="mydata" UUID="7981933b-6ca6-4601-94db-7566da016dc1" TYPE="ext4" 
/dev/sda5: 設備文件名: 
LABEL: 卷標,
UUID: 全局唯一標識,
TYPE: 文件系統類型

全局唯一標識:就算設備文件名字改變UUID也是固定不變的
# blkid -U 7981933b-6ca6-4601-94db-7566da016dc1  
/dev/sdb5
# blkid -L mydata
/dev/sdb5
[[email protected] ~]#


e2label命令 查看和管理ext文件系統的LABEL

e2label DEVICE [LABEL]
查看label: e2label DEVICE
設定label: e2label DEVICE LABEL

使用示例

[[email protected] ~]# e2label /dev/sdb5
mydata
[[email protected] ~]# e2label /dev/sdb5 ‘MYDATA‘
[[email protected] ~]# e2label /dev/sdb5
MYDATA


超級塊

磁盤空間:日誌區 + 數據區 + 元數據區

塊組:分區後將磁盤數據空間劃分成大小相等的塊,對磁盤空間平面化管理過於復雜,將幾個磁盤空間劃分成塊組,

1、每個塊組內有相等數量的數據塊

2、每個塊組的內的塊的編號不同,(例如:1-99,100-199,200-299,....)

3、有幾個塊組內創建磁盤時自動血備份的超級塊

超級塊:存儲整個分區中的整個結構劃分。如果超級塊掛了,整個分區的結構就消失了。


技術分享

tune2fs 修改ext系統的參數

-l 查看指定文件的超級塊信息,super block
-L LABEL 修改文件系統的卷標
-m # 修改預留給管理員的空間百分比
-j 將ext2升級為ext3
-O [FEATURE|^FEATURE] 文件系統屬性啟用或禁用
	 has_journal 擁有日誌功能
-o 調整文件系統的默認掛載選項
	acl   啟用Posix訪問控制列表。
-U UUID 修改UUID

使用示例

-l選項

[[email protected] ~]# tune2fs -l /dev/sda3   顯示超級塊信息
Filesystem volume name:   文件系統卷標
Last mounted on:          最近一次什麽時間被掛載
Filesystem UUID:          全局唯一標示符
Filesystem magic number:  魔數
Filesystem revision #:    1 (dynamic)
Filesystem features:      文件系統的特性:文件系統自己的特性跟是否掛載無關 sparse_super large_file (沒有journal,可見為ext2文件系統)
Default mount options:    默認在掛載時的默認選項 tune2fs -o
Filesystem state:         文件系統的當前狀態 clean:幹凈狀態 ,沒有什麽損壞
Filesystem OS type:       Linux 標示所在的操作系統
Inode count:              有多少個inode?inode是元數據的條目
Block count:              2622452 一共有多少個磁盤塊
Free blocks:              2575520 一共有多少個空閑磁盤塊
Free inodes:              655765 一共有多少個空閑inode
First block:              0
Block size:               4096 單個磁盤塊大小
Fragment size:            4096 
Reserved GDT blocks:      640
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8096
Inode blocks per group:   506
Filesystem created:       Sun Aug  6 21:20:08 2017
Last mount time:          n/a
Last write time:          Sun Aug  6 21:20:14 2017
Mount count:              0
Maximum mount count:      33
Last checked:             Sun Aug  6 21:20:08 2017
Check interval:           15552000 (6 months)
Next check after:         Fri Feb  2 21:20:08 2018
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
Default directory hash:   half_md4
Directory Hash Seed:      f038552c-fba3-4e72-85ea-f901b9268c27

##inode即為元數據的條目

-L LABEL修改文件系統的卷標

[[email protected] ~]# blkid /dev/sdb5  ##查看文件系統的卷標
/dev/sdb5: LABEL="MYDATA" UUID="7981933b-6ca6-4601-94db-7566da016dc1" TYPE="ext4" 
[[email protected] ~]# tune2fs -L ‘Mydata‘ /dev/sdb5  ##修改文件系統的卷標
tune2fs 1.41.12 (17-May-2010)
[[email protected] ~]# blkid /dev/sdb5
/dev/sdb5: LABEL="Mydata" UUID="7981933b-6ca6-4601-94db-7566da016dc1" TYPE="ext4"

-j 將ext2升級為ext3

[[email protected] ~]# mkfs.ext2 -L ‘mydata‘ /dev/sdb5
[[email protected] ~]# blkid /dev/sdb5
/dev/sdb5: LABEL="mydata" UUID="2fde103f-a686-4f94-bb8a-0472ed1e2816" TYPE="ext2" 
[[email protected] ~]# mkfs.ext2 -j /dev/sdb5
[[email protected] ~]# blkid /dev/sdb5
/dev/sdb5: UUID="680c887c-c9c9-4536-b9bb-13a0822c05ed" SEC_TYPE="ext2" TYPE="ext3"

-O [FEATURE|^FEATURE] 文件系統屬性啟用或禁用

[[email protected] ~]# tune2fs -O ^has_journal /dev/sdb5
[[email protected] ~]# blkid /dev/sdb5
/dev/sdb5: UUID="680c887c-c9c9-4536-b9bb-13a0822c05ed" TYPE="ext2" 
[[email protected] ~]# tune2fs -O has_journal /dev/sdb5
[[email protected] ~]# blkid /dev/sdb5
/dev/sdb5: UUID="680c887c-c9c9-4536-b9bb-13a0822c05ed" SEC_TYPE="ext2" TYPE="ext3"

-o 調整文件系統的默認掛載選項

#獲取默認掛載屬性
[[email protected] ~]# dumpe2fs -h /dev/sdb5
[[email protected] ~]# tune2fs -l /dev/sdb5
Default mount options:    (none)

##啟用默認掛載屬性
[[email protected] ~]# tune2fs -o acl /dev/sdb5

##獲取默認掛載屬性
[[email protected] ~]# tune2fs -o acl /dev/sdb5
Default mount options:    acl

-U UUID 修改UUID

##查看UUID
[[email protected] ~]# blkid /dev/sdb5
/dev/sdb5: UUID="680c 887c-c9c9-4536-b9bb-13a082 2c05ed" SEC_TYPE="ext2" TYPE="ext3" 
##修改UUID
...


dumpe2fs命令 顯示超級塊分組信息和文件系統的組織結構信息 讀取每個塊組

dumpe2fs 顯示超級塊組信息及文件系統結構信息
dumpe2fs -h  查看超級塊


使用示例

[[email protected] ~]# dumpe2fs /dev/sdb5  ##顯示超級塊分組信息和文件系統的組織結構信息讀取每個塊組
Group 320: (Blocks 5242880-5245189) [INODE_UNINIT, ITABLE_ZEROED]
塊組編號,磁盤塊起始-結束 

Block bitmap at 5242880 (+0) Block 位圖的位置
Inode bitmap at 5242896 (+16) Inode 位圖的位置
Inode表位於 5242912-5243167 (+32)
2052 free blocks
 2048 free inodes, 2048個未使用的inodes
 0 directories, 
可用塊數: 5242881-5242895, 5242897-5242911, 5243168-5245189 多少塊可用
可用inode數: 655361-657408 可用Inode


mkswap命令

mkswap [OPTIONS...] DEVICE 創建交換分區(調整分區ID為82,system)
-L LABEL 卷標
-U UUID

swap大小:
對於mysql,oracle數據庫,沒有內存就別玩
對於hadoop,內存要求大,內存使用效率不高,swap內存 == 物理內存
對於早期,物理內存只有128M,512M時。給1-1.5倍即可。
現在,物理內存動輒2-8G,大多數給2G,足夠用
渲染,3D,內存要求較大。交換分區可大一點。



創建交換分區步驟

1、分區

##顯示所有磁盤的分區信息
[[email protected] ~]# fdisk -l /dev/sd[a-z] 

Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders  ##扇區個數 15665
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64       12813   102400000   8e  Linux LVM
/dev/sda3           12813       14118    10489811   83  Linux

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders  ##扇區個數 2610
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        2610    20964793+   5  Extended
/dev/sdb5               1        1306    10490382   83  Linux
##確定新建分區為sdb6
##調整分區表
[[email protected] ~]# fdisk /dev/sdb
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (1307-2610, default 1307): 
Using default value 1307
Last cylinder, +cylinders or +size{K,M,G} (1307-2610, default 2610): +2G ##給2G

Command (m for help): p  ##顯示出第6個分區id為83

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        2610    20964793+   5  Extended
/dev/sdb5               1        1306    10490382   83  Linux
/dev/sdb6            1307        1568     2104483+  83  Linux

2、調整id號為82

Command (m for help): t  ##調整id
Partition number (1-6): 6  ##調整第6個分區 
Hex code (type L to list codes): 82  #¥#其分區id為82,swap分區
Changed system type of partition 6 to 82 (Linux swap / Solaris)  ##修改成功
Command (m for help): w  ##將內存中數據同步到磁盤

3、查看內核是否已經識別分區

[[email protected] ~]# cat /proc/partitions 
major minor  #blocks  name

   8        0  125829120 sda
   8        1     512000 sda1
   8        2  102400000 sda2
   8        3   10489811 sda3
   8       16   20971520 sdb
   8       17          1 sdb1
   8       21   10490382 sdb5
   8       22    2104483 sdb6  ##sdb6已經識別

4、如果沒有識別,則讓內核重讀分區表

[[email protected] ~]# partx -a -n 1:6 /dev/sdb  ##從第一個分區至第6個分區
[[email protected] ~]# partx -a -n 6 /dev/sdb  ##指定分區
[[email protected] ~]# partx -a /dev/sdb  ##讀所有分區

5、顯示交換分區是否創建完畢

[[email protected] ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        2610    20964793+   5  Extended
/dev/sdb5               1        1306    10490382   83  Linux
/dev/sdb6            1307        1568     2104483+  82  Linux swap / Solaris


fsck命令 file system check 非法關機後。開機不要檢測,開機手動檢測

##獲取相關的命令
[[email protected] ~]# fsck
fsck          fsck.cramfs   fsck.ext2     fsck.ext3     fsck.ext4     fsck.ext4dev  fsck.msdos    fsck.vfat
方法一: fsck.FS_TYPE 
方法二: fsck -t FS_TYPE
    -a 自動修復
    -r 交互修復
方法三: e2fsck ext系列文件系統檢測工具 
    -f 強制修復
    -y 自動回答為yes


使用示例

[[email protected] ~]# blkid /dev/sdb5
/dev/sdb5: UUID="680c887c-c9c9-4536-b9bb-13a0822c05ed" SEC_TYPE="ext2" TYPE="ext3" 
[[email protected] ~]# fsck.ext3  -a /dev/sdb5
[[email protected] ~]# fsck -t ext3  -r /dev/sdb5
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sdb5: clean, 11/655776 files, 79733/2622595 blocks
[[email protected] ~]# e2fsck -f /dev/sdb5
e2fsck 1.41.12 (17-May-2010)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/sdb5: 11/655776 files (0.0% non-contiguous), 79733/2622595 blocks
[[email protected] ~]# e2fsck -y /dev/sdb5
e2fsck 1.41.12 (17-May-2010)
/dev/sdb5: clean, 11/655776 files, 79733/2622595 blocks


擴展

1、blkid /dev/sda6 不顯示任何信息時,表示沒有配置文件系統

[[email protected] ~]# blkid /dev/sdb6
[[email protected] ~]# echo $?
2

2、linux和windows系統同時支持fat32,在linux中識別其為vfat格式,如果要u盤能同時在windows和linux之間使用時,
可在windows中格式化為 FAT32。
在linux中:# mkfs.vfat DEVICE
即可完成分區







本文出自 “Reading” 博客,請務必保留此出處http://sonlich.blog.51cto.com/12825953/1954299

謝煙客---------Linux之文件系統管理創建與掛載