Linux系統磁盤及文件系統管理

本節索引:

一、磁盤基本概念

二、磁盤分區管理

三、文件系統管理

四、設備掛載管理

 

timg_image&quality=80&size=b9999_10000&sec=1524546095559&di=5bfa1a87eaaf0ca91596

 

一、磁盤基本概念

設備文件:

Linux中一切皆文件:open(),read(),write(),close()

設備類型:

塊設備:block,存儲單位“塊”,磁盤

字符設備:char,存儲單位“字符”,鍵盤

設備文件:關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信

設備號碼:

主設備號:maj,標識設備類型

次設備號:min,標識同一類型下的不同設備

 

磁盤結構

硬盤的接口類型:

并行:

IDE:133MB/s

SCSI:640MB/s

串口:

SATA:6Gbps

SAS:6Gbps

USB:480MB/s

 

硬盤:

機械硬盤(HDD):傳統普通硬盤,主要由:盤片,磁頭,馬達等組成

優勢:相比固態硬盤,價格低,容量大,使用壽命長

固態硬盤(SSD):用固態電子存儲芯片陣列而制成的硬盤。

優勢:相比機械硬盤,防震抗摔,傳輸速率,功率,噪音有優勢

目前SSD不能完全取代HHD

timg_image&quality=80&size=b9999_10000&sec=1524545986109&di=faed230fa17762bc91a6

磁盤設備文件命名:?

/dev/DEV_FILE

SCSI,SATA,SAS,IDE,USB:????? /dev/sd

虛擬磁盤:???????????? /dev/vd

不同磁盤標識:??????????? a-z,aa,ab…

/dev/sda,/dev/sdb

同一設備的不同分區:??????? 1,2,…

/dev/sda1,/dev/sda5

注:在腳本中,盡量避免使用磁盤設備文件名諸如sda,名稱不穩定,應使用UUID

 

磁盤存儲術語:

head:磁頭;???????????????? 8bit尋址 2**8=256

track:磁道;

ctlinder:柱面???????????????? 10bit尋址?????? 2**10=1024

sector:扇區????????? 6bit尋址 2**6=64

 

chs:磁盤三維。柱面、磁頭、扇區

 

一個扇區共有512Byte,CHS可定義255*63*1024個扇區信息

echo 512*63*1024*255/1024/1024 | bc

8032M

 

CHS:老的命名方式,不超過8G

LBA:邏輯的塊尋址,超過8G

 

二、磁盤分區管理

我們知道使用磁盤有三個步驟:

1、創建分區

2、創建文件系統:格式化

3、掛載:分配目錄名

 

為什么要對磁盤進行分區?

1、優化I/O性能

2、實現磁盤空間配額限制

3、提高修復速度

4、隔離系統和程序

5、安裝多個OS

6、采用不同的文件系統

 

分區類型

兩種分區方式:MBR,GPT

 

MBR:Master Boot Record

誕生于1982年,使用32位表示扇區數,分區不能超過2T

MBR如何分區:按柱面

0磁道0扇區:512bytes

446bytes:boot loader

64bytes:分區表

16bytes:標識一個分區(最多4個分區)

2bytes:55AA(分區標識位)

支持4個主分區;3個主分區+1擴展分區(N個邏輯分區)

注:生產中最好給MBR分區表進行備份

 

BIOS+MBR

傳統BIOS運行流程:

開機–>BIOS初始化–>BIOS自檢–>引導操作系統–>進入系統

 

GPT:GUID(Globals Unique Identifiers)

支持128個分區,使用64位,支持8Z(512Byte/block),64Z(4096Byte/block)

使用128位的通用唯一識別碼UUID(Universally Unique Identifier)表示磁盤和

分區表自動備份在頭和尾兩份,并有CRC校驗位

UEFI(同一擴展固件接口):硬件支持GPT,使操作系統啟動

分區表

MBR保護+GPT分區表+GPT劃分數據+備份

 

UEFI+GPT

UERI運行流程

開機–>UEFI初始化–>引導操作系統–>進入系統

 

管理分區

列出塊設備:

lsblk

 

創建分區使用:

fdisk????????????????? 創建MBR分區

gdisk???????????????? 創建GPT分區

parted????????????? 高級分區操作

 

parted命令

parted的操作都是實時生效的,小心使用

格式:parted[option]…[設備[命令[參數]…]…]

