Linux磁盤及文件系統(tǒng)管理詳解

2016年10月18日18:58:06 發(fā)表評(píng)論 4,074 ℃

ln命令

ln -s a(源文件) b(連接文件名) 創(chuàng)建軟連接(快捷方式)

硬件連接:

1、只能對(duì)文件創(chuàng)建,不能應(yīng)用于目錄:

2、不能跨文件系統(tǒng)

3、創(chuàng)建硬連接會(huì)增加文件的被連接次數(shù)

軟連接:

1、可應(yīng)用于目錄;

2、可以跨文件系統(tǒng);

3、不會(huì)增加被連接文件的連接次數(shù)

4、其大小為指定的路徑所包含的字符個(gè)數(shù)

du命令

-s

-h

df命令

-h 字節(jié)換算

-i Inodes 

-T 磁盤分區(qū)

設(shè)備文件:

b:按塊為單位,隨機(jī)訪問的設(shè)備

硬盤

c:按字節(jié)為單位,線性設(shè)備

鍵盤

/dev

主設(shè)備號(hào)(major number)

標(biāo)識(shí)設(shè)備類型

次設(shè)備號(hào)(minor number)

標(biāo)識(shí)同一種類型中不同設(shè)備

mknod命令:創(chuàng)建設(shè)備文件

mknod [OPTION]... NAME TYPE [MAJOR MINOR]

-m MODE(權(quán)限)

mknod -m 644 mydev(設(shè)備類型)(主設(shè)備號(hào)) (次設(shè)備號(hào))

硬盤設(shè)備的設(shè)備文件名:

IDE, ATA : hd

SATA : sd

SCSI: sd

USB : sd

a,b,c....來區(qū)別同一類型下的不同設(shè)備

IDE:

第一個(gè)IDE口:主(/dev/hda)、從(/dev/hdb)

第二個(gè)IDE口:主(/dev/hdc)、從(/dev/hdd)

sda ,sdb,sdc ,...

hda:

hda1:第一個(gè)主分區(qū)

hda2:

hda3:

hda4:

hda5:第一個(gè)邏輯分區(qū)

fdisk命令

fdisk -l 查看當(dāng)前系統(tǒng)識(shí)別了幾塊硬盤

fdisk -l [/dev/to/some_device_file]

管理磁盤分區(qū):

fdisk /dev/sda

p: 顯示當(dāng)前硬件分區(qū),包括沒保存的改動(dòng)

n: 創(chuàng)建新分區(qū)

e:擴(kuò)展分區(qū)

p:主分區(qū)

d: 刪除一個(gè)分區(qū)

w: 保存退出

q: 不保存退出

t: 修改分區(qū)類型

L

l:顯示所支持的所有類型

partprobe [/dev/sda]:重讀分區(qū)表

partx

inode:index node

block size :1024 2048 4096

inode bitmap

block bitmap

super block 超級(jí)塊

Linux磁盤及文件系統(tǒng)管理詳解

Linux磁盤及文件系統(tǒng)管理詳解

Linux磁盤及文件系統(tǒng)管理詳解

文件系統(tǒng)管理

重新創(chuàng)建文件系統(tǒng)會(huì)損壞原有文件

mkfs命令:

make file system

cat /proc/filesystems :查看當(dāng)前內(nèi)核所支持文件系統(tǒng)

-t FSTYPE

mkfs -t ext2 =mkfs.ext2

mkfs -t ext3 =mkfs.ext3

專門管理ext系統(tǒng)文件:

mke2fs命令

-j:創(chuàng)建ext3類型文件系統(tǒng)

-b BLOCK_SIZE:指定塊大小,默認(rèn)為4096:可用取值為1024、2048、4096

-L LABEL:指定分區(qū)卷標(biāo)

-m #: 指定預(yù)留給著急用戶的塊數(shù)百分比

-i #:用于指定為多少字節(jié)的空間創(chuàng)建一個(gè)inode,默認(rèn)為8192;這里給出的數(shù)值應(yīng)該為塊大小的2^n倍

-N #:指定inode個(gè)數(shù)

-F: 強(qiáng)制創(chuàng)建文件系統(tǒng)

-E:用于指定額外文件系統(tǒng)屬性

blkid命令:

查看磁盤設(shè)備的相關(guān)屬性

UUID

FYPE

LABEL

e2label命令:

用戶查看定義卷標(biāo)

e2label 設(shè)備文件 卷標(biāo):設(shè)定卷標(biāo)

tune2fs命令:

調(diào)整文件系統(tǒng)的相關(guān)屬性

-j:不損害原有數(shù)據(jù),將ext2升級(jí)為ext3

-L  LABEL:設(shè)定或修改卷標(biāo)

-m #: 調(diào)整預(yù)留百分比

