磁盤和文件系統管理述

    我們知道一塊磁盤是可以被分區成多個分區的(partition),以Windows的觀點來看,你可能會有一顆磁盤并且將他分區成為C:, D:, E:盤,那個C, D,E就是分區。Linux的設備都是以文件的型態存在,磁盤設備接口的不同也早就了磁盤文件名的不同。即IDE接口的磁盤設備文件名都是/dev/hd[a-z]的格式,例如:/dev/hda./dev/hdb。SCSI, SATA, SAS, USB接口的磁盤設備文件名都是:/dev/sd[a-z],例如sda.sdb,磁盤設備的命名主要是根據Linux核心偵測到磁盤的順序來進行的,例如你有兩塊SATA接口的硬盤要插在有六個SATA插槽的主板上,一塊插在SATA1接口上一塊插在STAT3接口上,因為是使用偵測到的順序來決定設備文件名,并非與實際插槽代號有關,所以這兩塊磁盤的命名就是SATA1插槽上為/dev/sda,而SATA3插槽上的為/dev/sdb。那么同一設備上的不同分區表示就是1.2.3.4.5這樣,/dev/sda磁盤上的分區命名為/dev/sda1,/dev/sda2….注意:centos6和centos7統統將硬盤設備文件標識為/dev/sda[a-z]#

    文件系統是操作系統用于明確存儲設備,或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件機構稱為文件管理系統,簡稱文件系統。



磁盤分區

    兩種分區方式: MBR, GPT

    早期的 Linux 系統為了兼容Windows的磁盤,因此使用的是支持 Windows 的 MBR(Master Boot Record, 主要開機紀錄區)的方式來處理開機管理程序與分區表!而開機管理程序紀錄區與分區表則通通放在磁盤的第一個扇區, 這個扇區通常是512Bytes的大?。ㄅf的磁盤扇區是512Bytes)所以說,第一個扇區及(0扇區)512Byte會有兩個數據;

    主要開機記錄區(Master Boot Record, MBR):主要用于引導系統啟動,有446 Bytes
    分區表(partition table):記錄整顆硬盤分區的狀態,有64 Bytes

    由于分區表所在區塊僅有64 Bytes容量,而每個分區要占用16Bytes,因此最多僅能記錄4個分區,每個記錄區記錄了該區段的啟始與結束的柱面號碼。假設這個設備名稱為/dev/sda/那么這個4個分區的命名分別是/dev/sda1,sda2,sda3,sda4.而這4個分區又被稱為主分區和擴展分區,通常這4個分區為3個主分區和一個擴展分區,而擴展分區又可延伸N個邏輯分區(注意;一旦運用擴展分區,即此擴展分區不在存儲實際數據,而是存儲指向邏輯分區的信息,邏輯分區的設備名只能從5開始。)

    GPT支持128個分區,已經沒有所謂的主、延伸、邏輯分區的概念,每個都可以視為是主分區,使用64位,支持8Z(512Byte/block ) 64Z (4096Byte/block)GPT磁盤分區結構解決了MBR只能分4個主分區的的缺點,并且支持大硬盤,分區結構清晰簡單而且有備份。

    使用128位UUID 表示磁盤和分區 GPT分區表自動備份在頭和尾兩份,并有CRC校驗位

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

    結構如;

    blob.png

    保護MBR區:與 MBR 模式相似的,記錄開機引導信息程序。

    GPT頭:這個部份紀錄了分區表本身的位置與大小,同時紀錄了備份用的GPT分區放置的位置,同時放置了分區表的檢驗碼(CRC32),操作系統可以根據這個檢驗碼來判斷GPT是否正確。若有錯誤,還可以通過這個紀錄區來取得備份的GPT(磁盤最后的那個備份區塊) 來恢復GPT的正常運行!

    分區表:實際記錄分區信息處        



管理分區  

    工具;fdisk,parted,sfdisk

    fdisk 創建MBR分區,也支持GPT,對于一塊硬盤,最多只能管理15分區
    gdisk 創建GPT分區
    GNU parted 高級分區操作(創建、復制、調整大小等等)
    partprobe-重新設置內存中的內核分區表版本
    fdisk /dev/sdb
    gdisk /dev/sdb 類fdisk 的GPT分區工具

    lsblk:查看當前所有磁盤分區情況
  fdisk命令

    fdisk -l [-u] [device…]:列出指定磁盤設備上的分區情況;查看磁盤的分區信息

]# fdisk -l /dev/sda
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64       15666   125316096   8e  Linux LVM

