磁盤管理之文件系統

一,概述

文件系統是操作系統用于明確存儲設備或分區上的文件的方

法和數據結構;即在存儲設備上組織文件的方法。操作系統

中負責管理和存儲文件信息的軟件結構稱為文件管理系統,

簡稱文件系統。

 從系統角度來看,文件系統是對文件存儲設備的空間進行組

織和分配,負責文件存儲并對存入的文件進行保護和檢索的

系統。具體地說,它負責為用戶建立文件,存入、讀出、修

改、轉儲文件,控制文件的存取,安全控制,日志,壓縮,

加密等。

文件系統類型:

Linux文件系統:ext2(Extended file system), ext3,

ext4, xfs(SGI), btrfs(Oracle), reiserfs, jfs(

AIX), swap

光盤:iso9660

Windows:fat32, ntfs

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

網絡文件系統:NFS, CIFS

集群文件系統:GFS2, OCFS2(oracle)

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

Lustre

RAW:未經處理或者未經格式化產生的文件系統

文件系統分類:

根據其是否支持"journal"功能:

日志型文件系統: ext3, ext4, xfs, …

非日志型文件系統: ext2, vfat

文件系統的組成部分:

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

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

Linux的虛擬文件系統:VFS

blob.png

VFS就是利于開發人員的虛擬文件系統,開發過程中會操作很多文件系統,有了VFS,就不用去各個操作文件系統,直接通過VFS接口來訪問內核中的各個文件文通

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

blob.png

創建文件系統:

mkfs命令:

(1) # mkfs.FS_TYPE /dev/DEVICE

ext4

xfs

btrfs

vfat

blob.png

(2) # mkfs -t FS_TYPE /dev/DEVICE

blob.png

-L 'LABEL': 設定卷標

blob.png

tune2fs:

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

-l:查看指定文件系統超級塊信息;super block

-L 'LABEL':修改卷標

-m #:修預留給管理員的空間百分比

-j: 將ext2升級為ext3

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

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

-U UUID: 修改UUID號

dumpe2fs:

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

blob.png

查看超級塊什么信息

什么是超級快,超級塊就是一個分區有N個塊,將塊分為組來管理,這就是超級塊

每個超級快的頭為超級塊的信息,備份超級塊的信息在組的1,3,5,7,9

blob.png

創建ext文件系統:

mke2fs:ext系列文件系統專用管理工具

-t {ext2|ext3|ext4}

-b {1024|2048|4096}(指定塊的最小空間)

-L 'LABEL' (指定卷標)

-j: 相當于-t ext3 

mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3

-i #: 為數據空間中每多少個字節創建一個inode;此大

小不應該小于block的大小

blob.png

-N #:為數據空間創建個多少個inode

blob.png

最小的inode號為10496,所以我們填寫的10240不能實現.

-I 一個inode記錄大小128—4096字節

blob.png

-m #: 默認5%,為管理人員預留空間占總空間的百分比

blob.png

預留的空間默認為總空間的百分之五,最小可為0.1,如

blob.png

-O FEATURE[,…]:啟用指定特性

-O ^FEATURE:關閉指定特性

blob.png

blob.png

關閉has_journal特性,不帶^為啟用

文件系統標簽:

指向設備的另一種方法

與設備無關

blkid:塊設備屬性信息查看

blkid [OPTION]… [DEVICE]

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

-L LABEL:根據指定的LABEL來查找對應的設備

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

# e2label DEVICE [LABEL]

findfs :查找分區

findfs [options] LABEL=<label>

findfs [options] UUID=<uuid>

文件系統檢測和修復

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

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

blob.png

注意:一定不要在掛載狀態下修復,否則將會導致文件系統損壞

fsck: File System Check

fsck.FS_TYPE

fsck -t FS_TYPE

-a: 自動修復錯誤

-r: 交互式修復錯誤

FS_TYPE一定要與分區上已經文件類型相同

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

-y:自動回答為yes

-f:強制修復

我們將一個硬盤的超級塊信息破壞.

blob.png

blob.png

blob.png

掛載mount:

掛載:將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為

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

把設備關聯掛載點:mount Point

mount

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

umount

掛載點下原有文件在掛載完成后會被臨時隱藏

掛載點目錄一般為空

一個磁盤可以掛載多個目錄,但是一個目錄不能同時掛載多個磁盤。