-r #:指定預(yù)留塊數(shù)

-o : 設(shè)定默認(rèn)掛載選項(xiàng)

acl

-c #:指定掛載次數(shù)達(dá)到#次之后進(jìn)行自檢,0或-1表示關(guān)閉此功能

-i #:每掛載使用多少天后進(jìn)行自檢:0或-1表示關(guān)閉此功能

-l: 顯示超級(jí)塊中的信息

dumpe2fs命令:

顯示文件屬性信息

-h:只顯示超級(jí)塊中的信息

fsck命令:

檢查并修復(fù)Linux文件系統(tǒng)

-t FSTYPE:指定文件系統(tǒng)類型

-a:自動(dòng)修復(fù)

e2fsck命令:

專用于修復(fù)ext2/ext3文件系統(tǒng)

-f:強(qiáng)制檢查

-p:自動(dòng)修復(fù)

mount命令:

顯示當(dāng)前系統(tǒng)已經(jīng)掛載的設(shè)備及掛載點(diǎn)

掛載:將新的文件系統(tǒng)關(guān)聯(lián)至當(dāng)前根文件系統(tǒng)

mount [option] [-o options] DEVICE MOUNT_POINT

mount 設(shè)備 掛載點(diǎn)

-a:表示掛載/etc/fstab 文件中定義的所有文件系統(tǒng)

-n:默認(rèn)情況下,mount命令每掛載一個(gè)設(shè)備,都會(huì)把掛載的設(shè)備信息保存至/etc/mtab文件;使用-n選項(xiàng)意味著掛載設(shè)備時(shí),不把信息寫入此文件

-t FSTYPE:指定正在掛載設(shè)備上的文件系統(tǒng)的類型;不使用此選項(xiàng)時(shí),mount會(huì)調(diào)用blkid命令獲取對(duì)應(yīng)文件系統(tǒng)的類型

-r:只讀掛載,掛載光盤時(shí)常用此選擇

-w:讀寫掛載

-o:指定額外的掛載選擇,也即指定文件系統(tǒng)啟用的屬性

remount :重新掛載當(dāng)前文件系統(tǒng)

ro:掛載為只讀

rw:讀寫掛載

mount - o remount,rw / 重新掛載根 為讀寫

設(shè)備:

設(shè)備文件

卷標(biāo):LABEL=""

UUID: UUID=""

掛載點(diǎn):目錄

要求:

1、此目錄沒有被其它進(jìn)程使用

2、目錄得事先存在

3、目錄中的原有的文件將會(huì)暫時(shí)隱藏

掛載完成以后,要通過掛載點(diǎn)訪問對(duì)應(yīng)文件系統(tǒng)上的文件

mount命令,可以掛載iso文件

mount DEVICE MOUNT_POINT

-o loop:掛載本地回環(huán)設(shè)備

umount命令:

卸載:將某文件系統(tǒng)與當(dāng)前根文件系統(tǒng)關(guān)聯(lián)以移除

umount 設(shè)備

umount 掛載點(diǎn)

卸載注意事項(xiàng):

掛載的設(shè)備沒有被進(jìn)程使用

swap分區(qū):

free命令:

查看內(nèi)存使用情況

-m:

fdisk命令中,調(diào)整分區(qū)類型為82。

創(chuàng)建交換分區(qū):

mkswap /dev/sda8

-L LABEL

swapon /dev/sda8 啟用交換分區(qū)

-a: 啟用所有定義在/etc/fstab文件中的交換設(shè)備

swapoff /dev/sda8 關(guān)閉交換分區(qū)

回環(huán)設(shè)備

loopback,使用軟件來模擬實(shí)現(xiàn)硬件

創(chuàng)建一個(gè)鏡像文件,120G

dd命令:

if=數(shù)據(jù)來源

of=數(shù)據(jù)存儲(chǔ)目標(biāo)

bs=1024 (1024字節(jié)/單位)
count=2 (復(fù)制幾個(gè)單位)

dd if=/dev/sda of=/mnt/usb/mbr.backup bs =512 count=1
dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1
dd if=/dev/zero of=/var/swapfile bs=1M count=1024

seek=#: 創(chuàng)建數(shù)據(jù)文件時(shí),跳過的空間大小

文件系統(tǒng)的配置文件/etc/fstab

os在初始時(shí),會(huì)自動(dòng)掛載此文件中定義的每個(gè)文件系統(tǒng)

要掛載的設(shè)備  掛載點(diǎn)  文件系統(tǒng)類型    掛載選項(xiàng)  轉(zhuǎn)儲(chǔ)頻率(每多少天做一次完全備份)  文件系統(tǒng)檢測(cè)次數(shù)(只有跟可以為1)

fuser命令:

