一.分區(qū)工具fdisk
(1)分區(qū)工具fdisk工具的使用:
fdisk -l -u :查看分區(qū)表,該命令是在磁盤上看分區(qū)的情況。在內(nèi)存看的方法是"lsblk,ls /dev/sdb ,cat /proc/partition"(在centos6中,查看的分區(qū)是以柱面為單位,而centos7中是以扇區(qū)為單位)
image.pngimage.png
'可以通過fdisk -l -u 進(jìn)行單位的轉(zhuǎn)換'
p 分區(qū)列表 ?
fdisk /dev/sdb:管理分區(qū)列表
子命令的學(xué)習(xí)
image.png
t 更改分區(qū)類型 ?image.pngimage.png
n 創(chuàng)建新分區(qū) ?image.png
d 刪除分區(qū)——將不要的分區(qū)刪除,在執(zhí)行時,選擇刪除具體的分區(qū)號image.png
v 校驗(yàn)分區(qū) ?
u 轉(zhuǎn)換單位 ——centos6與centos7中的以扇區(qū)為單位和柱面為單位進(jìn)行轉(zhuǎn)換
w 保存并退出 ——保存后,磁盤的內(nèi)容會同步到內(nèi)存中image.png
q 不保存并退出注意:在執(zhí)行w和d命令的時候,會發(fā)生內(nèi)存和磁盤之間不同步的情況,因此每次分區(qū)后,都要確認(rèn)是否同步
image.png在centos6中無法用上圖中的方法同步磁盤與內(nèi)存的內(nèi)容,但是可以通過執(zhí)行"partx -a /dev/sda(增加磁盤分區(qū))實(shí)現(xiàn)同步或是partx -d --nr 6-8(刪除磁盤分區(qū)第6到8行)"
(2)查看內(nèi)核是否已經(jīng)識別新的分區(qū):
cat /proc/partations 或者是 lsblk?
centos6通知內(nèi)核重新讀取硬盤分區(qū)表(partprobe無法再centos6中實(shí)現(xiàn))
新增分區(qū)用
partx -a /dev/DEVICE
kpartx -a /dev/DEVICE
-f: force 刪除分區(qū)用
partx -d --nr M-N /dev/DEVICE ?
CentOS 5,7: 使用partprobe partprobe [/dev/DEVICE]
二.文件系統(tǒng)
(1)文件系統(tǒng)的概念
文件系統(tǒng)是操作系統(tǒng)用于明確存儲設(shè)備或分區(qū)上的文件的方 法和數(shù)據(jù)結(jié)構(gòu);即在存儲設(shè)備上組織文件的方法。操作系統(tǒng) 中負(fù)責(zé)管理和存儲文件信息的軟件結(jié)構(gòu)稱為文件管理系統(tǒng), 簡稱文件系統(tǒng)
從系統(tǒng)角度來看,文件系統(tǒng)是對文件存儲設(shè)備的空間進(jìn)行組 織和分配,負(fù)責(zé)文件存儲并對存入的文件進(jìn)行保護(hù)和檢索的 系統(tǒng)。具體地說,它負(fù)責(zé)為用戶建立文件,存入、讀出、修 改、轉(zhuǎn)儲文件,控制文件的存取,安全控制,日志,壓縮, 加密等
(2)文件系統(tǒng)類型
Linux文件系統(tǒng):ext2(Extended file system), ext3(相對于ext2,增加了日志功能)
日志的功能:在實(shí)際運(yùn)行中磁盤會將數(shù)據(jù)輸送到內(nèi)存中,在內(nèi)存中多次修改數(shù)據(jù)后,將數(shù)據(jù)統(tǒng)一寫入到磁盤中,也就是延遲寫入磁盤中,提高工作效率。但是缺陷是內(nèi)存在服務(wù)器斷電后無法存儲數(shù)據(jù),那么之前修改的內(nèi)容就會全部消失。所以增加日志的功能來解決上述問題——日志位于磁盤中,內(nèi)存修改的數(shù)據(jù)會寫入日志中,日志將數(shù)據(jù)存儲后,等到磁盤不繁忙的時候?qū)?shù)據(jù)(所有修改后的數(shù)據(jù))寫入到磁盤中,減少位尋址的時間,提高工作效率。
ext4——能夠支持更大的文件
xfs(SGI)——應(yīng)用在centos7上
btrf(Oracle)
reiserfs
jfs( AIX)——應(yīng)用于IBM小型機(jī)上
swap——實(shí)現(xiàn)虛擬內(nèi)存 ,屬于特殊分區(qū)
光盤:iso9660 ?
Windows:FAT32, exFAT,NTFS ?
Unix: FFS(fast), UFS(unix), JFS2 ?
網(wǎng)絡(luò)文件系統(tǒng):NFS, CIFS ?
集群文件系統(tǒng):GFS2, OCFS2(oracle) ?
分布式文件系統(tǒng): fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre ?
RAW:未經(jīng)處理或者未經(jīng)格式化產(chǎn)生的文件系統(tǒng)
(3)文件系統(tǒng)分類
根據(jù)其是否支持"journal"功能:
日志型文件系統(tǒng): ext3, ext4, xfs, ...
非日志型文件系統(tǒng): ext2, vfat ?
文件系統(tǒng)的組成部分:
內(nèi)核中的模塊:ext4, xfs, vfat
用戶空間的管理工具:
mkfs.ext4, mkfs.xfs,mkfs.vfat
image.png
image.png
Linux的虛擬文件系統(tǒng):
VFS ?
查前支持的文件系統(tǒng):cat /proc/filesystems
(4)創(chuàng)建文件系統(tǒng)
mkfs命令: ?
mkfs.FS_TYPE /dev/DEVICE
image.pngimage.pngimage.png
ext4 xfs btrfs vfat ?
mkfs -t FS_TYPE /dev/DEVICEmke2fs /dev/sdc2image.pngimage.pngimage.png
-L 'LABEL': 設(shè)定卷標(biāo)
(5)創(chuàng)建ext文件系統(tǒng)
mke2fs:ext系列文件系統(tǒng)專用管理工具 ——不支持xfs
-t {ext2|ext3|ext4} ——指定文件系統(tǒng)類型
-b {1024|2048|4096} ——創(chuàng)建塊的大小
image.png
-L 'LABEL'——卷標(biāo)名
image.png
-j: 相當(dāng)于 -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #: 為數(shù)據(jù)空間中每多少個字節(jié)創(chuàng)建一個inode;此大小不應(yīng)該小于block的大小
"mkfs.ext4 -i 4096 -b 1024 /dev/sdc5:為一個inode創(chuàng)建4096字節(jié)的空間,而一個數(shù)據(jù)塊為1024個字節(jié),也就是說一個inode(文件)對應(yīng)四個數(shù)據(jù)塊。如果inode的字節(jié)空間小于或等于數(shù)據(jù)塊,會使節(jié)點(diǎn)號空間大,而數(shù)據(jù)塊變小,而導(dǎo)致節(jié)點(diǎn)號的浪費(fèi)"
-N #:指定分區(qū)中創(chuàng)建多少個inode——mkfs.ext4 -N 25600 /dev/sdc5
-I 一個inode記錄占用的磁盤空間大小,128---4096——最小為128個字節(jié),最大為4096個字節(jié),修改占用磁盤空間的數(shù)值為128的倍數(shù)
-m #: 默認(rèn)5%,為管理人員預(yù)留空間占總空間的百分比 ——根據(jù)分區(qū)空間大小而定,如果一個分區(qū)很大,可以將默認(rèn)值改為小于%5的值"tune2fs -m 1 /dev/sdc5"
image.pngimage.png
-O FEATURE[,...]:啟用指定特性
-O ^FEATURE:關(guān)閉指定特性
(6)文件系統(tǒng)標(biāo)簽
指向設(shè)備的另一種方法 ?
與設(shè)備無關(guān) ?
blkid:塊設(shè)備屬性信息查看 ——blkid /dev/sdc5
image.png
不支持用blkid查看文件,若果想看,可以通過手動修改的方式實(shí)現(xiàn)——
dd if=/dev/zero of=/app/partfile bs=1M count=500,然后通過blkid /app/partfile可以查看屬性
image.png
blkid [OPTION]... [DEVICE]
-U UUID: 根據(jù)指定的UUID來查找對應(yīng)的設(shè)備image.png
小練習(xí):查看/etc/fstab 下的 /app 的uuid對應(yīng)的設(shè)備名
image.png
image.png
-L LABEL:根據(jù)指定的LABEL來查找對應(yīng)的設(shè)備 ?image.png
e2label:管理ext系列文件系統(tǒng)的LABEL e2label DEVICE [LABEL] ——通過該命令可以設(shè)置相同的卷標(biāo)名,操作系統(tǒng)不會檢查,因此更加明確配置文件的時候最好寫uuid
例: e2lable /dev/sda2(設(shè)備名) /mnt/sdc5(卷標(biāo)名)——給sda2設(shè)定了卷標(biāo)名
查看卷標(biāo)名: e2lable 設(shè)備名
findfs :查找分區(qū)
findfs [options] LABEL=<label>image.png
findfs [options] UUID=<uuid>image.png
(7)tune2fs
tune2fs:重新設(shè)定ext系列文件系統(tǒng)可調(diào)整參數(shù)的值
-l:查看指定文件系統(tǒng)超級塊信息;super block-L 'LABEL':修改卷標(biāo)image.png
-m #:修預(yù)留給管理員的空間百分比
-j: 將ext2升級為ext3
-O: 文件系統(tǒng)屬性啟用或禁用——創(chuàng)建/dev/sdc2的文件系統(tǒng)類型為ext2(無日志),通過tune2fs -O has_ journal /dev/sdc2來增加日志功能image.png
–O ^has_journal——通過該命令取消日志功能
-o: 調(diào)整文件系統(tǒng)的默認(rèn)掛載選項(xiàng)——例如新增加的磁盤沒有acl權(quán)限,通過tune2fs -o acl +設(shè)備名可以增添acl
–o ^acl——取消acl
-U UUID: 修改UUID號
dumpe2fs: 塊分組管理,32768塊——dumpe2fs /dev/sdc5image.png
-h:查看超級塊信息,不顯示分組信息=tune2fs -l /dev/sdc5
(8)文件系統(tǒng)檢測和修復(fù)
常發(fā)生于死機(jī)或者非正常關(guān)機(jī)之后 ? 掛載為文件系統(tǒng)標(biāo)記為“no clean” ?
注意:一定不要在掛載狀態(tài)下修復(fù) ?
fsck: File System Check fsck.FS_TYPE
fsck -t FS_TYPE
-p: 自動修復(fù)錯誤
-r: 交互式修復(fù)錯誤
FS_TYPE一定要與分區(qū)上已經(jīng)文件類型相同
e2fsck:ext系列文件專用的檢測修復(fù)工具
-y:自動回答為yes
-f:強(qiáng)制修復(fù)
三.掛載mount
掛載:將額外文件系統(tǒng)與根文件系統(tǒng)某現(xiàn)存的目錄建立起關(guān)聯(lián) 關(guān)系,進(jìn)而使得此目錄做為其它文件訪問入口的行為 ?
掛載點(diǎn)下原有文件在掛載完成后會被臨時隱藏
卸載:為解除此關(guān)聯(lián)關(guān)系的過程 ——取消掛載時,可以寫設(shè)備名,也可以寫掛載點(diǎn),取消掛載時,如果掛載在使用,也不能取消,只有離開掛載的時候才能取消?
把設(shè)備關(guān)聯(lián)掛載點(diǎn):mount Point mount ?
image.png
掛載點(diǎn)目錄一般為空
**注意:多個設(shè)備不能掛載在同一個掛載點(diǎn)上,但是一個設(shè)備可以掛載在多個掛載點(diǎn)上
掛載方法:mount DEVICE(設(shè)備名) MOUNT_POINT(掛載點(diǎn)) ?
mount:通過查看/etc/mtab文件顯示當(dāng)前已掛載的所有設(shè)備image.png
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要掛載的設(shè)備;
(1) 設(shè)備文件:例如/dev/sda5
(2) 卷標(biāo):-L 'LABEL', 例如 -L 'MYDATA'
(3) UUID, -U 'UUID':例如 -U '0c50523c-43f145e7-85c0-a126711d406e'
(4) 偽文件系統(tǒng)名稱:proc, sysfs, devtmpfs, configfs
dir:掛載點(diǎn)
事先存在;建議使用空目錄
進(jìn)程正在使用中的設(shè)備無法被卸載
一些常用的選項(xiàng)命令
-B, --bind: 綁定目錄到另一個目錄上
-t vsftype:指定要掛載的設(shè)備上的文件系統(tǒng)類型 ——一般不用t選項(xiàng),應(yīng)為mount本身就具備文件系統(tǒng)類型?
-r: readonly,只讀掛載 ?
-w: read and write, 讀寫掛載 ?
-n: 不更新/etc/mtab,mount不可見——可以通過cat /proc/mounts的方式來查看 ?
-a:自動掛載所有支持自動掛載的設(shè)備(定義在了/etc/fstab 文件中,且掛載選項(xiàng)中有auto功能) ?
-L 'LABEL': 以卷標(biāo)指定掛載設(shè)備 ?
-U 'UUID': 以UUID指定要掛載的設(shè)備 ?
image.png
查看內(nèi)核追蹤到的已掛載的所有設(shè)備 cat /proc/mounts
-o options:(掛載文件系統(tǒng)的選項(xiàng)),多個選項(xiàng)使用逗號分隔
async:異步模式
sync:同步模式,內(nèi)存更改時,同時寫磁盤
atime/noatime:包含目錄和文件
diratime/nodiratime:目錄的訪問時間戳
auto/noauto:是否支持自動掛載,是否支持-a選項(xiàng)
exec/noexec:是否支持將文件系統(tǒng)上運(yùn)行應(yīng)用程序
dev/nodev:是否支持在此文件系統(tǒng)上使用設(shè)備文件
loop: 使用loop設(shè)備——正常情況下,無法將文件掛載在掛載點(diǎn)(目錄)
suid/nosuid:是否支持suid和sgid權(quán)限——在掛載過程中,有時候如果加上suid權(quán)限,那么普通用戶會繼承權(quán)限,然后對文件進(jìn)行修改甚至是破壞。因此必要時應(yīng)該加上nosuid來保護(hù)文件
remount:重新掛載——mount -o remount rw /mnt/sdc5重新掛載恢復(fù)讀寫功能
ro:只讀
rw:讀寫
user/nouser:是否允許普通用戶掛載此設(shè)備,/etc/fstab使用
acl:啟用此文件系統(tǒng)上的acl功能——在centos6中,后分的分區(qū)沒有acl功能。通過mount -o remount ,acl /dev/sdc2 給該分區(qū)增加acl權(quán)限。取消: mount -o remount,noacl /dev/scd2
因此使用loop功能來實(shí)現(xiàn)——image.pngimage.png
但是此方法會消耗loop設(shè)備,消耗完后,無法在使用該方法image.png
當(dāng)loop設(shè)備消耗完后,可以通過mknod的方式來創(chuàng)建新的loop設(shè)備image.png
在centos7中自動生成loop設(shè)備,并且會根據(jù)用戶的需求來創(chuàng)建loop設(shè)備
在centos6中,以后可以事先就準(zhǔn)備好多個loop設(shè)備來實(shí)現(xiàn)文件掛載到目錄上——vim /boot/grub/gurb.confimage.png
defaults:相當(dāng)于rw, nosuid, dev, exec, auto, nouser, async——這些都是默認(rèn)功能
四.卸載命令
(1)看掛載情況 findmnt MOUNT_POINT|device
findmnt /dev/sdc2 echo $?或是 findmnt /mnt echo $
image.png
查看正在訪問指定文件系統(tǒng)的進(jìn)程
lsof MOUNT_POINT
fuser -v MOUNT_POINT ?
終止所有在正訪問指定的文件系統(tǒng)的進(jìn)程 fuser -km MOUNT_POINT ?
卸載 umount DEVICE umount MOUNT_POINT
(2)掛載點(diǎn)和/etc/fstab
配置文件系統(tǒng)體系 ?
被mount、fsck和其它程序使用 ?
系統(tǒng)重啟時保留文件系統(tǒng)體系 ?
可以在設(shè)備欄使用文件系統(tǒng)卷標(biāo) ?
使用mount -a 命令掛載/etc/fstab中的所有文件系統(tǒng)
(3)文件掛載配置文件
/etc/fstab每行定義一個要掛載的文件系統(tǒng) ?
要掛載的設(shè)備或偽文件系統(tǒng)
設(shè)備文件
LABEL:LABEL=""
UUID:UUID=""
偽文件系統(tǒng)名稱:proc, sysfs ?
掛載點(diǎn) ?
文件系統(tǒng)類型 ?
掛載選項(xiàng):defaults ?
轉(zhuǎn)儲頻率:0:不做備份 1:每天轉(zhuǎn)儲 2:每隔一天轉(zhuǎn)儲 ?
自檢次序: 0:不自檢 1:首先自檢;一般只有rootfs才用1
image.png
五.處理交換文件和分區(qū)
交換分區(qū)的概念:交換分區(qū)是系統(tǒng)RAM的補(bǔ)充——與內(nèi)存交換數(shù)據(jù),當(dāng)內(nèi)存空間不夠的時候,可以代替內(nèi)存來臨時使用(相當(dāng)于模擬內(nèi)存,但不能持續(xù)使用,運(yùn)行速度較慢)。用戶不能直接在swap里存數(shù)據(jù)
基本設(shè)置包括:
1 創(chuàng)建交換分區(qū)或者文件 2 使用mkswap寫入特殊簽名 3 在/etc/fstab文件中添加適當(dāng)?shù)臈l目 4 使用swapon -a 激活交換空間(1)掛載交換分區(qū)
啟用:swapon swapon [OPTION]... [DEVICE]
-a:激活所有的交換分區(qū);
-p PRIORITY:指定優(yōu)先級
/etc/fstab:pri=value ?
禁用:swapoff [OPTION]... [DEVICE]
當(dāng)給虛擬機(jī)增加1G內(nèi)存的時候,根據(jù)計(jì)算規(guī)則swap分區(qū)相應(yīng)也也增加一倍,但是swap內(nèi)存大小是無法改變的,因此只能通過增加swap的數(shù)量來到目的
實(shí)現(xiàn)步驟:1.創(chuàng)建一個新的分區(qū),fdisk /dev/sdb1, 分兩個G的空間,文件類型為swap
[root@centos7 ~]#mkswap /dev/sdb1——用swap的方式格式化
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=375d5eb3-eccc-40a6-bd10-ef608f5661c2
[root@centos7 ~]#blkid——查看是否生效
/dev/sda1: UUID="6557897d-1496-4f78-ae5e-752fc7144b88" TYPE="xfs"
/dev/sda2: UUID="x33BZA-DiXm-yA9v-Yo76-cOya-0AQ3-ZqC1eX" TYPE="LVM2_member"
/dev/sr0: UUID="2016-12-05-13-52-39-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/cl-root: UUID="a90515e3-934d-44bc-9af5-7c944741e496" TYPE="xfs"
/dev/mapper/cl-swap: UUID="90c6521e-424f-4135-a851-1ae0f65cd661" TYPE="swap"
/dev/mapper/cl-app: UUID="a8322ecd-0d0a-4f80-9899-141c3873f4b8" TYPE="xfs"
/dev/sdb1: UUID="375d5eb3-eccc-40a6-bd10-ef608f5661c2" TYPE="swap"
image.pngimage.png
2.寫入/ect/fstab
image.png
3.保存后,通過swapon -a 來激活交換空間,此時swap的內(nèi)存成功增加一倍
image.png
(2)SWAP的優(yōu)先級
可以指定swap分區(qū)0到32767的優(yōu)先級,值越大優(yōu)先級越高 ?
如果用戶沒有指定,那么核心會自動給swap指定一個優(yōu)先級 ,這個優(yōu)先級從-1開始,每加入一個新的沒有用戶指定優(yōu)先 級的swap,會給這個優(yōu)先級減一 ?
先添加的swap的缺省優(yōu)先級比較高,除非用戶自己指定一個 優(yōu)先級,而用戶指定的優(yōu)先級(是正數(shù))永遠(yuǎn)高于核心缺省指定 的優(yōu)先級(是負(fù)數(shù)) ?
優(yōu)化性能:分布存放,高性能磁盤存放- 例:對于上述剛剛增加的swap分區(qū),我們就可以來看看其優(yōu)先級大小
image.png
對此我們可以認(rèn)為指定優(yōu)先級的大小image.pngimage.png
六.移動介質(zhì)
(1)初步介紹
掛載意味著使外來的文件系統(tǒng)看起來如同是主目錄樹的一部分 ?
注意事項(xiàng):訪問前、介質(zhì)必須被掛載 ? 摘除時,介質(zhì)必須被卸載 ?
按照默認(rèn)設(shè)置,非根用戶只能掛載某些設(shè)備(光盤、DVD、軟 盤、USB等等) ?
掛載點(diǎn)通常在/media 或/mnt下
(2)使用光盤
在圖形環(huán)境下自動啟動掛載/run/media/<user>/<label> ?
否則就必須被手工掛載 mount /dev/cdrom /mnt/ ?
eject命令卸載或彈出磁盤 ?
創(chuàng)建ISO文件 cp /dev/cdrom /root/centos7.iso mkisofs -r -o /root/etc.iso /etc ? 刻錄光盤 wodim –v –eject centos.iso
例1:將光盤做成iso鏡像文件
cp /dev/sr0 /app/centos6.iso ,確認(rèn)復(fù)制成功后,將該鏡像文件傳到windows中(通過sz命令),然后在centos7中掛載該鏡像文件,打開centos7,這樣就安裝系統(tǒng)了
例2:將目錄打包成一個文件,兩張光盤合成為一個光盤
步驟:
1.先創(chuàng)建一個目錄,mkdir /centos6
cp -r /media/CentOS_6.9_Final/ /app/centos6
2.然后取消當(dāng)前掛載,掛載另一個鏡像光盤,再執(zhí)行
cp -r /media/CentOS_6.9_Final/Packages/*.rpm /app/centos6/Packages/
mkisofs -r -o CentOS-6.9-x86_64-Everything.iso /app/centos6I(打包鏡像為一個iso)
3.但是目前這個iso鏡像只能當(dāng)yum源,不能啟動,所以要導(dǎo)入一個mkdvdiso.sh腳本,倒入腳本后,重新掛載會原來的的鏡像光盤。此時安裝yum install isomd5sum
給腳本加執(zhí)行權(quán)限
4../mkdvdiso.sh /app/centos6/(源) /app/CentOS-6.9-x86_64-Everything.iso(目標(biāo))
此時該iso源具備啟動的功能。
5.將該源文件通過xshell導(dǎo)出。