6、磁盤與文件系統管理

本篇主要講述:

mount掛載;

磁盤管理;

格式化文件系統;

LVM邏輯卷的使用;

swap交換分區


1、mount掛載操作

(1) 含義:

將光盤,U盤,分區,網絡存儲等設備裝到某個Linux目錄。

各種命令工具通過訪問Linux目錄來操作這些設備。

(2) 訪問光盤的內容

Windows:

光盤文件------->光驅設備------->CD驅動器(圖標)

訪問點(掛載點): 訪問設備內容需要通過訪問點  

Linux:

光盤文件------->光驅設備-------------->目錄(/dvd)

/dev/sr0

/dev/hdc

[root@A ~]# ls /dev/cdrom                       #光驅設備的快捷方式

[root@A ~]# ls -l /dev/cdrom

[root@A ~]# mkdir /dvd

[root@A ~]# mount /dev/cdrom  /dvd      #提供設備的訪問點

mount: /dev/sr0 寫保護,將以只讀方式掛載

[root@A ~]# ls /dvd/

[root@A ~]# ls /dvd/Packages/

[root@A ~]# mkdir /abc

[root@A ~]# mount /dev/cdrom  /abc     #掛載

[root@A ~]# ls /abc

[root@A ~]# umount /abc                       #卸載

[root@A ~]# ls /abc 


(3) 實現開機自掛載

在/etc/fstab文件內設置

image.png

設備/UUID   掛載點   掛載的文件系統類型    設置掛載的參數   dump是否備份   fsck磁盤檢查


文件系統類型:ext2,ext3,ext4,xfs...


掛載的參數分類如下:

auto: 系統自動掛載,fstab默認就是這個選項
defaults: rw, suid, dev, exec, auto, nouser, and async.
noauto 開機不自動掛載
nouser 只有超級用戶可以掛載
ro 按只讀權限掛載
rw 按可讀可寫權限掛載
user 任何用戶都可以掛載
請注意光驅和軟驅只有在裝有介質時纔可以進行掛載,因此它是noauto


dump備份設置:

其值設置爲1時,允許備份;設置爲0時,忽略備份


開機是否fsck磁盤檢查:

其值設置爲1時,開機進行檢查;設置爲0時,不進行檢查。



2、磁盤管理

磁道:track

扇區:sector  每個扇區,512字節

磁頭:head

柱面:cylinde

 

2.1 MBR/msdos 分區模式

– 1~4個主分區,或者 0~3個主分區+1個擴展分區(n個邏輯分區)

– 最大支持容量爲 2.2TB 的磁盤

– 擴展分區不能格式化

識別硬盤 => 分區規劃 => 格式化 => 掛載使用

2.2 查看磁盤lsblk

[root@server0 ~]# lsblk

image.png

2.3 修改硬盤的分區表

使用fdisk 命令(分區格式爲MBR)

使用gdisk命令(分區格式爲GPT)

常用交互指令:

m 列出指令幫助

p 查看現有的分區表

n 新建分區

d 刪除分區

q 放棄更改並退出

w 保存更改並退出

[root@server0 ~]# fdisk   /dev/vdb

n 創建新的分區----->回車----->回車---->回車----->在last結束時 +2G

p 查看分區表

n 創建新的分區----->回車----->回車---->回車----->在last結束時 +2G

d 刪除分區

w 保存並退出

 

[root@server0 ~]# ls /dev/vdb[1-2]

 /dev/vdb1  /dev/vdb2

[root@server0 ~]# lsblk


2.4 格式化文件系統

mkfd工具集

mkfs.ext3  分區設備路徑

mkfs.ext4  分區設備路徑

mkfs.xfs   分區設備路徑

mkfs.vfat  分區設備路徑

 

[root@server0 ~]# mkfs.xfs /dev/vdb1

[root@server0 ~]# mkfs.ext4 /dev/vdb2


2.5 查看分區文件系統

blkid 

image.png 


[root@server0 ~]# blkid /dev/vdb1

[root@server0 ~]# blkid /dev/vdb2

掛載使用

[root@server0 ~]# mkdir /part1

[root@server0 ~]# mkdir /part2

[root@server0 ~]# mount /dev/vdb1 /part1

[root@server0 ~]# mount /dev/vdb2 /part2

 

2.6 查看正在掛載使用的設備信息

[root@server0 ~]# df  -h

緩解根分區的壓力

[root@server0 ~]# find  -size  查找較大的目錄有哪些

[root@server0 ~]#  還分新的分區 /dev/vdc1

[root@server0 ~]#  mount /dev/vdc1   /mnt

[root@server0 ~]#  cp -r /home/*    /mnt

