1. 程式人生 > >linux分區管理介紹

linux分區管理介紹

linux 分區創建 格式化

1、查看分區:fdisk

fdisk -l [-u] [device...] 列出指定設備上的分區

如:

[root@localhost ~]# fdisk -l /dev/sda

Disk /dev/sda: 16.1 GB, 16106127360 bytes, 31457280 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x000d2b21

磁盤分區 開始扇區 結束扇區 所含塊數 分區類型 分區系統

Device Boot Start End Blocks Id System

/dev/sda1 * 2048 2099199 1048576 83 Linux

/dev/sda2 2099200 31457279 14679040 8e Linux LVM


2、管理分區:fdisk DEVICE

fdisk提供了一個交互式接口來管理分區,它有許多子命令,分別用於不同的管理功能,所有的操作均在內存中完成,,沒有直接同步到磁盤,直到使用“w“命令保存到磁盤上,操作才會生效。

如:

[root@localhost ~]# fdisk /dev/sda

Welcome to fdisk (util-linux 2.23.2).


Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.



Command (m for help): m

Command action

a toggle a bootable flag

b edit bsd disklabel

c toggle the dos compatibility flag

d delete a partition //刪除分區

g create a new empty GPT partition table

G create an IRIX (SGI) partition table

l list known partition types //查看所有分區ID

m print this menu //查看幫助信息

n add a new partition //創建新分區

o create a new empty DOS partition table

p print the partition table //顯示現有分區信息

q quit without saving changes //不保存退出

s create a new empty Sun disklabel

t change a partition‘s system id //修改分區類型

u change display/entry units

v verify the partition table

w write table to disk and exit //保存退出

x extra functionality (experts only)


Command (m for help): p


Disk /dev/sda: 16.1 GB, 16106127360 bytes, 31457280 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x000d2b21


Device Boot Start End Blocks Id System

/dev/sda1 * 2048 2099199 1048576 83 Linux

/dev/sda2 2099200 31457279 14679040 0 Empty


Command (m for help):

註意:在已經分區並且已經掛載其中某個分區的磁盤上創建的分區,內核可能在創建後無法直接識別。

查看內核識別到的分區信息:#cat /proc/partitions


通知內核強制重新讀取磁盤分區表:

centos5:

#partprobe [device]

centos6/7:

#partx -a [device]

或#kpartx -af {device]



3、創建好分區並被內核識別後,創建分區文件系統:

-----------------------------------------------------------------------------------------

文件系統相關知識介紹:

創建文件系統就是格式化硬盤的過程。

格式化:

低級格式化:分區之前進行的,一般用來劃分磁道

高級格式化:分區之後進行的,創建文件系統。


文件系統介紹:

文件系統由元數據、數據組成。

文件元數據所包括的內容是文件索引節點號(inode:index node)

文件元數據主要存放文件屬性的一些信息,如:文件大小、屬組、屬主、權限、時間戳等,除此之外,元數據區還存放數據塊指針,數據塊指針指向數據區的起始塊位置和結束塊位置。但是元數據區

不包括文件名。文件名是在數據區中的目錄上存放的,不是在元數據中存放的。


特殊文件介紹:

符號鏈接文件:存儲數據指針的空間當中,存儲的是真實文件的訪問路徑,自己不占據磁盤塊空間。符號鏈接文件的大小就是指定的文件的”路徑字符串“的大小。

設備文件:存儲數據指針的空間當中,存儲的是設備號(major、minor);設備文件也不占據磁盤塊空間。


鏈接文件:訪問同一個文件的不同路徑

硬鏈接:指向同一個inode的多個路徑,彼此間互不影響

符號鏈接:元數據中的數據指針存放的不是指向磁盤塊的數據,而是指向一個文件路徑的另一個文件路徑,它可以找到磁盤塊數據


鏈接文件的特性:

硬鏈接特性:

①目錄不支持硬鏈接

②硬鏈接不能跨文件系統

③創建硬鏈接文件會增加inode引用計算

創建硬鏈接文件:#ln 原文件 鏈接文件


符號鏈接文件特性:

①符號鏈接與文件是兩個各自獨立的文件,各有自己的inode

