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分區管理介紹