parted /dev/sdb mklabel gpt|msdos????????????? 設置分區類型GPT或MBR

parted /dev/sdb print?????????????????????????????? 打印sdb分區列表信息

parted /dev/sdb mkpart primary 1 200 (默認M)? 設置sdb分區大小

parted /dev/sdb rm 1??????????????????????????????? 刪除sdb1分區

parted -l???????????????????????????????????? 列出分區信息

 

分區工具fdisk和gdisk

fdisk -l[-u][device…]?????? 查看分區

fdisk /dev/sdb ??????????????? 管理分區(交互式)

子命令:

p?????????????? 顯示分區列表

t??????????????? 更改分區類型(數據將丟失)

n?????????????? 創建新分區

d?????????????? 刪除分區

t??????????????? 添加設備標簽

v??????????????? 校驗分區

u?????????????? 轉換單位

w????????????? 保存并退出

q?????????????? 不保存并退出

注:可使用重定向和多行重定向echo -e “n\np\n\n\n+2G\nw\n” | fdisk /dev/sdc

 

同步分區表

cat/proc/partations??????? 查看內核是否已經識別新的分區

partprobe???????????????? 同步分區表(centos5,7可用)

partx -a? /dev/sda???????? 增加分區同步分區表(centos6可用)時使用;

partx -d –nr M-N /dev/sda??? 刪除分區同步分區表(centos6可用)時使用;

 

 

三、文件系統管理

所謂文件系統,它是操作系統中藉以組織、存儲和命名文件的結構。磁盤或分區和它所包括的文件系統的

不同是很重要的,大部分應用程序都基于文件系統進行操作,在不同種文件系統上是不能工作的。

文件系統類型

Linux文件系統:ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap

光盤:iso9660

Windows:FAT32,exFAT,NTFS

Unix:FFS(fast),UFS(unix),JFS2

網絡文件系統:NFS,CIFS

集群文件系統:GFS2,OCFS2

分布式文件系統:fastfs,ceph,moosefs,mogilefs,glusterfs,Lustre

RAW:未經處理或者未經格式化產生的文件系統(性能好,但不便于管理)

 

根據文件系統是否支持“journal(日志)”功能可分為:

日志型文件系統:ext3,ext4,xfs,…(犧牲讀取性能,防止數據文件破壞)

非日志型文件系統:ext2,vfat(易造成數據文件破壞)

 

文件系統的組成部分:

內核中的模塊:ext4,xfs,vfat

用戶空間的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat

 

Linux的虛擬文件系統:VFS

 

查看支持的文件系統:cat /proc/filesystems

 

創建文件系統:

mkfs命令兩種用法:

1、mkfs.FS_TYPE? /dev/DEVICE 建議使用此用法,直觀不易出錯

ext4

xfs

btrfs

vfat

2、mkfs -t FS_TYPE /dev/DEVICE

-L ‘LABEL’???????????????? 設定卷標(分區標簽)

 

 

mke2fs???????????????????????????????? ext系統文件系統專用的管理工具

-t{ext2|ext3|ext4} 創建文件系統類型

-b{1024|2048|4096}????? 設定block塊的大小

-i #???????????????????? 為數據空間每多少字節創建一個inode,此大小不應小于

block大小

-L?????????????????????? 添加卷標簽(建議使用掛載點作卷標)

-N #?????????????????? 指定分區中創建#個inode

-l??????????????????????? 一個inode記錄占用磁盤空間的大小,128-4096

-m # ???????????????????????? 默認5%,管理員用戶預留空間占總空間百分百

 

 

文件系統標簽LABEL

它是指向設備的另一種方法,與設備無關

 

blkid?????????????????????????????????? 塊設備屬性信息查看

格式:blkid [option]…[DEVICE]

-U UUID??????????????????? 根據指定UUID來查找對應設備

-L LABEL?????????? 根據指定卷標來查找對應設備

 

e2label:管理ext系列文件系統的LABEL卷標

格式:e2label DEVICE[LABEL]

 

findfs????????????????????????????????? 查找分區

格式:findfs [option] LABEL = <label> 根據卷標查找

?? findfs [option] UUID? = <uuid>??????? 根據UUID查找

 

tune2fs????????????????????????????? 重新設定ext系列文件系統可調整參數的值

-l??????????????????????? 查看指定文件系統超級塊信息

-L ‘LABEL’???????????????? 修改卷標