驗(yàn)證進(jìn)程正在使用的文件或套接字文件

-v:查看某文件上正在運(yùn)行的進(jìn)程

-k:

-m:

fuser -km MOUNT_POINT: 終止正在訪問此掛載點(diǎn)的所有進(jìn)程

壓縮、解壓縮命令

壓縮格式:gz,bz2,xz,zip,z

壓縮算法:算法不同,壓縮比也會(huì)不同。

compress:FILENAME.z

uncompress

gzip: .gz

gzip /PATH/TO/SOMEFILE:壓縮完成后會(huì)刪除原文件

-d:解壓縮

-#:1-9 ,指定壓縮比,默認(rèn)是6

gunzip:

gunzip /PATH/TO/SOMEFILE.gz :解壓完成后會(huì)刪除源文件

zcat /PATH/TO/SOMEFILE.gz 不解壓的情況,查看文本文件的內(nèi)容

bzip2: .bz2

比gzip有著更大壓縮比的壓縮工具,使用格式近似

bzip2 /PATH/TO/SOMEFILE

-d:解壓

-# : 1-9,默認(rèn)是6

-k:壓縮后保留原文件

bunzip2 /PATH/TO/SOMEFILE 解壓縮

bzcat /PATH/TOSOMEFILE.bz2  不解壓,查看文本文件內(nèi)容

xz: .xz

xz /PATH/TO/SOMEFILE

-d

-# :1-9 默認(rèn)是6

-k: 壓縮時(shí)保留源文件

unxz:

xzdec:

xzcat:

zip:既歸檔又壓縮的工具

zip FILENAME.zip  FILE1 FILE2 ... 壓縮后不刪除原文件

unzip FILENAME.zip

archive:歸檔,歸檔本身并不意味著壓縮

tar:歸檔工具

-c:創(chuàng)建歸檔文件
-f FILE.tar:操作的歸檔文件
-x :展開歸檔
--xattes:歸檔時(shí),保留文件的擴(kuò)展性信息
-t:不展開歸檔,直接查看歸檔了哪些文件

-zcf:歸檔并調(diào)用gzip壓縮

-zxf:調(diào)用gzip解壓縮并展開歸檔

-jcf:歸檔并調(diào)用bzip2壓縮

-jxf:調(diào)用bzip2解壓縮并展開歸檔


-Jcf:歸檔并調(diào)用xz壓縮

-Jxf:調(diào)用xz解壓縮并展開歸檔

cpio:歸檔工具

練習(xí):寫一個(gè)腳本

從鍵盤讓用戶輸入幾個(gè)文件,腳本能夠?qū)⒋藥讉€(gè)文件歸檔后壓縮成一個(gè)文件。

#!/bin/bash
read -p "Please Enter Three filename:" file1 file2 file3
tar -zcf `date +%Y%m%d%H%M%S`.tar.gz $file1 $file2 $file3

RAID:

級(jí)別:僅代表磁盤組織方式不同,沒有上下之分

0:條帶

性能提升:讀、寫 

冗余能力(容錯(cuò)能力):無

空間利用率:ns

硬盤數(shù):至少2塊

1:鏡像 

性能表現(xiàn):寫性能下降,讀性能提升

冗余能力:有

空間利用率:1/2

硬盤數(shù):至少2塊

2

3

4

5:

性能表現(xiàn):讀,寫提升

冗余能力:有

空間利用率:(n-1)/n

硬盤數(shù):至少3塊

10:

性能表現(xiàn):讀、寫提升

冗余能力:有

空間利用率1/2

硬盤數(shù):至少需要4塊

01:

性能表現(xiàn):讀、寫提升

冗余能力:有

空間利用率1/2

硬盤數(shù):至少需要4塊

50:

性能表現(xiàn):讀、寫提升

冗余能力:有

空間利用率:(n-2)/n

硬盤數(shù):至少需要6塊

jbod:將多個(gè)硬盤,連接為一個(gè)硬盤使用

性能表現(xiàn):無提升

冗余能力:無

空間利用率:100%

邏輯RIAD:

/dev/md0

/dev/md1

cat /proc/mdstat查看陣列

內(nèi)核模塊md:

mdadm:將任何塊設(shè)備做成RAID

模式化的命令:

創(chuàng)建模式

-C

專用選項(xiàng):

-l:級(jí)別
-n:設(shè)備個(gè)數(shù)
-a{yes|no}:自動(dòng)為其創(chuàng)建設(shè)備文件
-c:CHUNK大小,2^n,默認(rèn)為64k

-x #:指定空閑盤個(gè)數(shù)

管理模式

--add,--remove,--del

-a,-r,-d

mdadm /dev/md# --fail|-f /dev/sda7

監(jiān)控模式

-F

增長模式

-G

裝配模式

-A