②支持對目錄創建符號鏈接,可以跨文件系統

③刪除符號鏈接文件不影響原文件,但刪除原文件,符號指定的路徑將不存在,此時會變成無效鏈接

④對原文件創建符號鏈接文件不會增加引用計數。

創建符號鏈接:#ln -s 原文件 符號鏈接文件




bitmanp:位圖索引

由於元數據區和數據區中的文件較多,存放數據時怎麽判斷哪些inode未使用,哪些數據塊未使用,用位圖索引中的每一個bit對應一個inode或數據塊,來標識其是否被使用。


文件查找過程:/var/log/message

查找message的過程是:從根入口找到“/”的inode,然後根據inode指針,查找數據塊區域中“/”下的數據,一般是inode號、目錄名,如inode為123,對應的文件名為var,然後在去元數據區查找123即var下文件,直到找到message文件。


vfs:虛擬文件系統

由於linux有眾多文件系統,為了方便開發人員對文件系統的調用,在各種文件系統之上加了一層vfs,vfs提供統一的文件接口給開發人員。


vfs支持的種類:

linux文件系統:ext2/3/4、xfs、btrfs、reiserfs ,除了ext2無日誌功能,其他都有日誌功能。

光盤:ISO9660

網絡文件系統:nfs、cifs

集群文件系統:gfs2、ocfs2

內核級分布式文件系統:ceph

wiondws文件系統:vfat、ntfs

偽文件系統:proc、sysfs、tmpfs、hugepagefs

unix文件系統:ufs、ffs、jfs

交換文件系統:swap

用戶空間的分布式文件系統:mogilefs、moosefs、glusterfs


交換分區:

將硬盤偽裝的虛擬內存與真實的內存數據進行交換,將真實內存中的不常用數據交換到虛擬內存中,需要時在交換回來。


文件系統的管理工具:

創建文件系統工具:mkfs、mkfs.ext2、mkfs.ext3、mkfs.ext4、mkfs.xfs、mkfs.vfs、mkfs.btrfs

檢查及修復文件系統的工具:fsck、fsck.cramfs、fsck.ext3 、fsck.fat、fsck.minix、fsck.vfat、fsck.btrfs、fsck.ext2、fsck.ext4 、fsck.gfs2 、fsck.msdos 、fsck.xfs

查看其屬性的工具:dumpe2fs、tune2fs

調整文件系統特性:tune2fs


文件系統分類:

有日誌型文件系統:浪費空間、占用I/O性能,性能會損失

無日誌型文件系統:


查看系統發行版本號:

#cat /etc/issue

或 ]# cat /etc/centos-release

查看系統內核版本號:

#uname -r


內核級文件系統的組成部分:

文件系統驅動:由內核提供

文件系統管理工具:由用戶空間的應用程序提供

-----------------------------------------------------------------------------------------


創建文件系統工具: mkfs

mkfs:通用分區文件系統創建命令,創建文件的統一接口,調用各種文件系統工具。

格式:

mkfs [options] [-t type] [fs-options] device [size]


3.1、ext系列的文件系統管理工具:

mkfs.ext2 mkfs.ext3 mkfs.ext4


mkfs創建格式:

#mkfs.ext{2,3,4} 分區 //創建ext系列分區


ext系列分區文件系統專用管理工具:mke2fs

格式:

mke2fs [option] DEVICE

option:

-t {ext2|ext3|ext4}:指明要創建的文件系統類型

-b {1024|2048|4096}:指明文件系統塊大小,分別是1k,2k,4k;

-L LABEL :指明卷標LABEL

-j :創建有日誌功能的文件系統ext3,

mke2fs -j=mke2fs -t ext3=mkfs -t ext3=mkfs.ext3

-i # :每多少字節指定一個inode;

-N # :直接指明要給此文件系統創建的inode的數量

-O [^ ] :以指定的特性創建目錄文件系統,[^ ]關閉指定的特性。

-m # :指定數據塊預留的空間,百分比


3.3、xfs文件系統創建格式:

mkfs.xfs [options] DEVICE

3.4、vsfat文件系統創建格式:

windows無法識別linux文件系統,因此存儲設備需要兩種系統之間交叉使用時,應該使用windows和linux同時支持的文件系統:vsfat

