本篇主要講述:
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文件內設置
設備/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
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
[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)字符補齊。