上面可看到設備名稱是/dev/sda,大小為128G,等信息….,下邊一欄則顯示的是分區信息,可看到目前有兩個分區,分別sda1和sda2,而sda1作為了系統的引導分區,開始柱面為1,結束柱面為64,塊大小,分區類型ID等等…(注意;對cenots6來說start是開始柱面,End是結束柱面,對centos7來說start是開始扇區,End是結束扇區)


fdisk device(設備)

    fdisk提供了一個交互式接口來管理分區,它有許多子命令,分別用于不同的管理功能;所有操作均在內存中進行,沒有直接同步到磁盤;直到使用w命令保存到磁盤上才會生效

n:創建新分區

d:刪除已有分區

t:修改分區類型

l:查看所有已知id

w:保存并且退出

q:不保存并退出

m:查看幫助信息

p:顯示現有分區信息

示例

~]# fdisk /dev/sda
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (7859-15665, default 7859): 
Using default value 7859
Last cylinder, +cylinders or +size{K,M,G} (7859-15665, default 15665): +10G
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Selected partition 4
First cylinder (9165-15665, default 9165): 
Using default value 9165
Last cylinder, +cylinders or +size{K,M,G} (9165-15665, default 15665): 
Using default value 15665
Command (m for help): n
First cylinder (9165-15665, default 9165): 
Using default value 9165
Last cylinder, +cylinders or +size{K,M,G} (9165-15665, default 15665): +10G
Command (m for help): w
~]# partx -a /dev/sda

重讀分區表

創建后

partx -a /device

刪除后
partx -d -n M:N /dev/DEVICE
centos6: –nr N-M
CentOS 5, 7: 使用partprobe
partprobe [/dev/DEVICE]

也可在fdisk交互界面進行刪除分區動作


swap交換分區

交換分區是系統RAM的補充

linux上的交換分區必須使用獨立的文件系統

且文件系統的system id 必須為82

創建swap設備:mkswap命令

mkswap [option] device

-L label:指明卷標

-f:強制

交換分區的啟用和禁用:

啟用:swapon

swap [option][option]

使用swapon -a 激活交換空間:定義在/etc/fstab文件中的所有swap設備

禁用:swapoff

swapoff device

findfs :查找分區
findfs [options] LABEL=<label>
findfs [options] UUID=<uuid>

]# findfs UUID=40ad1cd6-2e57-422d-9af7-1015a582636d
/dev/sdb1


管理文件系統

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:未經處理或者未經格式化產生的文件系統

文件系統的組成部分:

文件系統驅動:由內核提供,

文件系統管理工具:由用戶空間的應用程序提供

如果一個文件系統想要在系統上運行起來的話,必須要裝載對應的模塊

lsmod:查看當前系統內核已經裝載的模塊,如果內核相應識別一個文件系統,必須先裝載這個模塊


創建文件系統的工具

mkfs;

mkfs.ext2(無日志功能),mkfs.ext3,mkfs.ext4,mkfs.xfs,mkfs.vfat…

centos6如果使用xfs文件系統,需要安裝(xfsgrogs)

再次執行mkfs.ext3 /dev/sda6,將ext2文件系統格式化為ext3。

當然了也可以再次格式話為ext4格式,ext4格式同樣支持日志功能,而且在單個文件和單個文件系統的大小比ext3性能更強大 

centos6 默認不支持xfs

如果要安裝得先安裝xfsprogs工具;可用yum進行安裝,然后在執行]# mkfs.xfs /dev/sda6 -f 強制將文件系統格式化為xfs格式

檢測及修復文件系統的工具

fsck:check and repair a Linux file system(通用所有文件系統)使用此修復功能必須先取消掛載,要不會然會破壞數據

修復的工作特性就是把不連續的文件刪除進行的。

-t fstype:指明文件系統類型

fsck -t ext4 = fsck.ext4

-a:無需交互而自動檔修復所有錯誤;(不建議)

-r: 交互式修復;

windows文件系統

#mkfs.vfat device

windows無法識別linux的文件系統;因此,存儲設備需要兩種系統之間交叉使用時,應該使用windows和linux同時支持的文件系統;fat32(vfat);


blkid命令可查看文件系統類型

blkid /dev/sda#

blob.png

blkid -L label:根據label定位為設備

blkid -U UUID:根據UUID定位設備

每一個設備都有一個隨機的UUID;全局唯一標識符

lsblk命令

lsblk /device:查看磁盤分區類型

-f :磁盤分區類型和文件系統類型一起顯示

blob.png


ext系列文件系統的管理工具:

mkfs.兩次tab可看到多種文件系列

mkfs.ext2,mkfs.ext3,mkfs.ext4(向前兼容較老的版本)

mkfs -t ext2=mkfs.ext2