mount /dev/sda3 /testdir

mkdir /testdir/self

mount /dev/sda3 /testdir/self

實驗證明同一個磁盤分區掛載到第一層目錄下的目錄,只能進入一層之后就是本身第二層目錄的內容

blob.png

blob.png

fuser -v /mnt/sdb1

查看誰在用這個磁盤分區

用mount命令掛載文件系統:

掛載方法:mount DEVICE MOUNT_POINT

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

mount [-fnrsvw] [-t vfstype] [-o options] device dir

device:指明要掛載的設備;

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

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

(3) UUID, -U 'UUID':例如-U '0c50523c-43f1-45e7-85c0-a126711d406e'

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

dir:掛載點

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

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

mount常用命令選項:

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

-r: readonly,只讀掛載

-w: read and write, 讀寫掛載

-n: 不更新/etc/mtab,相當于#mount

-a:自動掛載所有支持自動掛載的設備(定義在了/etc/fstab文件中,且掛載選項中有auto功能)

-L 'LABEL': 以卷標指定掛載設備

-U 'UUID': 以UUID指定要掛載的設備

-B, –bind: 綁定目錄到另一個目錄上

查看內核追蹤到的已掛載的所有設備:

cat /proc/mounts

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

async:異步模式

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

atime/noatime:包含目錄和文件

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

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

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

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

blob.png

blob.png

blob.png

suid/nosuid:不否支持suid和sgid權限

remount:重新掛載

ro:只讀

rw:讀寫

user/nouser:是否允許普通用戶掛載此設備,默認管理員才能掛載

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

Defaults:相當于rw, nosuid, dev, exec, auto, nouser, async

mknod 拷貝硬件設備

blob.png

blob.png

原創文章,作者:Kartik,如若轉載,請注明出處:http://www.www58058.com/43740

(0)
KartikKartik
上一篇 2016-09-05
下一篇 2016-09-05

相關推薦

  • Docker 之初次體驗

    一、Docker 簡介  lxc linux container,openvz  容器中各虛擬機只有一個內核,而是多個用戶空間  在庫中完成虛擬化,比如wine 或者在windows中運行bash  在應用程序的運行級別提供虛擬化,比如jvm   pstree , pid 為1 的進程  …

    Linux干貨 2017-02-24
  • wk_02 作業

    Linux 文件管理命令 cp命令 功能 Linux 系統中cp命令是用來復制目錄/文件的。 概要 單源復制 cp [OPTION]… [-T] SOURCE DEST DEST不存在則事先創建此文件,并復制源文件的數據流至DEST中; DEST存在 DEST是非目錄文件:則覆蓋目標文件; DEST是目錄文件:則先…

    Linux干貨 2016-12-11
  • Linux基礎知識之腳本初級編程

    1.編程語言的分類:機器語言,匯編語言,高級語言     高級語言:         靜態語言:編譯型語言 在程序執行之前就會編譯成機器代碼(完全轉化完成)       &nbsp…

    Linux干貨 2016-08-15
  • 馬哥教育網絡班21期+第3周作業

    馬哥教育網絡班21期+第3周作業 1、列出當前系統上所有已經登陸的用戶的用戶名 [root@ip-172-31-45-110 ec2-user]# who | awk '{print $1}' ec2-user 2、取出最后登錄到當前系統的用戶的相關信息 [root@ip-172-3…

    Linux干貨 2016-07-22
  • DNS相關配置

    DNS基礎概念: DNS全稱為Domain Name System。它作為將域名和IP地址相互映射的得一個分布式數據庫,能夠使人更方便的訪問互聯網 DNS使用TCP和UDP得53號端口 BIND是DNS得實現方式之一 named是bind程序得運行的進程名 named進程的主要運行者是named用戶,為了安全起見,它的程序也應該以named用戶運行 配置正向…

    Linux干貨 2017-05-30
  • 習題

    1、刪除/etc/grub2.conf文件中所有以空白開頭的行行首的空白字符 2、刪除/etc/fstab文件中所有以#開頭,后面至少跟一個空白字符的行的行首的#和空白字符 3、在/root/install.log每一行行首增加#號 4、在/etc/fstab文件中不以#開頭的行的行首增加#號 5、處理/etc/fstab路徑,使用sed命令取出其目錄名和基…

    Linux干貨 2016-08-10
欧美性久久久久