-m #????????????????? 修改預留給管理員空間的百分百

-j??????????????????????? 將ext2升級到ext3

-O????????????????????? 文件系統屬性啟用或禁用,-O ^has_journal

-o????????????????????? 調整文件系統的默認掛載選項,-o^acl

-U UUID??????????????????? 修改UUID號

 

dumpe2fs??

塊分組管理,32768

-h?????????????????????? 查看超級塊信息,不顯示分組信息

 

超級塊(superblock)

dumpe2fs ????? /dev/sda1??????? 查看分區下所有超級塊

-h????????????? 查看超級塊信息

tune2fs???????????? -l?????????????? 查看超級塊信息

 

超級塊時存儲文件系統的大小、有多少是空的和已經填滿的占多少,以及它們各自的總數和其他諸如此類的信息。

要使用一個分區來進行數據訪問,那么第一個要訪問的就是超級塊,由此可見超級塊的重要性。

 

超級塊占用第一號物理塊,是文件系統的控制塊。超級塊包括:文件系統的大小、空閑塊數目、空閑塊索引表、空

閑i節點數目、空閑i節點索引表、封鎖標記等。超級塊時系統為文件分配存儲空間、回收存儲空間的依據。

 

所以,為了防止超級塊數據損壞,就需要對超級塊數據進行備份,以便于損壞時進行修復。

 

文件系統檢測和修復

常發生于死機或者非正常關機之后

掛載為文件系統標記為”no clean”

注意:一定不要在掛載狀態下修復或檢測,否則數據將破壞!

fsck ????????????????????????????????? 文件系統檢查

fsck.FS_type

fsck -t FS_type

-p?????????????????????? 自動修復錯誤

-r?????????????????????? 交互式修復錯誤

注:FS_TYPE一定要與分區上已設置的文件系統類型相同

 

e2fsck??????????????????????????????? ext系列文件專用的檢測修復工具

-y?????????????????????? 自動回答為yes

-f?????????????????????? 強制修

 

四、設備掛載管理

掛載:把額外的文件系統與根文件系統現場的目錄建立起關聯關系,進而使得此目錄

作為其他文件訪問入口的行為

一個掛載點只能掛載一個設備,但一個設備可掛載多個掛載點

掛載點建議要是空目錄,否則該目錄下原有文件將被隱藏,變為垃圾文件

 

卸載:為解除此關聯關系的過程

 

把設備關聯掛載點:mount Point

? ?monut

卸載時:可使用設備,也可使用掛載點

?? umount

 

掛載命令:

通過查看/etc/mtab文件顯示當前已掛載的所有設備

mount

格式:mount [-fnrsvw] [-t vfstype] [-o options] device? dir

device?????????????????????? 指明要掛載的設備

(1)設備文件:例如dev/sda2

(2)卷標:-L ‘LABEL’,例如-L ‘MYDATA’

(3)UUID,-U ‘UUID’,例如-U ’35bfb8f8-1c9a-4f67-b8fe-a7edb84c4780’

(4)偽文件系統名稱:proc,sysfs,devtmpfs,configfs

dir????????????????????? 掛載點

事先存在;建議使用空目錄

進程正在使用中的設備無法被卸載

option:

-t?????????????????????? 指定要掛載的設備上的文件系統類型

-r?????????????????????? readontlt,只讀掛載

-w????????????????????? r+w,讀寫掛載(默認)

-n?????????????????????? centos6隱藏掛載,不更新/etc/mtab,mount不可見,cat /proc/mounts可見

-a?????????????????????? 自動掛載所有支持自動掛載的設備

-L ‘LABEL’???????????????? 以卷標指定掛載設備

-U ‘UUID’????????????????? 以UUID指定要掛載的設備

-B,–bind??????????????? 綁定目錄到另一個設備上。類似于軟連接

 

-o options:(掛載文件系統的選項),多個選項使用逗號分隔

async???????????????????????? 異步模式(默認模式)

sync????????????????? 同步模式,內存更改時,同時寫磁盤

atime/noatime??????????????? 包含目錄和文件(是否更新atime,默認更新)

diratime/nodiratime?????? 目錄的訪問時間戳

auto/noauto??????????? 是否支持自動掛載,是否支持-a選項

exec/noexec??????????? 是否支持將文件系統上運行應用程序

dev/nodev??????????????? 是否支持在此文件系統上使用設備文件

