Linux系統中數據存儲在磁盤中,磁盤在馮諾依曼體系中屬于輸入輸出外部存儲對象,保存著重要的企業數據,對Linux系統中的磁盤管理尤其需要熟練掌握,由于企業目前使用的主流存儲設備還是硬盤,所以這里只敘述硬盤的組織結構;
1.分區:
(1)低級格式化:
硬盤在出廠的時候廠家會做一次分區格式化,主要是劃分磁道和的固定大小的扇區,這就是所謂的低級格式化,由廠商完成;
(2)分區作用:
廠家做完低級格式化后,整個磁盤是一個完成完整的物理邊界,直接使用當發生故障后,要修復的范圍是整個磁盤,同時在整個磁盤上實現對文件系統的管理效率是很低下的,尤其是大空間量的磁盤管理更加困難;可以通過劃分分區,劃分多個空間作為獨立管理對象,在一個相對較小獨立的空間中,即提高了故障修復速度,同時也提高了數據管理效率;
(3)分區視角:
通過上面的說明可以看出分區是磁盤空間的邏輯邊界;
(4)分區類型:
MBR:主引導記錄
這種分區方式通過MBR記錄各分區表的信息,開機引導操作系統的方式以及磁盤分區是否可以;具體如下
MBR:總大小512個字節,不參與分區空間劃分,記錄在磁盤的最開始處;
boot loader:引導加載器,前446byts;
分區表:總大小64bytes,16bytes標識一個分區;所以最多四個分區;
MBR分區類型:可以最多四個主分區或者三個主分區和一個擴展分區;
GPT:GUID(globals unique identfiers)
根據MBR劃分主分區的數量限制,滿足不了更大磁盤空間管理,所以有了GPT磁盤分區方式,GPT突破了傳統可以最大劃分128個分區,使用的是64位;分區結構如下:
Protective MBR:GPT分區保護,防止不能識別GPT分區的從而破壞GPT分區數據;
EFI:GPT頭
分區表
GPT分區
備份分區
(5)分區工具:
1.查看系統磁盤設備工具:要想管理,首先要知道系統有哪些磁盤可用;方式如下:
lsblk:查看系統磁盤設備情況
[root@xia7 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 488M 0 part /boot ├─sda2 8:2 0 40G 0 part / ├─sda3 8:3 0 20G 0 part /usr ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 2G 0 part [SWAP] sdb 8:16 0 100G 0 disk ├─sdb1 8:17 0 10G 0 part ├─sdb2 8:18 0 10G 0 part └─sdb3 8:19 0 20G 0 part /tmp/mnt
cat /proc/partitions :查看系統識別的設備信息
[root@xia7 ~]# cat /proc/partitions major minor #blocks name 8 0 209715200 sda 8 1 499712 sda1 8 2 41943040 sda2 8 3 20971520 sda3 8 4 1 sda4 8 5 2098176 sda5 8 32 20971520 sdc 8 33 20970496 sdc1 8 16 104857600 sdb 8 17 10485760 sdb1 8 18 10485760 sdb2 8 19 20971520 sdb3 8 48 20971520 sdd 8 49 20970496 sdd1 11 0 7587840 sr0 8 64 20971520 sde 8 65 20970496 sde1 8 80 20971520 sdf 8 81 20970496 sdf1 253 0 73400320 dm-0
ls -l /dev/sd* :查看系統讀取的設備
[root@xia7 ~]# ls -l /dev/sd* brw-rw---- 1 root disk 8, 0 Aug 30 20:25 /dev/sda brw-rw---- 1 root disk 8, 1 Aug 30 20:25 /dev/sda1 brw-rw---- 1 root disk 8, 2 Aug 30 20:25 /dev/sda2 brw-rw---- 1 root disk 8, 3 Aug 30 20:25 /dev/sda3 brw-rw---- 1 root disk 8, 4 Aug 30 20:25 /dev/sda4 brw-rw---- 1 root disk 8, 5 Aug 30 20:25 /dev/sda5 brw-rw---- 1 root disk 8, 16 Aug 31 09:45 /dev/sdb brw-rw---- 1 root disk 8, 17 Aug 31 09:45 /dev/sdb1 brw-rw---- 1 root disk 8, 18 Aug 31 09:45 /dev/sdb2 brw-rw---- 1 root disk 8, 19 Aug 31 09:45 /dev/sdb3
fdisk -l :查看設備詳細信息
[root@xia7 ~]# fdisk -l Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 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: 0x000f1359 Device Boot Start End Blocks Id System /dev/sda1 * 2048 1001471 499712 83 Linux /dev/sda2 1001472 84887551 41943040 83 Linux /dev/sda3 84887552 126830591 20971520 83 Linux /dev/sda4 126830592 419430399 146299904 5 Extended /dev/sda5 126834688 131031039 2098176 82 Linux swap / Solaris Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 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: 0xa573c896 Device Boot Start End Blocks Id System /dev/sdc1 2048 41943039 20970496 8e Linux LVM
(6)分區命令fdisk
語法格式:fdisk -l device
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 l list known partition types 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):
常用選項解釋說明:
m:查看幫助菜單
p:查看分區信息
n:創建分區:其中有子命令
e:創建擴展分區
p:創建主分區:
t:改變其他分區類型;默認為Linux分區
l|L :可以查看創建的分區的類型
d:刪除分區;需要指定分區編號,一個默認直接刪除;
o:轉換磁盤類型為msdos也就是MBR分區
w:保存修改退出
q:不保存修改退出
gdisk工具:專門創建GPT分區命令,使用格式跟fdisk命令使用類似,這里不再介紹;
(7)系統重新讀取修改配置命令:
讓系統讀取設備命令
partprobe [device]
partx -a device
讓系統刪除已經改變的分區
partx -d device
(8)高級分區parted命令:
這是一個實時生效的非交互式操作命令,實現分區管理
語法格式:
parted [device] [command] [argument]
常用選項:
mklabel gpt|msdos :設置磁盤分區類型
print :查看指定磁盤分區信息;
mkpart parimary 分區編號 分區大小 :創建分區類型指定編號及大?。?/span>
rm 分區編號:刪除第幾個分區
-l :查看所有磁盤信息
文件系統
文件系統是操作系統用于明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件結構稱為文件管理系統,簡稱文件系統。
從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲并對存入的文件進行保護和檢索的系統。具體地說,它負責為用戶建立文件,存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日志,壓縮,加密等。
文件系統類型:
這里主要簡述常用的Linux系統支持的文件系統類型;
ext系列:ext2,ext3,ext4
xfs
btrfs
reiserfs
光盤:iso9660
上面除了ext2不支持journal日志功能,其他都持續日志功能,同時支持日志的方式也有所不同,這些方式分別有自己特性,不過總的區別是文件安全和性能之間的取舍;
VFS
Linux系統能夠支持眾多的文件系統并存是因為Linux采用了虛擬文件系統(VFS)
VFS工作原理:
磁盤屬于硬件,文件系統是Linux內核kernel的功能,能夠真正操作硬盤(硬件)是Linux內核,硬件功能由系統調用systemcall提供,文件操作有open(),read(),write(),close(),create(),delete(),每個文件系統對文件的組織管理是不同的,說明調用方式也有所不同,也就是說管理文件系統的程序要想實現對不同文件系統中的文件操作,必須要把對所有文件系統的操作方式寫到程序中,這就勢必造成程序顯得十分臃腫,為了解決這種現象,Linux
內核通過VFS來磨合多種差異,因為只要讓VFS知道對每個文件系統的文件操作方式就行,以一個統一的接口提供給上層跟文件管理操作相關的程序,這就是Linux能夠支持眾多文件系統的原因;
查看當前內核支持的文件系統:
cat /proc/filesystems
[root@xia7 ~]# cat /proc/filesystems nodevsysfs nodevrootfs nodevbdev nodevproc nodevcgroup nodevcpuset nodevtmpfs nodevdevtmpfs nodevdebugfs nodevsecurityfs nodevsockfs nodevpipefs nodevanon_inodefs nodevconfigfs nodevdevpts nodevramfs nodevhugetlbfs nodevautofs nodevpstore nodevmqueue xfs nodevrpc_pipefs nodevnfsd ext3 ext2 ext4
創建文件系統:
mkfs命令工具:
語法
mkfs.filesystem_type /dev/device
mkfs [option] /dev/device
常用選項:
-t:指定文件系統類型
-L:指定LABEL,卷標
-i:inode
-N:創建多少個inode
-m:預留空間百分比,默認%5,留個系統管理員可操作空間;
mke2fs:創建ext系列文件系統命令工具:
語法格式:
mke2fs [option]…/dev/device
常用選項:
-j:創建ext3相當于-t ext3
-t:創建ext文件系統類型
-L:LABEL
-m:預留空間百分比,默認%5,留個系統管理員可操作空間;
-b:指定block的大小,1024,2048,4096
查看分區文件系統信息:
blkid命令:
語法格式:
blkid [option] /dev/device
[root@xia7 ~]# blkid /dev/sda1: UUID="385fe9f8-1da7-427c-8796-a43a39ea3908" TYPE="xfs" /dev/sda2: UUID="0af6d0c7-d33b-4807-85c1-eb43f2abd6a0" TYPE="xfs" /dev/sda3: UUID="8c33aaa4-511b-443d-b6f8-ef18fc432f48" TYPE="xfs" /dev/sda5: UUID="6cfe3bb8-08ff-450a-957e-dba4ba41ab09" TYPE="swap" /dev/sdb1: UUID="b5feec83-8838-4be8-9dbd-a7e63de2c699" TYPE="ext4" /dev/sdb2: UUID="aee25a1d-1e43-4b33-9a88-625e7d8a2bf6" TYPE="ext4" /dev/sdb3: UUID="60134f39-d392-4f35-a9ef-1eb63db73b0c" TYPE="ext4" /dev/sdd1: UUID="tKcKfd-l4zR-Z930-hyKP-szq8-eLae-usPI4l" TYPE="LVM2_member" /dev/sr0: UUID="2015-12-09-22-36-30-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" /dev/myvg/mylv: UUID="ec682d89-d8dc-4f96-8d59-ba30f1b8a6f6" TYPE="ext4"
e2label命令:管理ext系列文件系統卷標命令
語法格式:
e2label [option] /dev/device
[root@xia7 ~]# e2label /dev/sdb3 mydate1 [root@xia7 ~]# e2label /dev/sdb3 mydate1 [root@xia7 ~]#
tune2fs命令:調整ext系列文件系統屬性命令
語法格式:
tune2fs [option]… /dev/device
常用選項:
-o:acl
-o:^acl
-L:LABEL
-l:查看設備詳細屬性
[root@xia7 ~]# tune2fs -o acl /dev/sdb3 tune2fs 1.42.9 (28-Dec-2013) [root@xia7 ~]# tune2fs -l /dev/sdb3 tune2fs 1.42.9 (28-Dec-2013) Filesystem volume name: mydate1 Last mounted on: <not available> Filesystem UUID: 60134f39-d392-4f35-a9ef-1eb63db73b0c Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue
findfs :根據分區的UUID和LABEL查分區
findfs [option] LABEL=
findfs [option] UUID=
[root@xia7 ~]# findfs LABEL=mydate1 /dev/sdb3
uuidgen 生成UUID命令
[root@xia7 ~]# uuidgen 4dee18b8-d127-4210-9173-7e8dd02c2e3e
dumpe2fs:查看ext系列文件系統詳細信息
語法格式:
dumpe2fs [option] /dev/device
文件系統修復工具:
fsck:修復文件系統命令:
語法格式:
fsck.filesystem_type /dev/device
fsck [option] /dev/device
常用選項:
-r:交互式修復
-a:自動修復
-t:指定文件系統類型
[root@xia7 ~]# fsck.ext4 /dev/sdb2 e2fsck 1.42.9 (28-Dec-2013) mydatedb: clean, 11/655360 files, 83137/2621440 blocks [root@xia7 ~]#
e2fsck:修復ext系列文件系統命令:
語法格式:
e2fsck option [device]
常用選項:
-p:查看文件系統是否正常
-f:強制檢查
-y:自動修復
文件系統掛載mount
linux的其他分區文件系統要想使用必須關聯至rootfs根文件系統目錄下,作為其他分區文件系統的訪問入口,關聯的目錄稱為掛載點,關聯過程稱為掛載,需要使用的命令工具是mount,關機重啟時會失效,要想永久有效,需要寫入到配置文件/etc/fstab;
mount:掛載命令:
語法格式
mount [option][-o[option]…] 掛載設備 掛載點(目錄)
掛載設備
設備名
UUID="UUID"
LABEL="label"
掛載點
注意掛載目錄必須事先存在,同時確認掛載目錄中沒有其他文件,否則掛載成功會隱藏文件
常用選項:
-a:自動掛載/etc/fstab文件中的配置
-n:掛載成功后不把配置信息寫入/etc/mtab文件中;
-t:指定掛載設備類型
-r:只讀掛載
-w:讀寫掛載
-o:這個選項有很多其他子命令,列出常用選項
remount:重新掛載
ro:只讀掛載
rw:讀寫掛載
sync/nosync:磁盤寫入數據方式,同步還是異步;
suid/nosuid:是否啟用suid、sgid特殊權限位;
–bind:簡寫-B,可以掛載目錄
/etc/fstab配置文件語法格式
原創文章,作者:xiashixiang,如若轉載,請注明出處:http://www.www58058.com/42599