您好,登錄后才能下訂單哦!
Linux磁盤及文件系統管理
CPU,Memory(RAM),I/O
I/O:Disks,Ethtercard
Disk:持久存儲數據
接口類型:
IDE(ata):并口,133MB/s
SCSI:并口,Ultrascsl320,320MB/s
SATA:串口,6gbps
SAS:串口,6gbps
USB:串口,480MB/s
并口:同一線纜可以接多塊設備;
IDE:倆個,主,從
SCSI:
寬帶:16-1
窄帶:8-1
iops:io per second
串口:一個
硬盤:機械硬盤,固態硬盤:
機械硬盤:
track:磁道
sector:扇區,512bytes
cylinder:柱面:不同磁盤的同一磁道
分區劃分基于柱面
平均尋道時間:
5400rpm,7200rpm,10000rpm,15000rpm
Linux的哲學思想:一切皆文件:
設備類型:
塊(block):隨機訪問,數據交換單位是“塊”;
字符(character):線性訪問,數據交換單位是“字符”;
設備文件:FHS
/dev
設備文件:關聯至設備的驅動程序;設備的訪問類型
設備號:
major:主設備號,區分設備類型;用于標明設備所需要的驅動程序
minor:次設備號,區分同種類型下的不同設備;是特定設備的訪問入口
mknod命令:
make block or character special files
mknod [OPTION]...NAME TYPE [MAJOR MINOR]
-m MODE:創建后的設備文件的訪問權限;
設備文件名:ICANN
磁盤:
IDE: /dev/hd[a-z]
例如: /dev/hda /dev/hdb
SCSI,SATA,USB,SAS:/dev/sa[a-z]
分區:
/dev/hda#
/dev/hda1,...
注意:CentOS 6和7系統將硬盤設備標識為/dev/sd[a-z]#
引用設備的方式:
設備文件名
卷標
UUID
磁盤分區:MBR,GPT
MBR:0 sector
Master Boot Record
分為三部分:
446bytes:bootloader,程序,引導啟動操作系統的程序;
64bytes:分區表,每16bytes標識一個分區,一共只能有4個分區;
2bytes:MBR區域的有效性標識;55AA位有效;否則為無效
主分區和擴展分區的標識:1-4
邏輯分區:5+
當我們想在系統里面新增一塊硬盤時:
1:對磁盤進行分區,以新建可用的分區
2:對該分區進行格式化,以創建系統可用的文件系統
3:對文件系統進行檢驗
4:在Linux系統上,需要創建掛載點(目錄),并且掛載上來
邏輯分區:fdisk
1:查看磁盤的分區信息
fdisk -l [-u] [device];列出指定磁盤設備上的分區信息
2:管理分區
fdisk device
fdisk提供了一個交互式接口來管理分區,它有許多子命令,分別用于不同的管理功能;
所有的操作均在內存中完成,沒有直接同步到磁盤,直到使用w命令保存至磁盤上 常用命令:
n:創建新分區
d: 刪除已有分區
t: 修改分區類型
l: 查看所有已有ID
w: 保存并退出
q: 不保存退出
m: 查看幫助信息
p: 顯示現有分區信息
注意:在已經分區并且已經掛載其中某個分區的磁盤設備上創建的新分區,內核可能在創建完成后
無法直接識別;
查看磁盤分區:cat /proc/partitions
通知內核強制重讀磁盤分區表:
CentOS 5:partprobe [device]
CentOS 6,7:partx,kpartx
增加分區同步
partx -a [device]
kpartx -af [device]
刪除分區同步
partx -d --nr 7-8 [device]
分區創建工具:
parted,sfdisk;
文件系統管理工具:
創建文件系統的工具:
mkfs
mkfs.ext2,mkfs.ext3 mkfs.ext4 mkfs.ext4 mkfs.xfs mkfs.vfat
檢測及修復文件系統的工具:
fsck
fsck.ext2等
查看其屬性的工具:
dumpe2fs,tune2fs
調整文件系統特性:
tune2fs
內核級文件系統的組成部分:
文件系統驅動:由內核提供
文件系統管理工具: 由用戶控件的應用程序提供
創建文件系統:
格式化:低級格式化(分區之前進行,劃分磁道)
高級格式化(分區之后對分區進行,創建文件系統)
創建文件系統:
linux文件系統類型:ext2 ext3 ext4 xfs relserfs iso9660 swap
元數據區,數據區
元數據區:
不包含文件名
文件元數據:inode(index node)
大小,權限,屬主屬組,時間戳,數據塊指針等
符號鏈接文件:存儲數據
ext系列文件系統的管理工具:
磁盤格式化:
mkfs -t ext3=mkfs.ext3
在格式化為ext3中,由于我們沒有詳細指明文件系統的具體選項,因此系統會使用默認值來進行格式化。
指定ext2/ext3具體選項(label,block大小或inode數量)
mke2fs [OPTIONS] device
-t:指明要創建的文件系統類型
mkfs -t ext3=mkfs.ext3
-b: {1024|2048|4096}:指明文件系統的塊大小
-j:創建有日志功能的文件系統ext3(默認是ext2)
make2fs -j=make2fs -t ext3=mkfs -t ext3=mkfs.ext3
-i #:指明inode與字節的比率;即每多少字節創建一個inode
-N #:直接指明要給此文件系統創建的inode的數量
-m #:指定預留的空間,百分比;
卷標為:hello kitty
block:2048
8192bytes分配一個inode
構建journal的ext3文件系統
e2label命令:卷標的查看與設定
查看:e2label device
設定:e2label device LABEL
tune2fs命令:查看或修改ext系列文件系統的某些屬性
注意:塊大小創建后不可修改
tune2fs [OPTIONS] device
-l:查看超級塊的內容
修改指定文件系統的屬性:
-j:ext2 -> ext3
-L LABEL:修改卷標
-m #:調整預留空間百分比
-O [^]FEATHER:開啟或關閉某種特性
-o [^]mount_options:開啟或關閉某種默認掛載選項
acl
^acl
dumpe2fs命令:顯示ext系列文件系統的屬性信息
dumpe2fs [-h] device
fsck命令:用于實現文件系統檢測的工具
因進程意外終止或系統崩潰等 原因導致定稿操作非正常終止時,可能會造成文件損壞;此時,應該檢測并修復文件系統;建議,離線進行。
e2fsck [options] device
-y:對所有問題自動回答為yes;
-f:即使文件系統處于clean狀態,也要強制檢測
第一步:檢查inode,塊,大小
第二步:檢查目錄結構
第三步:檢查目錄連接性
第四步:檢查引用信息
第五步:檢查簇概要信息
fsck命令:
-t fstype:指明文件系統類型;
fsck -t ext4=fsck.ext4
-a :無須交互而自動修復所有錯誤;
-r :交互式修復
blkid命令:查詢設備上所采用系統類型,UUID
blkid device
blkid -L LABEL:根據LABEL定位設備
blkid -U UUID: 根據UUID定位設備
swap文件系統:
Linux上的交換分區必須使用獨立的文件系統;
且文件系統的System ID必須為82;
創建swap設備:mkswap命令
mkswap [options] device
-L LABEL:指明卷標
-f:強制
Windows無法識別Linux的文件系統;因此,存儲設備需要在倆中系統之間交叉使用時,應該使用windows和Linux同時支持的文件系統:fat32(vfat)
# mkfs.vfat device
文件系統的使用:
首先要“掛載”:mount命令和umount命令
根文件系統之外的其他文件系統要想能夠被訪問,都必須通過“關聯”至跟文件系統上的某個目錄來實習,此關聯操作即為“掛載”;此目錄即為“掛載點”;
掛載點:mount_point,用于作為另一個文件系統的訪問入口;
(1)事先存在;
(2)應該使用未被或不會被其他進程使用到的目錄
(3)掛載點下原有的文件將會被隱藏
mount命令:
mount [-nrw] [-t 文件系統] [-L LABEL] [-o options] device dir
命令選項:
-r:readonly,只讀掛載;
-w:read and write,讀寫掛載;
-n:默認情況下,設備掛載或卸載的操作會同步更新在/etc/mtab中;用于禁于此操作
-t vfstype:指明要掛載的設備上的文件系統的類型;多數情況下可省略
此時mount會根據blkid來判斷要掛載的設備的文件類型
-L LABEL:掛載時以卷標的方式指明設備
-U UUID:掛載時以UUID的方式指明設備
-o options:掛載選項
sync/async:同步/異步操作;(同步:內存和磁盤同時寫入);
atime/noatiome:文件或目錄被訪問時是否更新訪問時間戳;
diratime/nodiratime:目錄被訪問時是否更新訪問時間戳;
remount:重新掛載;
acl:支持使用facl功能;
例:沒有加acl,不支持操作(不支持設定訪問控制功能)
mount下發現只有讀寫權限
我們用mount重新掛載,加入acl選項
再次進入/mnt 查看是否具有訪問控制功能
acl默認我們是不支持的,太危險了,你懂得,沒必要給自己挖坑
第二種方法:
tune2fs -o acl /dev/sda6 啟用acl
tune2fs -l /dev/sda6 查看acl是否啟用
ro:只讀
rw:讀寫
dev/nodev:此設備上是否允許使用設備文件;
exec/noexec:是否允許運行此設備上的程序文件;
auto/noauto:是否允許普通用戶掛載此文件系統;
suid/nosuid:是否允許程序文件上的suid和sgid特殊權限生效
defaults: Use default options()默認選項):
rw, suid, dev, exec, auto, nouser, async, and relatime
一個使用技巧:
可以實現將目錄綁定至另一個目錄上,作為臨時訪問路口;
mount --bind 源目錄 目標目錄
查看當前系統所有已掛在的設備;
# mount
# cat /etc/mtab
# cat /proc/mounts
掛載光盤:
mount -r /dev/cdrom mount_point(掛載點)
掛在U盤:
事先識別U盤的設備文件;
掛載本地的回環設備:
mount -o loop /PATH/TO/SOME_LOOP_FILE MOUNT_POINT
umount命令:
umount device | dir
注意:正在被進程訪問到的掛載點無法被卸載;
查看被哪個或者哪些進程所占用:
# lsof MOUNT_POINT或#fuser -v MOUNT_POINT
終止所有正在訪問某掛載點的進程:
# fuser -km MOUNT_POINT 強行T掉
# umount MOUNT_POINT 再取消掛載
交換分區的啟用:
創建交換分區的命令:mkswap
啟用:swapon
swapon [OPTION][DEVICE]
-a:定義在/etc/fstab文件中所有swap設備;
禁用:swapoff
swapoff DEVICE
設定除根文件系統以外的其他文件系統能夠開機時自動掛載:/etc/fstab文件
每行定義一個要掛載的文件系統及相關屬性:
6個字段
(1)要掛在的設備:
設備文件;
LABEL
UUID
偽文件系統:如sysfs,proc,tmpfs等
(2)掛載點
swap類型的設備的掛載點為swap;
(3)文件系統類型;
(4)掛載選項
defaults:使用默認掛載選項;
如果要同時使用多個掛載選項,彼此間以逗號分隔即可
例: defaults,acl,noatime,noexc
(5)轉儲頻率
0:從不備份;
1:每天備份;
2:每隔一天備份;
(6)自檢次序
0:不自檢;
1:首先自檢,通常只是根文件系統可用1;
2:次級自檢
...
mount -a:可自動掛載定義在此文件中的所有支持自動掛載的設備;
(1)用LABEL自動掛載
(2)用device自動掛載
倆個命令:df和du
df命令:
df [OPTION][FILE]
-l:僅顯示本地文件的相關信息;
-h:human—readable
-l:顯示inode使用狀態而非blocks
du命令:
du [OPTION][FILE]
-s:sumary
-h:human-readble
Lunix磁盤及文件管理系統博主就總結到這里,今天是星期日,博主從下午開始總結到寫博客,中間斷斷續續,現在已經感覺有一種精盡人亡的感覺了!那我們下節再見,我的心愿是世上再無心機婊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。