格式:mkfs.vfat DEVICE


4、給分區文件系統創建卷標

4.1、ext系列分區文件系統創建卷標:e2label

格式:

e2label device [ new-label ]

如:

[root@localhost ~]# e2label /dev/sdb1 "mylove"

[root@localhost ~]# blkid /dev/sdb1 //查看分區信息

/dev/sdb1: LABEL="mylove" UUID="6c60e1e5-d99c-4668-bed5-ccbd30e9bae3" TYPE="ext2"


4.2、xfs分區文件系統創建卷標:xfs_admin

xfs_admin [-L label] [-U uuid] device

5、通用查看創建的分區文件系統:(ext系列、xfs等)

#blkid 分區

或 #blkid -L label

或 #blkid -U uuid

xfs查看創建的分區文件系統

xfs_admin -l device


6、查看或修改ext系統文件的某些屬性:

6.1、tune2fs命令:查看、修改ext系列文件的屬性,但是塊大小創建後不可以修改

tune2fs命令格式:

tune2fs [options] DEVICE

options:

-l:查看超級塊的內容

-j:修改ext2分區文件系統成ext3類型,不損壞數據

-L:修改卷標,不損害數據

-m #:調整預留空間的百分比,不損害數據

-O [^ ]:調整某種屬性;不損害數據,(大寫O)

如:tune2fs -O has_journal /dev/sda3 //打開/dev/sda3的日誌特性

tune2fs -O ^has_journal /dev/sda3 //關閉/dev/sda3的日誌特性

-o [^ ]:開啟或關閉某種掛載選項;如:[^acl]:開啟或關閉文件的acl特性。


6.2、dumpe2fs命令:顯示ext系列分區文件系統的屬性信息;類型tune2fs命令

dumpe2fs DEVICE


7、文件系統的檢測工具:fsck,此命令適用於所有文件系統(ext系列、xfs、vsfat等)

因進程意外終止,或系統崩潰等原因,導致的寫入操作非正常終止時,可能會造成文件損壞,此時,應該檢測並修復文件系統;建議離線進行檢測。

fsck格式:

fsck [options] DEVICE

options:

-t fstype:指明文件系統類型

如:fsck -t ext4=fsck.ext4

-a:無需和用戶交互而自動修復所有錯誤,(修復就是將沒有完成的文件刪除,不建議使用此選項)

-r:交互式修復。


7.1、ext系列文件系統檢測專用工具:

e2fsck [option] DEVICE

option:

-y:對所有問題自動回答為yes;

-f:即使文件系統處於clean狀態(即沒有問題狀態);也要強制檢測執行。


7.2、xfs文件系統檢測專用工具:

fsck.xfs DEVICE




8、掛載、卸載文件系統

硬盤分區完成後,格式化(即創建完文件系統),掛載就可以使用了。


除了根文件系統之外的其他文件系統要想能夠被訪問,都必須通過“關聯至根文件系統上的某個目錄”來實現,此關聯操作即為“掛載”,此目錄即為“掛載點”;掛載點(mount_point)用於作為另一個文件系統的訪問入口;


掛載點特性:

①事先存在

②應該使用未被或不會被其他進程使用到的目錄

③掛載點下原有的文件將會被隱藏。


mount命令:

格式:mount [options] DEVICE MOUNT_POINT //mount 設備 掛載點

或:

mount [-fnrsvw] [-t vfstype] [-o options] device dir

options:

-r:制度掛載

-w:讀寫掛載,默認是此選項

-n:默認情況下,設備掛載或卸載的操作會同步到/etc/mtab文件中,-n用於禁止此特性;mtab文件顯示額了當前系統所有的掛載點。

-t:vfstype:指明要掛載的設備上文件系統的類型,可省略,此時mount會通過blkid來判斷要掛載的設備的文件系統類型。

-L LABEL:掛載時以卷標的方式來掛載

如:mount -L LABEL MOUNT_POINT

-U UUID:掛載時以UUID的方式指明掛載設備

如:mount -U UUID MOUNT_POINT

[-o options]

sync/async:同步/異步操作(寫入)