[root@server0 ~]#  rm -rf /home/*

[root@server0 ~]#  umount /mnt

[root@server0 ~]#  mount /dev/vdc1   /home

 

將虛擬機server重起

[root@server0 ~]# reboot



總結:

1.查看硬盤     lsblk

2.劃分分區     fdisk

3.刷新分區表    partprobe

4.格式化文件系統  mkfs.xfs  mkfs.ext4

5.掛載        mount

6.開機自動掛載   /etc/fstab


3、LVM邏輯卷的使用(logicl volume)

1)整合分散的空間

2)實現分區的動態擴大與縮減

 

在“分區 --> 格式化”中間增加的一個邏輯層

–零散空閒存儲 ---- 整合的虛擬磁盤 ---- 虛擬的分區----- 格式化------ 掛載

物理卷:Physical Volume

卷組:Volume Group

邏輯卷:Logical Volume

將衆多的物理卷,組成卷組,再從卷組中劃分邏輯卷

綜合分區

將/dev/vdc劃分6個分區,3個主分區,一個擴展分區,2個邏輯分區

[root@server0 ~]# fdisk   /dev/vdc

n 創建新的分區----->回車----->回車---->回車----->在last結束時 +10G

n 創建新的分區----->回車----->回車---->回車----->在last結束時 +10G

n 創建新的分區----->回車----->回車---->回車----->在last結束時 +10G

p 查看分區表

n 創建新的分區

 ----->回車---->起始回車----->結束回車  將所有空間給擴展分區

p 查看分區表

n 創建新的分區----->起始回車------>結束+10G

n 創建新的分區----->起始回車------>結束+10G

wq 保存並退出

[root@server0 ~]# partprobe         #刷新分區表

[root@server0 ~]# ls /dev/vdc[1-6]

[root@server0 ~]# lsblk

[root@server0 ~]# ls /dev/vdc*

 

3.1 新建邏輯卷

1)新建卷組

命令格式:vgcreate  卷組名稱   分區路徑

[root@server0 ~]# vgcreate  myvg  /dev/vdc1  /dev/vdc2

[root@server0 ~]# vgs

[root@server0 ~]# pvs    #查看卷組

2)創建邏輯卷

命令格式:lvcreate  -n  邏輯卷名稱  -L 大小  基於卷組

[root@server0 ~]# lvcreate  -n  mylv  -L 16G   myvg

[root@server0 ~]# lvs    #查看邏輯卷

3)使用LVM邏輯卷

[root@server0 ~]# mkfs.ext4 /dev/myvg/mylv   #格式化

[root@server0 ~]# mkdir /lvm

vim /etc/fstab                                    #開機自掛載

路徑   掛載點 格式  defaults  0  0

[root@server0 ~]# mount -a

[root@server0 ~]# df -h

 

3.2 LVM邏輯卷的擴展

(1)卷組有足夠的剩餘空間

a.直接擴展邏輯卷的空間

[root@server0 ~]# vgs

[root@server0 ~]# lvextend  -L  19G  /dev/myvg/mylv

[root@server0 ~]# lvs

[root@server0 ~]# vgs

b.擴展文件系統的大小

擴展ext4文件系統:使用resize2fs進行格式化

擴展xfs文件系統: 使用xfs_growfs進行格式化

[root@server0 ~]# df  -h | tail -1

[root@server0 ~]# blkid /dev/myvg/mylv

[root@server0 ~]# resize2fs /dev/myvg/mylv   #格式化

[root@server0 ~]# df  -h | tail -1

(2)卷組沒有足夠的剩餘空間

a.擴展卷組空間

[root@server0 ~]# vgextend myvg /dev/vdc3

[root@server0 ~]# vgs

b.直接擴展邏輯卷的空間

[root@server0 ~]# vgs

[root@server0 ~]# lvextend  -L  25G  /dev/myvg/mylv

[root@server0 ~]# lvs

[root@server0 ~]# vgs

c.擴展文件系統的大小

[root@server0 ~]# df  -h | tail -1

[root@server0 ~]# resize2fs /dev/myvg/mylv

[root@server0 ~]# df  -h | tail -1

以下作爲了解:

縮減:不要做, 先縮減文件系統的大小,在縮減空間大小

[root@server0 ~]# resize2fs /dev/myvg/mylv 10G

[root@server0 ~]# umount /lvm

[root@server0 ~]# resize2fs /dev/myvg/mylv 10G

resize2fs 1.42.9 (28-Dec-2013)

請先運行 'e2fsck -f /dev/myvg/mylv'.

[root@server0 ~]# e2fsck -f /dev/myvg/mylv

[root@server0 ~]# resize2fs /dev/myvg/mylv 10G