suid/nosuid????????????? 是否支持suid和sgid權限

remount?????????????????? 重新掛載

ro????????????????????? 只讀

rw????????????????????? 讀寫

user/nouser???????????? 是否允許普通用戶掛載此設備,/etc/fstab使用

acl???????????????????? 啟用此文件系統上的acl功能

loop???????? ?????? 使用loop設備,把文件掛載目錄,模擬設備

默認:rw,suid,dev,exec,auto,nouser,async

 

卸載命令:

查看掛載情況:

findmnt?? MOUNT_POINT|DEVICE

查看正在訪問指定文件系統的進程:

lsof MONUT_POINT

???????? fuser? -v? MOUNT_POINT

終止所有在正訪問指定的文件系統的進程

?? fuser? -km MONUT_POINT

卸載:

umount?? DEVICE

???????? umount?? MOUNT_POINT

 

掛載點和/etc/fstab

配置文件系統體系

被mount、fsck和其他程序使用

系統重啟時保留文件系統體系

可以在設備欄使用文件系統卷標

使用mount -a 命令掛載/etc/fstab中的所有文件系統

 

/etc/fstab??????? 每行定義一個要掛載的文件系統

設備或偽文件系統??? 掛載點?? 文件系統類型?? 掛載選項?? 備份間隔時間{0|1|2}?? 文件系統檢查{0|1}

 

要掛載的設備或偽文件系統

設備文件

LABEL:LABEL=””

UUID:UUID=””

偽文件系統名稱:proc,sysfs

掛載點

文件系統類型

掛載選項:default

轉儲頻率:0:不做備份 ; 1:每條轉儲 ; 2:每隔一天轉儲 ;

自檢次序:0:不自檢 ; 1:首先自檢;一般只有rootfs才用1

 

一些特殊文件設備的掛載永久生效的設置:

vim /etc/fstab

/root/p1? /mnt/p1? ??????? ext4???????? ? loop???? ?????? 0??? 0????? ?? 掛載普通文件

/mnt/cdrom??? /mnt/cdrom??? iso9660??? defaults????? 0??? 0????? 掛載光盤

/boot??????????????? /mnt/boot ???? none??????? ? bind???????? 0??? 0????? 掛載目錄到目錄下

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96953

(0)
wangxczwangxcz
上一篇 2018-04-24
下一篇 2018-04-24

相關推薦

  • iproute家族命令

    1 ifconfig up 啟動指定網絡設備/網卡down 關閉指定網絡設備/網卡-a 顯示全部接口信息-s 顯示摘要信息add 設置指定網卡配置IPv6地址del 刪除指定網卡配置IPv6地址mtu<字節數> 設置網卡的最大傳輸單元(bytes)netmask<子網掩碼>設置網卡的子網掩碼multicast 為網卡設置組播標志 例子…

    Linux筆記 2018-04-15
  • ansile

    ansible ansible 是一個自動化運維工具,他是基于python語言實現,基于openssh安全的工具 特性: 1)冪等性:一個任務執行1遍和執行n遍效果一樣 ,不因重復執行帶來意外情況2)無需代理不依賴PKI(無需ssl)3)可使用任何編程語言寫模塊4)YAML格式,編排任務,支持豐富的數據結構5)較強大的多層解決方案 ansible可以直接由一…

    Linux筆記 2018-06-04
  • 第二周:Linux文件管理命令以及bash的工作特性

    一、Linux文件管理命令 1. cp命令 ● 命令格式 單源復制:cp [OPTION]… [-T] SOURCE DEST 多源復制:cp [OPTION]… SOURCE… DIRECTORY ? ? ? ? ?cp [OPTION]… -t DIRECTORY SOURCE…   ● 命令功能 復制文件 ● 命令選項 -…

    2018-05-16
  • shell腳本進階

    本節主要學習判斷語句,循環語句還有函數,數組等一些腳本中常用的語法,這些會讓你的腳本看起來更美觀,易讀性更高

    2018-05-11
  • redis

    分布式存儲一定是每個節點只存儲一部分數據。

    2018-07-20
  • 第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。cp -r /etc/skel/ /home/tuser1chmod -R go= /home/tuser1 2、編輯/etc/group文件,添加組hadoop。vi /etc/groupG 跳到最后一行o 進入輸入模式添加…

    Linux筆記 2018-05-30
欧美性久久久久