atime/moatime:文件或目錄在被訪問時是否更新其訪問時間戳。

dirtime/nodirtime:目錄在被訪問時,是否更新其訪問時間戳

remount:重新掛載

acl:支持使用facl功能。

mount -o remount acl /dev/sdb1 /mnt

或tune2fs -o acl device

ro:只讀

rw:讀寫

dev/nodev:此設備上是否允許創建設備文件

exec/noexec:是否允許運行此設備上的文件

auto/noauto:是否允許設備自動掛載

user/nouser:是否允許普通用戶掛載此文件系統

suid/nisuid:是否允許程序文件的suid和sgid特殊權限生效。


使用技巧:可以實現將一個目錄綁定至另一個目錄上,作為其臨時訪問入口:

用法:mount --bind 源目錄 目標目錄


查看當前系統所有已掛載的設備:

方法一:#mount

方法二:#cat /etc/mtab

方法三:#cat /proc/mount


掛載光盤:

#mount -r /dev/cdrom MOUNT_POINT //光盤的設備文件路徑:/dev/cdrom或/dev/dvd


卸載命令:

方法一:umount 設備名

方法二:umount 掛載點

註意:正在被訪問的掛載點不能被卸載,如果需要強制卸載按如下操作:

#lsof /mnt //查看/mnt掛載點正在被占用的信息

或#fuser -v /mnt //查看被哪個或哪些進程占用

使用如下命令強制卸載,終止所有正在訪問某掛載點的進程。

#fuser -km /mnt //強制卸載/mnt掛載點信息。


掛載本地的回環設備:如iso、img文件等

#mount -o loop /PATH/TO/SOME_LOOP_FILE MOUNT_POINT

如:#mount -o loop /root/centos7.iso /mnt







9、SWAP文件系統:緩存文件系統

linux上的交換分區必須使用獨立的文件系統(即獨立的磁盤分區),且文件系統的分區system ID必須為“82 Linux swap / So”

9.1、創建swap設備:mkswap命令 ;在分區的基礎上創建swap分區文件系統,

mkswap [option] DEVICE

option:

-L LABEL :手動指明卷標

-f:強制創建swap分區系統

9.2、掛載或卸載交換分區文件系統:

swapon、swapoff

格式:

Enable/disable:

swapon [-d] [-f] [-p priority] [-v] specialfile...

swapoff [-v] specialfile...


Enable/disable all:

swapon -a [-e] [-f] [-v]

swapoff -a [-v]

9.3、查看內存及緩存(交換分區)命令:

#free



10、開機自動掛載:

設定除根文件系統以外的其他文件系統能夠開機被自動掛載:/etc/fstab


/etc/fstab文件格式:用空格分開,每行定義一個要掛載的文件系統及相關屬性。

從左向右以空白分隔符分割的六個字段,分別是:

①要掛載的設備:可以有下列幾種表示

設備文件

LABEL

UUID

偽文件系統:如:sysfs、proc、tmpfs等

②掛載點

swap類型設備的掛載點為swap

③文件系統類型

④掛載選項:

default:使用默認掛載選項

如果要同時指明多個掛載選項,彼此間用逗號分開即可,如:default,acl,noatime

⑤轉儲頻率:(備份頻率)

0:從不備份

1:每天備份一次

2:每隔一天備份一次

⑥自檢次序:(0-9)次序可以是一樣的

0:不自檢

1:首先自檢,通常只能是根文件系統可用

2:次級自檢


11、df命令:diskfree,查看文件系統磁盤空間占用的情況

用法:df [OPTION]... [FILE]...

OPTION:

-L:只顯示本地文件系統的使用情況

-h:做單位換算

-i:顯示inode的使用情況,而不是blocks

如:

[root@localhost ~]# df /etc/

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/mapper/cl-root 13092864 6581148 6511716 51% /

[root@localhost ~]#


12、du命令:評估文件空間的占用大小,顯示文件的大小

du [OPTION]... [FILE]...

du [OPTION]... --files0-from=F

OPTION:

-s:匯總顯示,如du -s /etc

-h:做單位換算

如:

[root@localhost ~]# du /etc/passwd

4 /etc/passwd

[root@localhost ~]#

linux分區管理介紹