[root@server0 ~]# lvreduce -L 10G /dev/myvg/mylv

[root@server0 ~]# lvreduce -L 10G /dev/myvg/mylv

WARNING: Reducing active logical volume to 10.00 GiB

THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce mylv? [y/n]: y


3.3 創建卷組的時候設置PE大小

– vgcreate -s  PE大小   卷組名    空閒分區...

– vgchange -s  PE大小   卷組名

PE:卷組劃分空間的單位   4M

[root@server0 ~]# vgdisplay myvg

[root@server0 ~]# vgchange -s 2M  myvg

[root@server0 ~]# vgdisplay myvg

 

3.4 創建邏輯卷的時候指定PE個數

lvcreate   -l   PE個數  -n   邏輯卷名 卷組名

[root@server0 ~]# lvcreate  -l  102  -n  lvtest02  myvg

Logical volume "lvtest02" created

[root@server0 ~]# lvs


4、交換分區swap(虛擬內存)

• 相當於虛擬內存,

– 當物理內存不夠用時,使用磁盤空間來模擬內存

– 在一定程度上緩解內存不足的問題

[root@server0 ~]# swapon -s    #查看交換空間,組成 成員信息

[root@server0 ~]# mkswap /dev/vdc5    #格式化,交換文件系統

[root@server0 ~]# swapon /dev/vdc5    #啓用交換分區

 

[root@server0 ~]# mkswap /dev/vdc6   #格式化,交換文件系統

[root@server0 ~]# swapon /dev/vdc6   #啓用交換分區

[root@server0 ~]# swapon -s

 

開機自動啓用交換分區 /etc/fstab

[root@server0 ~]# vim /etc/fstab           #開機自掛載

/dev/vdc5  swap  swap   defaults  0 0

/dev/vdc6  swap  swap   defaults  0 0

 

[root@server0 ~]# swapoff /dev/vdc[5-6]   #停用交換分區

[root@server0 ~]# swapon -s

[root@server0 ~]# swapon -a     #檢測/etc/fstab交換分區

[root@server0 ~]# swapon -s

 

大容量的使用gpt分區模式:gdisk

交換分區的優先級:-1

 

邏輯卷的擴展:擴展之後lsblk 顯示的是擴展之後的總容量

而df -h顯示的還是原來的大小

磁盤情況刷新:partprobe

 

功能                物理卷管理      卷組管理      邏輯卷管理

scan/掃描        pvscan            vgscan           lvscan

create/創建     pvcreate          vgcreate         lvcreate

display            pvdisplay         vgdisplay       lvdisplay

remove           pvremove        vgremove       lvremove

extend                                    vgextend        lvextend


5、關於dd命令的使用

dd:用指定大小的塊拷貝一個文件,並在拷貝的同時進行指定的轉換。

注意:指定數字的地方若以下列字符結尾,則乘以相應的數字:b=512;c=1;k=1024;w=2

dd if="input_file" of="out_file"  bs="block_size"  count="number"

參數註釋:

1. if=文件名:輸入文件名,缺省爲標準輸入。即指定源文件。< if=input file >

2. of=文件名:輸出文件名,缺省爲標準輸出。即指定目的文件。< of=output file >

3. ibs=bytes:一次讀入bytes個字節,即指定一個塊大小爲bytes個字節。

   obs=bytes:一次輸出bytes個字節,即指定一個塊大小爲bytes個字節。

   bs=bytes:同時設置讀入/輸出的塊大小爲bytes個字節。

4. cbs=bytes:一次轉換bytes個字節,即指定轉換緩衝區大小。

5. skip=blocks:從輸入文件開頭跳過blocks個塊後再開始複製。

6. seek=blocks:從輸出文件開頭跳過blocks個塊後再開始複製。

注意:通常只用當輸出文件是磁盤或磁帶時纔有效,即備份到磁盤或磁帶時纔有效。

7. count=blocks:僅拷貝blocks個塊,塊大小等於ibs指定的字節數。

8. conv=conversion:用指定的參數轉換文件。

    ascii:轉換ebcdic爲ascii

    ebcdic:轉換ascii爲ebcdic

    ibm:轉換ascii爲alternate ebcdic

    block:把每一行轉換爲長度爲cbs,不足部分用空格填充

    unblock:使每一行的長度都爲cbs,不足部分用空格填充

    lcase:把大寫字符轉換爲小寫字符

    ucase:把小寫字符轉換爲大寫字符

    swab:交換輸入的每對字節

    noerror:出錯時不停止

    notrunc:不截短輸出文件

    sync:將每個輸入塊填充到ibs個字節,不足部分用空(NUL)字符補齊。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章