ext2:沒有日志功能,ext3,4有日志功能,ext4性能有很大提升,建議使用ext4文件系統

命令

mkfs.ext2 /dev/sda#(敲下回車,及完成格式化文件系統)

mke2fs;

mke2fs  [ option] device

-t{ext2|ext3|ext4}:指明要創建的文件系統類型

mkfs.etx4=mkfs -t ext4=mke2fs -t ext4

-b{1024|2048|4096}:指明文件系統的塊大?。?/p>

-L LABEL:指明卷標;

-j:創建有日志功能的文件系統ext3;

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

-i#:bytes-per-inode:指明inode與字節的比率;即每多少字節創建一個inode

-N#:直接指明要給此文件系統創建的inode的數量;

-m#:指定預留的空間,百分比;

-O[^]FEATURE:以指定的特性創建目標文件系統,不加^表示啟用此特性,加^表示關閉此特性

創建文件系統后回顯信息;

blob.png

e2label命令:卷標的查看與設定

查看:e2label device

blob.png

設定:e2label device LABEL

blob.png

tune2fs命令:查看或修改ext系統文件系統的某些屬性

adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems:

注意:塊大小創建后不可修改

tune2fs [option]device

-l:查看超級塊的內容;

blob.png

修改指定文件系統的屬性

-j:ext2 –>ext3

blob.png增加了日志功能,實際操作就是把ext2改為ext3

-L:LABEL:修改卷標

blob.png

-m #:調整預留空間百分比

blob.png

-O[^]FEATHER:開啟或關閉某種特性;

-o[^]mount_option:開啟或關閉某種默認掛載選項

blob.png

acl

^acl

dumpe2fs命令:顯示ext系列文件系統的屬性信息

dumpe2fs [-h]device和tune2fs -l /device效果一樣    

查看超級塊信息(分組信息),分區用分組管理

實現文件系統檢測的工具

因進程意外終止或系統崩潰等原因導致寫入操作非正常終止時,可能會造成文件損壞;此時,應該檢測并修復文件系統;建議,離線進行

e2fsck:check a Linux ext2/ext3/ext4 file system(ext系列文件專用的檢測修復工具)

e2fsck[option]device

-y:對所有問題自動回答為yes

-f:強制修復;即使文件系統處于clean狀態,也要強制進行檢測



使用文件系統:

首先要掛載:mount(掛載)命令和umount(卸載)命令

跟文件系統之外的其他文件系統要想能夠被訪問,都必須通過“關聯”至根文件系統上的某個目錄來實現,此關聯操作即為“掛載”;此目錄即為“掛載點”;

掛載點需要具備一下條件:mount_point,用于作為另一個文件系統的訪問入口

(1)事先存在

(2)應該使用未被或不會被其他進程使用到的目錄

(3)掛載點下原有的文件將會被隱藏;

mount命令:

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

使用不帶任何選項的mount命令可以顯示當前所有已經掛載了的文件系統

設備掛載或卸

命令選項:

-r:readonly,只讀掛載;

-w:read and write,讀寫掛載

blob.png

-n:默認情況下,載的操作會同步更新至/etc/mtab文件中;-n用于禁止此特性;

-t vfstype:指明要掛載的設備上的文件系統類型;多數情況下可省略,此時mount會通過blkid來判斷要掛載的設備的文件系統類型

-L LABEL:掛載時以卷標方式指明設備;

mount -L LABEL dir

blob.png

-U UUID:掛載時以UUID方式指明設備;

-o option:掛載選項,多個選項之間用逗號隔開

默認掛載選項以外的選項才會顯示在/etc/mtab和/proc/mounts中

sync/async:同步/異步操作;

atime/noatime:文件或目錄在被訪問時是否更新其訪問時間戳;

diratime/nodirname:目錄在被訪問時是否更新其訪問時間戳;

remount:重新掛載

acl:支持使用facl功能

#mount -o acl device dir

#tune2fs -o acl device

ro:只讀

rw:讀寫

dev/nodev:此設備上是否允許創建設備文件;

exec/noexec:是否允許運行此設備上的程序文件;

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

user/nouser:是否允許普通用戶掛載此文件系統;

suid/nosuid:是否允許程序文件上的suid和sgid特殊權限生效

blob.png

mount –bind 源目錄 目標目錄(可以實現將目錄綁定在另一個目錄上,作為其臨時訪問入口;)

defaults:Use default options: rw, suid, dev, exec, auto, nouser, async, and relatime.(不加任何選項的默認掛載生效的選項)

查看當前系統上所有已掛載的設備

#mount

#cat /etc/matb

#cat /proc/mounts


掛載光盤;

mount -r /dev/cdrom mount_point