查看RAID陣列的詳細(xì)信息

mdadm -D /dev/md#

--detail

停止陣列

mdadm -S /dev/md#

--stop

將當(dāng)前RAID信息保存至配置文件,以便以后進(jìn)行裝配:

mdadm -D --scan > /etc/mdadm.conf

練習(xí):創(chuàng)建一個(gè)2G的raid0

1、fdisk /dev/sdb 創(chuàng)建兩個(gè)1G的類型為fd的分區(qū)

2、partprobe /dev/sdb 內(nèi)核重讀分區(qū)(cat /proc/partitions 查看是否已經(jīng)識(shí)別)

3、mdadm -C /dev/md0 -l 0 -n 2 -a yes /dev/sdb{1,2}(cat /proc/mdstat 查看raid陣列

4、mke2fs -j /dev/md0 格式化陣列(mke2fs -j -E stride=16 -b 4096 /dev/md0)

5、mount  /dev/md0  /test 掛載使用

DM: Device Mapper

邏輯設(shè)備

RAID, LVM2

DM:

快照

多路徑

Linux磁盤及文件系統(tǒng)管理詳解

pv

pvcreate

 pvcreate /dev/sdb1 /dev/sdb2

pvremove 刪除pv

pvremove /sdb1

pvscan 掃描當(dāng)前系統(tǒng)一共多少個(gè)pv

pvdisplay 查看pv詳細(xì)信息

pvmove 把數(shù)據(jù)移出到其他盤

vg

vgcreate 

vgcreate VG_NAME /PATH/TO/PV

-s # : PE大小,默認(rèn)是4MB

vgremove 移出vg

vgextend 擴(kuò)展pv到vg卷組

vgreduce 移出pv 

vgreduce VG_NAME /dev/sdb1

vgs

vgdisplay

vgscan

lv

lvcreate 

lvcreate -n LV_NAME -L #G VG_NAME

lvcreate -L 100M -n testlv myvg

lvremove

lvextend

lvreduce

lvs

lvdisplay

練習(xí):創(chuàng)建一個(gè)由兩個(gè)物理卷組成的大小為20G的卷組myvg ,要求PE大小為16M,而后在此卷組中創(chuàng)建一個(gè)大小為5G的邏輯卷1v1,此邏輯卷要能在開機(jī)后自動(dòng)掛載至/users目錄,且直接acl功能

一、擴(kuò)展邏輯卷

lvextend 擴(kuò)展物理邊界

-L [+] # /PATH/TO/LV

lvextend -L 1G /dev/myvg/testlv 

resize2fs 擴(kuò)展邏輯邊界(擴(kuò)展以后df -lh才能看見)

resize2fs /PATH/TO/LV 5G

resize2fs -p /PATH/TO/LV (擴(kuò)展到和物理邊界一樣)

resize2fs -p /dev/myvg/testlv 

二、縮減邏輯卷

注意:1、不能在線縮減,得先卸載

2、確保縮減后的空間大小依然能存儲(chǔ)原來的所有數(shù)據(jù)

3、在縮減之前應(yīng)該先強(qiáng)行檢查文件,以確保文件系統(tǒng)處于一至性狀態(tài)

df -lh

umount 

e2fsck -f

resize2fs

resize2fs /PATH/TO/LV 3G 縮減邏輯卷到3G

resize2fs /dev/myvg/testlv 300M

lvreduce -L /PATH/TO/LV 3G 縮減物理邊界到3G

lvreduce -L 300M /dev/myvg/testlv

三、快照卷

1、生命周期為整個(gè)數(shù)據(jù)時(shí)長;在這段時(shí)間內(nèi),數(shù)據(jù)的增長量不嫩超出快照卷大小。

2、快照卷應(yīng)該是只讀的

3、跟原卷在同一卷組內(nèi)

lvcreate

-s 創(chuàng)建快照卷

-p r|w

lvcreate -L # -n SLV_NAME-s -p r /PATH/TO/LV

練習(xí):創(chuàng)建一個(gè)快照,并恢復(fù)快照數(shù)據(jù)

lvcreate -L 50M -n kuaizhao -s -p r /dev/myvg/testlv  (創(chuàng)建50M快照卷)

mount  /dev/myvg/kuaizhao /kuaizhao (掛載快照卷)

tar -jcf /tmp/kuaizhao.tar.bz2 ./* (切換到快照目錄,歸檔到tmp目錄)

umount /kuaizhao (卸載快照卷)

lvremove /dev/mgvg/kuaizhao (移出快照卷)

tar -jxf /tmp/kuaizhao.tar.bz2  -C /test/ (展開快照數(shù)據(jù)到原目錄)

【騰訊云】云服務(wù)器、云數(shù)據(jù)庫、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評(píng)論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: