Linux文件系統原理

Linux文件系統

馮諾依曼在1945年提出計算機的五大組成部分
運算器:CPU
控制器:CPU
存儲器:內存和硬盤
輸入設備:鼠標、硬盤
輸出設備:顯示器

一、硬盤結構

機械硬盤結構

在這里插入圖片描述

  1. 扇區:硬盤的最小存儲單位,大小為512字節
  2. 磁道:由扇區組成的園
  3. 柱面:多扇片下,所有盤片的同一磁道組成的
固態硬盤結構

固態硬盤的特點

固態硬盤,使用固態電子芯片陣列而制成的硬盤,由控制單元和存儲單元組成

特點:讀寫快、噪音低、防震、輕薄,有寫入次數限制,容量較小、價格高

在固態硬盤中,為了便于理解,有邏輯上的磁道、扇區的概念

二、Centos6 下的ext4文件系統

1.磁盤使用流程
對硬盤進行分區
格式化指定文件系統
掛載使用

分區:MBR與GPT

MBR分區方式

  • 主引導記錄 是位于磁盤最前邊的一段引導代碼
  • 主引導程序 占用了446byte
  • 分區表 占用了64byte,16標識一個分區
  • 有效標識符占用了2byte,標記MBR是否有效

GPT分區方式

  • 現存系統最大支持128個主分區
  • 最大支持18EB分區
  • 提供分區表的冗余
  • 實現分區表備份與安全
2.使用虛擬機進行MBR分區

1.關機添加硬盤

2.查看是否添加成功 ls /dev/sda

3.使用fdisk+設備文件名進行分區

#進入分區界面
[root@localhost ~]# fdisk /dev/sda1
歡迎使用 fdisk (util-linux 2.23.2)。更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。Device does not contain a recognized partition table
使用磁盤標識符 0xd4897b23 創建新的 DOS 磁盤標簽。命令(輸入 m 獲取幫助)

? fdisk交互頁面中可用選項有

m:尋求幫助d:刪除分區l:顯示分區類型n:新建分區
p:顯示分區表信息q:不保存退出t:修改分區id,l可查看w:保存并退出
3.格式化與掛載

在這里插入圖片描述

super block:超級塊,記錄每個分區的block的大小、數量

inode表:用來快速搜索磁盤上的索引節點

data block:數據塊,保存真實數據的位置,block的大小和數量在格式化成文件系統已經固定,除非重新格式化,否則不能修改。

單個文件占用小于一個block的大小時,單獨占用一個block,剩余空間不會被利用。

inode:i節點,記錄inode號、權限、屬主屬組、時間戳、大小、占了那幾個block。

3.1 查看使用的扇區
fdisk -l 設備文件
[root@localhost ~]# fdisk -l磁盤 /dev/sda:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0x000b1fe4設備 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1050623      524288   83  Linux
/dev/sda2         1050624    41943039    20446208   8e  Linux LVM
3.2 查看分區情況
fdisk -l 設備文件  查看分區情況[root@localhost ~]# fdisk -l /dev/sdb1磁盤 /dev/sdb1:3221 MB, 3221225472 字節,6291456 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
3.3 格式化:
命令格式:mkfs.文件系統類型 磁盤路徑[root@localhost ~]# mkfs.xfs /dev/sdb2
3.4 掛載
命令格式:mount -t 文件系統類型 路徑 掛載點補充:df -h 查看已掛載的磁盤空間使用情況df -i 查看已掛載的inode號
3.5 永久掛載
blkid 查詢UUID
選擇需要掛載的分區,復制到/etc/fstab[root@localhost ~]# blkid
/dev/sda1: UUID="c198eb8b-f5d7-4dd1-9083-dc4168a9588d" TYPE="xfs" 
/dev/sda2: UUID="xCaOvp-L9To-Obc9-5BLe-d9ES-vncR-Iz9pqm" TYPE="LVM2_member" 
/dev/sdb1: UUID="371168b5-8eaf-4ddc-b26a-9e283ea06181" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="333657ff-e432-4b66-bca9-9201ce9f726c" 
/dev/sr0: UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" /dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=c198eb8b-f5d7-4dd1-9083-dc4168a9588d /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
UUID=371168b5-8eaf-4ddc-b26a-9e283ea06181 /root/disk1 xfs defaults  0 0 
3.6 查看UUID
1.dumpe2fs -h 分區設備名2.ls -l /dev/disk/by-uuid/
[root@localhost ~]# ls -l /dev/disk/by-uuid/
總用量 0
lrwxrwxrwx. 1 root root 10 514 04:29 131eb8b0-a1b4-47d0-9d94-c2571c083711 -> ../../dm-13.查看分區文件系統:df -T 

補充命令:

partprode:將磁盤分區變化信息通知內核,請求操作系統重新加載分區表-s:顯示磁盤分區匯總信息-h:顯示幫助信息fack:文件系統修復
格式:fack -y 分區名

三、Centos 7下的XFS文件系統

XFS每個單個文件系統量最大支持8eb,單個文件可以支持16tb。

XFS是一個適合高容量磁盤與 巨型文件的文件系統

1.XFS組成部分

XFS文件系統在數據的分布上主要分為三部分:

數據區(data section)

文件系統活動登錄區(log section)

實時運行區(realtime section)

2.XFS文件系統相關查詢命令
df -t #查看已經掛載分區的文件系統類型xfs_info 掛載點/設備文件名 #查看已掛載XFS文件系統元數據信息命令blkid #列出設備的UUID等參數lsblk #查看設備詳細信息
[root@localhost ~]# lsblk /dev/sdb2
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb2   8:18   0   2G  0 part [SWAP]
[root@localhost ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  512M  0 part /boot
└─sda2            8:2    0 19.5G  0 part ├─centos-root 253:0    0 18.5G  0 lvm  /└─centos-swap 253:1    0    1G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
├─sdb1            8:17   0    2G  0 part [SWAP]
└─sdb2            8:18   0    2G  0 part [SWAP]
sr0              11:0    1 1024M  0 rom  
[root@localhost ~]# 
3.磁盤分區
GPT分區表
命令格式:gdisk 設備文件完整路徑 #分區完成后,可以通過查看/proc/partitions來確定分區是否修改成功partprode -s #更新Linux內核的分區表信息
4.磁盤格式化
mkfs.xfs 創建xfs文件系統
[root@localhost ~]# mkfs.xfs /dev/sdb1
5.文件系統掛載

掛載:mount

選項-a:根據/etc/fstab文件,將所有磁盤進行掛載-t:指定文件系統類型來進行掛載-o:掛載特殊選項
6.開機自動掛載

開機自動掛載需要寫入配置文件/etc/fstab

/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=866208a7-b3a2-4998-b20a-4c8dc6ecd0dc /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

第一列:磁盤設備文件名或UUID

第二列:掛載點

第三列:磁盤分區的文件系統

第四列:文件系統參數

async/sync(異步、同步)設置磁盤是否以異步方式運行,默認異步(性能較佳)
auto/noauto自動、手動,默認文件系統自動掛載
rw/ro讀寫、只讀,設置磁盤以讀寫或者只讀運行
exec/noexec執行、不執行。限制文件系統可執行操作
suid/nosuid該文件系統是否允許SUID權限存在
defaults同時擁有rw、suid、dev、exec、suto、async等功能

第五列:能否被dump備份(0:不備份,1:每天備份,5不定期備份)

第六列:是否以fsck檢驗扇區

補充命令
stat:文件名、文件大小、占用block數量、單個block大小、所在設備編號、inode號、硬鏈接數、權限、屬主屬組、訪問時間、數據修改時間、狀態修改時間[root@localhost ~]# stat .cshrc 文件:".cshrc"大小:100       	塊:8          IO 塊:4096   普通文件
設備:fd00h/64768d	Inode:33942934    硬鏈接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:system_u:object_r:admin_home_t:s0
最近訪問:2013-12-29 10:26:31.000000000 +0800
最近更改:2013-12-29 10:26:31.000000000 +0800
最近改動:2024-04-22 22:46:36.028008307 +0800
創建時間:-
cat:改變訪問時間
vim:改變數據修改時間
chmod、chown:權限的變動改變狀態修改時間
[root@localhost ~]# 
命令格式:du 目錄或分區掛載點
命令選項:
-a:列出目錄下所有子文件和子目錄占用空間大小(默認列出子目錄)。
-h:以常見單位顯示目錄大小。
-s:遞歸式顯示目錄下所有子文件子目錄占用總空間。

掛載的三種方式

臨時掛載:mount
永久掛載:vim  /etc/fstab
mount -a:重新掛載/etc/fstab
擴展swap分區

swap指的是交換分區(swap space),它是磁盤上的一塊區域,可以是一個分區,也可以是一個文件,或者是兩者的組合。

	1.修改分區ID
[root@localhost ~]# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10Partition table scan:MBR: protectiveBSD: not presentAPM: not presentGPT: presentFound valid GPT with protective MBR; using GPT.Command (? for help): n
Partition number (3-128, default 3): 
First sector (34-41943006, default = 8390656) or {+-}size{KMGTP}: 
Last sector (8390656-41943006, default = 41943006) or {+-}size{KMGTP}: +2G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8200
Changed type of partition to 'Linux swap'Command (? for help): p
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 68E53DD4-EB72-44D6-A891-EC8367BDD529
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 29360061 sectors (14.0 GiB)Number  Start (sector)    End (sector)  Size       Code  Name1            2048         4196351   2.0 GiB     8200  Linux swap2         4196352         8390655   2.0 GiB     8200  Linux swap3         8390656        12584959   2.0 GiB     8200  Linux swap
#8200是Centos7中的swap的默認systemID 
Command (? for help): wFinal checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.2.mkswap /dev/sdb3  #swap格式化3.swapon  /dev/sdb3  #開啟設備swapoff /dev/sdb3  #關閉設備4.free -k -m -g -h   #查看swap情況
[root@localhost ~]# free -k  #以kb顯示swap大小total        used        free      shared  buff/cache   available
Mem:         995892      664036       68396       26972      263460      101380
Swap:       5242868       21768     5221100
[root@localhost ~]# free -g  #以gb顯示swap大小total        used        free      shared  buff/cache   available
Mem:              0           0           0           0           0           0
Swap:             4           0           4
[root@localhost ~]# free -m  #以mb顯示swap大小total        used        free      shared  buff/cache   available
Mem:            972         648          66          26         257          99
Swap:          5119          21        5098
[root@localhost ~]# free -h    #以常見單位顯示swap大小total        used        free      shared  buff/cache   available
Mem:           972M        648M         66M         26M        257M         99M
Swap:          5.0G         21M        5.0G
[root@localhost ~]# 

ble
Mem: 972 648 66 26 257 99
Swap: 5119 21 5098
[root@localhost ~]# free -h #以常見單位顯示swap大小
total used free shared buff/cache available
Mem: 972M 648M 66M 26M 257M 99M
Swap: 5.0G 21M 5.0G
[root@localhost ~]#


注:fdsik命令可以在centos6、7版本使用,gdisk在centos7可以使用,如果需要在centos6使用yum安裝即可

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/16086.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/16086.shtml
英文地址,請注明出處:http://en.pswp.cn/web/16086.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Transformer講解大綱,寫PPT的可參考

前言 在這個信息如星辰般璀璨的時代,我們被無數的語言和文字包圍。它們如同夜空中閃爍的繁星,每一顆都蘊藏著獨特的故事和知識。然而,如何解讀這些星辰的秘密,如何將它們的光芒匯聚成智慧的海洋,成為了我們這個時代的挑戰。今天,我們將一起探索一種名為Transformer的神秘…

【路徑規劃】基于遺傳算法GA實現最短距離 多起點多終點多旅行商問題求解附Matlab代碼

基于遺傳算法GA實現最短距離 多起點多終點多旅行商問題求解 研究背景:研究步驟:研究方法和技術路線:代碼研究背景: 多起點多終點多旅行商問題是旅行商問題(TSP)的一個擴展,該問題要求確定多個旅行商從各自的起點出發,分別經過一系列目標點最終回到各自的終點,使得總路…

IOT技術怎么落地?以寶馬,施耐德為例

物聯網技術 物聯網(IoT)技術正逐漸成為數字化工廠轉型的核心驅動力。本文將通過實際案例,探討IoT技術如何促進制造業的數字化轉型,提高生產效率,降低成本,并提升產品質量。 1. 物聯網技術簡介 物聯網技術通…

vue 模擬隨機經緯度(小數點后保留6位),直接可用

1.隨機生成經緯度 // 隨機生成經緯度的方法function generateRandomLatLng(latitudeRange, longitudeRange) {const randomLat (Math.random() * latitudeRange.max latitudeRange.min).toFixed(6)const randomLng (Math.random() * longitudeRange.max longitudeRange.mi…

MySQL數據庫基礎:使用、架構、SQL語句、存儲引擎

文章目錄 什么是數據庫CS模式 基本使用安裝鏈接服務器服務器、數據庫、表關系簡單使用數據庫在Linux下的體現 MySQL架構連接器層客戶端層服務層存儲引擎層物理存儲層 SQL分類存儲引擎 什么是數據庫 mysql:數據庫服務的客戶端mysqld:數據庫服務的服務器端…

PLC_博圖系列?R_TRIG:檢測信號上升沿

PLC_博圖系列?R_TRIG:檢測信號上升沿 文章目錄 PLC_博圖系列?R_TRIG:檢測信號上升沿背景介紹R_TRIG: 檢測信號上升沿說明參數示例 關鍵字: PLC、 西門子、 博圖、 Siemens 、 R_TRIG 背景介紹 這是一篇關于PLC編程的文章&a…

[ C++ ] 類和對象( 中 ) 2

目錄 前置和后置重載 運算符重載和函數重載 流插入流提取的重載 全局函數訪問類私有變量 友員 const成員 取地址及const取地址操作符重載 前置和后置重載 運算符重載和函數重載 流插入流提取的重載 重載成成員函數會出現順序不同的情況(函數重載形參順序必須相…

數據結構(五)樹與二叉樹

2024年5月26日一稿(王道P142) 基本概念 術語 性質 二叉樹 5.2.2 二叉樹存儲結構

Spring從零開始學使用系列(三)--Spring框架中@Value注解和配置管理詳解

如果各位老爺覺得可以,請點贊收藏評論,謝謝啦!! 文章中涉及到的圖片均由AI生成 公眾號在最下方!!! 目錄 1. 如何在Spring中使用Value注解 1.1 基本用法 1.2提供默認值 2. 如何配置和使用Prop…

嵌入式進階——數碼管2

🎬 秋野醬:《個人主頁》 🔥 個人專欄:《Java專欄》《Python專欄》 ??心若有所向往,何懼道阻且長 文章目錄 驅動封裝封裝的一些疑問數字走馬燈實現擴展知識 驅動封裝 根據前面的內容可以將代碼進行封裝,封裝后作為一個獨立的整…

貪心題目總結

1. 最長遞增子序列 我們來看一下我們的貪心策略體現在哪里??? 我們來總結一下: 我們在考慮最長遞增子序列的長度的時候,其實并不關心這個序列長什么樣子,我們只是關心最后一個元素是誰。這樣新來一個元素之后&#xf…

HTML5 Web組件技術應用

目錄 Custom ElementsShadow DOMHTML TemplatesHTML ImportsHTML5 Web Components技術是一組相關標準和API的集合,旨在增強Web開發中的組件化能力,允許開發者創建可重用、封裝良好的自定義UI組件,這些組件擁有獨立的視圖層(樣式)、邏輯(行為)和結構(模板)。Web Compon…

【Week-R1】RNN實現心臟病預測,基于tensorflow框架

文章目錄 一、什么是RNN?二、準備環境和數據2.1 導入數據 三、構建模型四、訓練和預測五、其他(1)sklearn模塊導入報錯:ModuleNotFoundError: No module named sklearn(2)優化器改為SGD,accurac…

類和對象2

三、C對象模型和this指針 3.1 成員變量和成員函數分開存儲 在C中&#xff0c;類內的成員變量和成員函數分開存儲&#xff0c;只有非靜態成員變量才屬于類的對象上 #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> #include <string.h> using namespace …

Linux系統之GoAccess實時Web日志分析工具的基本使用

Linux系統之GoAccess實時Web日志分析工具的基本使用 一、GoAccess介紹1.1 GoAccess簡介1.2 GoAccess功能1.3 Web日志格式 二、本地環境介紹2.1 本地環境規劃2.2 本次實踐介紹 三、檢查本地環境3.1 檢查本地操作系統版本3.2 檢查系統內核版本3.3 檢查系統鏡像源3.4 更新軟件列表…

JavaFX安裝與使用

前言 最近學習了javafx,開始時在配置環境和導包時遇到了一些麻煩,關于網上很多方法都嘗試過了,現在問題都解決了,和大家分享一下我是怎么實現javafx的配置,希望大家可以通過這個方法實現自己的環境配置! &#x1f648;個人主頁: 心.c &#x1f525;文章專題:javafx &#x1f49…

如何在linux命令行(終端)執行ipynb 文件。可以不依賴jupyter

1.安裝 runipy pip install runipy 2.終端運行 runipy <YourNotebookName>.ipynb 在終端命令行執行shell腳本&#xff0c;&#xff08;也可以在crontab 中執行&#xff09;&#xff1a; (base) [recommendapp-0-5-B-006 script]$ cat run1.sh #!/bin/bashcd /home/recom…

計算機網絡-Traffic-Filter流量過濾策略

一、概述 為提高網絡安全性&#xff0c;管理人員需要控制進入網絡的流量&#xff0c;將不信任的報文丟棄在網絡邊界。所謂的不信任報文是指對用戶來說存在安全隱患或者不愿意接收的報文。同時保證數據訪問安全性&#xff0c;企業網絡中經常會要求一些部門之間不能相互訪問。 背…

服務器數據恢復—同友存儲raid5陣列上層虛擬機數據恢復案例

服務器數據恢復環境&#xff1a; 某市教育局同友存儲&#xff0c;存儲中有一組由數塊磁盤組建的raid5陣列&#xff0c;存儲空間劃分若干lun。每個lun中有若干臺虛擬機&#xff0c;其中有數臺linux操作系統的虛擬機為重要數據。 存儲結構&#xff1a; 服務器故障&#xff1a; r…