===================================================================

光盤設備文件:/dev/cdrom

掛載U盤:

實現識別u盤的設備文件;

====================================================================

umount卸載命令:

umount device|dir

注意:正在被進程訪問到的掛載點無法被卸載;

查看被哪個或者哪些進程所用:

#lsof mount_point

#fuser -v mount_point

=====================================================================

終止所有正在訪問某掛載點的進程

#fuser -km mount_point

blob.png

=====================================================================

掛載本地的回環設備;

#mount -o loop /path/to/some_loop_file mount_point

======================================================================

設定除了根文件系統以外的其他文件系統能夠開機時自動掛載:/etc/fstab文件

]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Wed Aug 24 19:00:44 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg0-root    /                ext4    defaults         1 1
UUID=8eba0853-3403-459b-9021-b3fc0da22d99 /boot      ext4    defaults         1 2
/dev/mapper/vg0-usr     /usr              ext4    defaults         1 2
/dev/mapper/vg0-var     /var              ext4    defaults         1 2
/dev/mapper/vg0-swap     swap             swap    defaults         0 0
tmpfs            /dev/shm            tmpfs    defaults         0 0
devpts            /dev/pts           devpts   gid=5,mode=620      0 0
sysfs            /sys              sysfs    defaults         0 0
proc            /proc              proc    defaults         0 0

每行定義一個要掛載的文件系統及其相關屬性

6個字段:

(1)要掛載的設備

設備文件

LABEL

UUID

偽文件系統:如sysfs,proc,tmpts

(2)掛載點

swap類型的設備的掛載點為swap

(3)文件系統類型:

(4)掛載選項

defaults:使用默認掛載選項:

如果要同時指明多個掛載選項,彼此間以逗號分隔

(5)轉儲頻率(備份)

0:從不備份

1:每天備份

2:每隔一天備份

(6)自檢次序

0:不自檢

1:首先自檢,通常只能是根文件系統可用1

2:次級自檢

mount -a :可自動掛載定義在此文件中的所支持自動掛載的設備;

blob.png



df和du補充

df命令:

df[option]…[file]

-l:僅顯示本地文件的相關信息

-h:human-readable

-i:顯示inode的使用狀態而非blocks

blob.png

============================================

du命令:查看目錄大小

du[option]…[file]

-s:sumary

-h:human-readble

]# du -sh /root/
78M	/root/

命令整理                                                                           磁盤和文件系統管理.png             

原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/40037

(0)
M20-1馬星M20-1馬星
上一篇 2016-08-29
下一篇 2016-08-29

相關推薦

  • shell腳本

    最近學了shell腳本,自己感覺挺有難度的,今天就簡單整理一些shell腳本的練習和作業 練習:    1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。#!/bin/bash# ———&#…

    2017-08-05
  • 初識linux:計算機的組成及功能

    一、描述計算機的組成及功能。 由馮諾伊曼提出計算機體系結構(5大部件)控制器(Controller):是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。運算器(Datapath):運算器的功能是對數據進行各種算術運算和邏輯運算,即對數據進行加工處理。 (cpu由控…

    2017-12-03
  • 軟件包管理

      軟件運行環境       API:Application Programming Interface         POSIX :Portable OS      碼程序源代碼 –>預處理 –> 譯…

    Linux干貨 2016-08-29
  • 高級文件系統管理1

    本部分內容主要講述了高級文件系統的管理,包括設定文件系統配額,設定和管理軟RAID設備,配置邏輯卷,設定LVM快照和btrfs文件系統。其中文件系統配額和軟RAID在企業中使用的頻率并不很高,作為熟練即可,而邏輯卷的創建和LVM快照是非常重要的內容,必須精通并完全理解其原理。至于btrfs文件系統是新興的一種技術,作為了解即可。 一、知識整理 1、文件系統配…

    Linux干貨 2016-08-29
  • 馬哥教育網絡班22期+第四周課程練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]# cp -rf /etc/skel/ /home/tuser1 [root@localhost ~]# chmod&…

    Linux干貨 2016-09-19
  • scp命令介紹

    scp是secure copy的簡寫,用于在Linux下進行遠程拷貝文件的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨服務器,而且scp傳輸是加密的。可能會稍微影響一下速度。當你服務器硬盤變為只讀 read only system時,用scp可以幫你把文件移出來。另外,scp還非常不占資源,不會提高多少…

    Linux干貨 2017-07-24

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-29 09:52

    文章對各命令的作用,用法和常用選項總結的很完整,建議下來多加作,嘗試著靈活運用這些工具來實現,分區的創建與格式化并掛載使用。多動手才能明白自己的不足哦。

欧美性久久久久