我們知道一塊磁盤是可以被分區成多個分區的(partition),以Windows的觀點來看,你可能會有一顆磁盤并且將他分區成為C:, D:, E:盤,那個C, D,E就是分區。Linux的設備都是以文件的型態存在,磁盤設備接口的不同也早就了磁盤文件名的不同。即IDE接口的磁盤設備文件名都是/dev/hd[a-z]的格式,例如:/dev/hda./dev/hdb。SCSI, SATA, SAS, USB接口的磁盤設備文件名都是:/dev/sd[a-z],例如sda.sdb,磁盤設備的命名主要是根據Linux核心偵測到磁盤的順序來進行的,例如你有兩塊SATA接口的硬盤要插在有六個SATA插槽的主板上,一塊插在SATA1接口上一塊插在STAT3接口上,因為是使用偵測到的順序來決定設備文件名,并非與實際插槽代號有關,所以這兩塊磁盤的命名就是SATA1插槽上為/dev/sda,而SATA3插槽上的為/dev/sdb。那么同一設備上的不同分區表示就是1.2.3.4.5這樣,/dev/sda磁盤上的分區命名為/dev/sda1,/dev/sda2….注意:centos6和centos7統統將硬盤設備文件標識為/dev/sda[a-z]#
文件系統是操作系統用于明確存儲設備,或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件機構稱為文件管理系統,簡稱文件系統。
磁盤分區
兩種分區方式: MBR, GPT
早期的 Linux 系統為了兼容Windows的磁盤,因此使用的是支持 Windows 的 MBR(Master Boot Record, 主要開機紀錄區)的方式來處理開機管理程序與分區表!而開機管理程序紀錄區與分區表則通通放在磁盤的第一個扇區, 這個扇區通常是512Bytes的大?。ㄅf的磁盤扇區是512Bytes)所以說,第一個扇區及(0扇區)512Byte會有兩個數據;
主要開機記錄區(Master Boot Record, MBR):主要用于引導系統啟動,有446 Bytes
分區表(partition table):記錄整顆硬盤分區的狀態,有64 Bytes
由于分區表所在區塊僅有64 Bytes容量,而每個分區要占用16Bytes,因此最多僅能記錄4個分區,每個記錄區記錄了該區段的啟始與結束的柱面號碼。假設這個設備名稱為/dev/sda/那么這個4個分區的命名分別是/dev/sda1,sda2,sda3,sda4.而這4個分區又被稱為主分區和擴展分區,通常這4個分區為3個主分區和一個擴展分區,而擴展分區又可延伸N個邏輯分區(注意;一旦運用擴展分區,即此擴展分區不在存儲實際數據,而是存儲指向邏輯分區的信息,邏輯分區的設備名只能從5開始。)
GPT支持128個分區,已經沒有所謂的主、延伸、邏輯分區的概念,每個都可以視為是主分區,使用64位,支持8Z(512Byte/block ) 64Z (4096Byte/block)GPT磁盤分區結構解決了MBR只能分4個主分區的的缺點,并且支持大硬盤,分區結構清晰簡單而且有備份。
使用128位UUID 表示磁盤和分區 GPT分區表自動備份在頭和尾兩份,并有CRC校驗位
UEFI (統一擴展固件接口)硬件支持GPT,使操作系統啟動
結構如;
保護MBR區:與 MBR 模式相似的,記錄開機引導信息程序。
GPT頭:這個部份紀錄了分區表本身的位置與大小,同時紀錄了備份用的GPT分區放置的位置,同時放置了分區表的檢驗碼(CRC32),操作系統可以根據這個檢驗碼來判斷GPT是否正確。若有錯誤,還可以通過這個紀錄區來取得備份的GPT(磁盤最后的那個備份區塊) 來恢復GPT的正常運行!
分區表:實際記錄分區信息處
管理分區
工具;fdisk,parted,sfdisk
fdisk 創建MBR分區,也支持GPT,對于一塊硬盤,最多只能管理15分區
gdisk 創建GPT分區
GNU parted 高級分區操作(創建、復制、調整大小等等)
partprobe-重新設置內存中的內核分區表版本
fdisk /dev/sdb
gdisk /dev/sdb 類fdisk 的GPT分區工具
lsblk:查看當前所有磁盤分區情況
fdisk命令
fdisk -l [-u] [device…]:列出指定磁盤設備上的分區情況;查看磁盤的分區信息
]# fdisk -l /dev/sda 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 15666 125316096 8e Linux LVM
上面可看到設備名稱是/dev/sda,大小為128G,等信息….,下邊一欄則顯示的是分區信息,可看到目前有兩個分區,分別sda1和sda2,而sda1作為了系統的引導分區,開始柱面為1,結束柱面為64,塊大小,分區類型ID等等…(注意;對cenots6來說start是開始柱面,End是結束柱面,對centos7來說start是開始扇區,End是結束扇區)
fdisk device(設備)
fdisk提供了一個交互式接口來管理分區,它有許多子命令,分別用于不同的管理功能;所有操作均在內存中進行,沒有直接同步到磁盤;直到使用w命令保存到磁盤上才會生效
n:創建新分區
d:刪除已有分區
t:修改分區類型
l:查看所有已知id
w:保存并且退出
q:不保存并退出
m:查看幫助信息
p:顯示現有分區信息
示例
~]# fdisk /dev/sda Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (7859-15665, default 7859): Using default value 7859 Last cylinder, +cylinders or +size{K,M,G} (7859-15665, default 15665): +10G Command (m for help): n Command action e extended p primary partition (1-4) e Selected partition 4 First cylinder (9165-15665, default 9165): Using default value 9165 Last cylinder, +cylinders or +size{K,M,G} (9165-15665, default 15665): Using default value 15665 Command (m for help): n First cylinder (9165-15665, default 9165): Using default value 9165 Last cylinder, +cylinders or +size{K,M,G} (9165-15665, default 15665): +10G Command (m for help): w ~]# partx -a /dev/sda
重讀分區表
創建后
partx -a /device
刪除后
partx -d -n M:N /dev/DEVICE
centos6: –nr N-M
CentOS 5, 7: 使用partprobe
partprobe [/dev/DEVICE]
也可在fdisk交互界面進行刪除分區動作
swap交換分區
交換分區是系統RAM的補充
linux上的交換分區必須使用獨立的文件系統
且文件系統的system id 必須為82
創建swap設備:mkswap命令
mkswap [option] device
-L label:指明卷標
-f:強制
交換分區的啟用和禁用:
啟用:swapon
swap [option][option]
使用swapon -a 激活交換空間:定義在/etc/fstab文件中的所有swap設備
禁用:swapoff
swapoff device
findfs :查找分區
findfs [options] LABEL=<label>
findfs [options] UUID=<uuid>
]# findfs UUID=40ad1cd6-2e57-422d-9af7-1015a582636d /dev/sdb1
管理文件系統:
Linux文件系統: : ext2(Extended file system), ext3,ext4, xfs( SGI) , btrfs( Oracle) , reiserfs, jfs(AIX) , swap
光盤: iso9660
Windows: fat32, ntfs
Unix: FFS( fast) , UFS( unix) , JFS2
網絡文件系統: NFS, CIFS
集群文件系統: GFS2, OCFS2( oracle)
分布式文件系統: ceph, moosefs, mogilefs, glusterfs,Lustre
RAW:未經處理或者未經格式化產生的文件系統
文件系統的組成部分:
文件系統驅動:由內核提供,
文件系統管理工具:由用戶空間的應用程序提供
如果一個文件系統想要在系統上運行起來的話,必須要裝載對應的模塊
lsmod:查看當前系統內核已經裝載的模塊,如果內核相應識別一個文件系統,必須先裝載這個模塊
創建文件系統的工具
mkfs;
mkfs.ext2(無日志功能),mkfs.ext3,mkfs.ext4,mkfs.xfs,mkfs.vfat…
centos6如果使用xfs文件系統,需要安裝(xfsgrogs)
再次執行mkfs.ext3 /dev/sda6,將ext2文件系統格式化為ext3。
當然了也可以再次格式話為ext4格式,ext4格式同樣支持日志功能,而且在單個文件和單個文件系統的大小比ext3性能更強大
centos6 默認不支持xfs
如果要安裝得先安裝xfsprogs工具;可用yum進行安裝,然后在執行]# mkfs.xfs /dev/sda6 -f 強制將文件系統格式化為xfs格式
檢測及修復文件系統的工具
fsck:check and repair a Linux file system(通用所有文件系統)使用此修復功能必須先取消掛載,要不會然會破壞數據
修復的工作特性就是把不連續的文件刪除進行的。
-t fstype:指明文件系統類型
fsck -t ext4 = fsck.ext4
-a:無需交互而自動檔修復所有錯誤;(不建議)
-r: 交互式修復;
windows文件系統
#mkfs.vfat device
windows無法識別linux的文件系統;因此,存儲設備需要兩種系統之間交叉使用時,應該使用windows和linux同時支持的文件系統;fat32(vfat);
blkid命令:可查看文件系統類型
blkid /dev/sda#
blkid -L label:根據label定位為設備
blkid -U UUID:根據UUID定位設備
每一個設備都有一個隨機的UUID;全局唯一標識符
lsblk命令
lsblk /device:查看磁盤分區類型
-f :磁盤分區類型和文件系統類型一起顯示
ext系列文件系統的管理工具:
mkfs.兩次tab可看到多種文件系列
mkfs.ext2,mkfs.ext3,mkfs.ext4(向前兼容較老的版本)
mkfs -t ext2=mkfs.ext2
ext2:沒有日志功能,ext3,4有日志功能,ext4性能有很大提升,建議使用ext4文件系統
命令
mkfs.ext2 /dev/sda#(敲下回車,及完成格式化文件系統)
mke2fs;
mke2fs [ option] device
-t{ext2|ext3|ext4}:指明要創建的文件系統類型
mkfs.etx4=mkfs -t ext4=mke2fs -t ext4
-b{1024|2048|4096}:指明文件系統的塊大?。?/p>
-L LABEL:指明卷標;
-j:創建有日志功能的文件系統ext3;
mke2fs -j = mke2fs -t ext3 = mkfs -t ext3 = mkfs.ext3
-i#:bytes-per-inode:指明inode與字節的比率;即每多少字節創建一個inode
-N#:直接指明要給此文件系統創建的inode的數量;
-m#:指定預留的空間,百分比;
-O[^]FEATURE:以指定的特性創建目標文件系統,不加^表示啟用此特性,加^表示關閉此特性
創建文件系統后回顯信息;
e2label命令:卷標的查看與設定
查看:e2label device
設定:e2label device LABEL
tune2fs命令:查看或修改ext系統文件系統的某些屬性
adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems:
注意:塊大小創建后不可修改
tune2fs [option]device
-l:查看超級塊的內容;
修改指定文件系統的屬性
-j:ext2 –>ext3
增加了日志功能,實際操作就是把ext2改為ext3
-L:LABEL:修改卷標
-m #:調整預留空間百分比
-O[^]FEATHER:開啟或關閉某種特性;
-o[^]mount_option:開啟或關閉某種默認掛載選項
acl
^acl
dumpe2fs命令:顯示ext系列文件系統的屬性信息
dumpe2fs [-h]device和tune2fs -l /device效果一樣
查看超級塊信息(分組信息),分區用分組管理
實現文件系統檢測的工具
因進程意外終止或系統崩潰等原因導致寫入操作非正常終止時,可能會造成文件損壞;此時,應該檢測并修復文件系統;建議,離線進行
e2fsck:check a Linux ext2/ext3/ext4 file system(ext系列文件專用的檢測修復工具)
e2fsck[option]device
-y:對所有問題自動回答為yes
-f:強制修復;即使文件系統處于clean狀態,也要強制進行檢測
使用文件系統:
首先要掛載:mount(掛載)命令和umount(卸載)命令
跟文件系統之外的其他文件系統要想能夠被訪問,都必須通過“關聯”至根文件系統上的某個目錄來實現,此關聯操作即為“掛載”;此目錄即為“掛載點”;
掛載點需要具備一下條件:mount_point,用于作為另一個文件系統的訪問入口
(1)事先存在
(2)應該使用未被或不會被其他進程使用到的目錄
(3)掛載點下原有的文件將會被隱藏;
mount命令:
mount [-nrw][-fnrsvw] [-t vfstype] [-o options] device dir
使用不帶任何選項的mount命令可以顯示當前所有已經掛載了的文件系統
設備掛載或卸
命令選項:
-r:readonly,只讀掛載;
-w:read and write,讀寫掛載
-n:默認情況下,載的操作會同步更新至/etc/mtab文件中;-n用于禁止此特性;
-t vfstype:指明要掛載的設備上的文件系統類型;多數情況下可省略,此時mount會通過blkid來判斷要掛載的設備的文件系統類型
-L LABEL:掛載時以卷標方式指明設備;
mount -L LABEL dir
-U UUID:掛載時以UUID方式指明設備;
-o option:掛載選項,多個選項之間用逗號隔開
默認掛載選項以外的選項才會顯示在/etc/mtab和/proc/mounts中
sync/async:同步/異步操作;
atime/noatime:文件或目錄在被訪問時是否更新其訪問時間戳;
diratime/nodirname:目錄在被訪問時是否更新其訪問時間戳;
remount:重新掛載
acl:支持使用facl功能
#mount -o acl device dir
#tune2fs -o acl device
ro:只讀
rw:讀寫
dev/nodev:此設備上是否允許創建設備文件;
exec/noexec:是否允許運行此設備上的程序文件;
auto/noauto:是否支持自動掛載,是否支持-a選項
user/nouser:是否允許普通用戶掛載此文件系統;
suid/nosuid:是否允許程序文件上的suid和sgid特殊權限生效
mount –bind 源目錄 目標目錄(可以實現將目錄綁定在另一個目錄上,作為其臨時訪問入口;)
defaults:Use default options: rw, suid, dev, exec, auto, nouser, async, and relatime.(不加任何選項的默認掛載生效的選項)
查看當前系統上所有已掛載的設備
#mount
#cat /etc/matb
#cat /proc/mounts
掛載光盤;
mount -r /dev/cdrom mount_point
===================================================================
光盤設備文件:/dev/cdrom
掛載U盤:
實現識別u盤的設備文件;
====================================================================
umount卸載命令:
umount device|dir
注意:正在被進程訪問到的掛載點無法被卸載;
查看被哪個或者哪些進程所用:
#lsof mount_point
#fuser -v mount_point
=====================================================================
終止所有正在訪問某掛載點的進程
#fuser -km mount_point
=====================================================================
掛載本地的回環設備;
#mount -o loop /path/to/some_loop_file mount_point
======================================================================
設定除了根文件系統以外的其他文件系統能夠開機時自動掛載:/etc/fstab文件
]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Wed Aug 24 19:00:44 2016 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/vg0-root / ext4 defaults 1 1 UUID=8eba0853-3403-459b-9021-b3fc0da22d99 /boot ext4 defaults 1 2 /dev/mapper/vg0-usr /usr ext4 defaults 1 2 /dev/mapper/vg0-var /var ext4 defaults 1 2 /dev/mapper/vg0-swap swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0
每行定義一個要掛載的文件系統及其相關屬性
6個字段:
(1)要掛載的設備
設備文件
LABEL
UUID
偽文件系統:如sysfs,proc,tmpts
(2)掛載點
swap類型的設備的掛載點為swap
(3)文件系統類型:
(4)掛載選項
defaults:使用默認掛載選項:
如果要同時指明多個掛載選項,彼此間以逗號分隔
(5)轉儲頻率(備份)
0:從不備份
1:每天備份
2:每隔一天備份
(6)自檢次序
0:不自檢
1:首先自檢,通常只能是根文件系統可用1
2:次級自檢
mount -a :可自動掛載定義在此文件中的所支持自動掛載的設備;
df和du補充
df命令:
df[option]…[file]
-l:僅顯示本地文件的相關信息
-h:human-readable
-i:顯示inode的使用狀態而非blocks
============================================
du命令:查看目錄大小
du[option]…[file]
-s:sumary
-h:human-readble
]# du -sh /root/ 78M /root/
命令整理
原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/40037
文章對各命令的作用,用法和常用選項總結的很完整,建議下來多加作,嘗試著靈活運用這些工具來實現,分區的創建與格式化并掛載使用。多動手才能明白自己的不足哦。