詳解linux磁盤管理

                       磁盤管理

設備文件

1. I/O portsI/O設備地址

2. 一切皆文件,open(),read(),write(),close(),對設備的操作也都是通     過這些底層函數進行的進行操作的

設備類型

       1. 塊設備:block 存取單位“塊”磁盤,(數據在磁盤中以塊進行  存儲的,它是零散          的隨機存儲)

       2. 字符設備:char 存取單位“字符”,鍵盤

blob.png

解釋/etc/dev 目錄下,用ls -l 顯示該目錄下的詳細信息會看到用b c來標識的文件,該文件是字符設備還是塊設備

設備文件

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

設備號碼:主設備號  次設備號

     主設備號,標識設備類型(比如硬盤,光盤,終端等)

     次設備號:標識同一類型下的不同設備(不同分區它的次設備編號也不                同)

 /dev/vda 是虛擬磁盤,不是真實的磁盤

   如下圖

blob.png

硬盤接口和類型

       并行:

IDE133MB/s     SCSI640MB/s

串口:

SATA : 6GPs

SAS : 6Gps    注意  這兩個單位是b

USB: 480MB/s 注意   這個單位是B

   思考:為什么串口的速度會那個快,并發接口每個針腳之間存在磁干擾,  并且沒有錯誤修復,如果出現錯誤,會反復進行重傳,這樣它比串口的速度就會慢很多

       rpm:在硬盤中指的是轉速每分鐘,rotations  per  minute

 設備文件

磁盤設備的設備文件命名/dev/DEV_FILE

IDE: /dev/hd(而在os7上這種接口的命令已經統一改為/dev/sd

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

 不同設備:再用a-z字母進行區分/dev/sda/dev/sdb /dev/sdc/。如 果26個字符還不夠           標識的話,那么就用/dev/sdaa  /dev/sdab  ……進行標識

       同一設備上的不同分區:可以用數字進行表示1、22…..

/dev/sda1, /dev/sda5

磁盤存儲術語

blob.png

head :磁頭  256個磁頭

track :磁道  1024 個磁道

cylinder: 柱面  1024

secotr: 扇區,512bytes   63個扇區

總的容量為:512*63*1024*256  

扇區*扇區個數*磁道數*磁頭(或者盤面)

 

磁盤的結構:

磁盤  、 磁臂  、磁頭、  扇區 、 磁道 、電機、盤片

遵循CHS標準,及柱面,磁頭,扇區,磁盤管理的三圍

fdisk -l 來顯示

blob.png

早其的時候是以整個柱面進行劃分的,同一個柱面不能相互被兩個分區占用,

一個柱面是8兆,所以分區大小應該是8兆的整數倍

 而在os7上是以扇區進行定義分區大小的

blob.png

blob.png

顯示磁盤大小 df   -h命令

fdisk是一個磁盤的管理工具

如果想讓os7顯示以柱面為分區單位那么就得用

fdisk  -l  -u=cylinders

 

磁盤分區:

為什么要分區?

優化I/O 性能  如:對文件進行操作時無需對整個磁盤進行操作,而是針對某個磁盤。

實現磁盤空間配額限制 如:可以限制磁盤空間

隔離系統和程序  如:/boot分區

安裝多個OS   如:一塊硬盤上可以格式話成多個文件系統

提高修復速度  如:果某個磁盤某個位置有問題,不需要進行全         盤進行搜素修復,而是針對某個分區進行修復

分區

分區的方式有兩種:MBR    GPT

MBR:主引導記錄master boot record 使用32位表示扇區數量,因 為232次方為4G 而一個扇區的大小是512個字節,所以總大小為2T

通常是柱面進行分區的

    0磁道0扇區:512字節

446位:是與系統加載有關

系統加載

還有更早的lilo  只是引導機器

os6的有grub

os7而現在普遍用的grub2,還可以做一些加密和修復功能

64字節:分區表

16字節標識一個分區:因此只能表示4個分區

用來標識磁盤從第幾個柱面開始,到第幾個柱面結束來表示一個分區

最后兩位:標識位55AA

如果沒有這個55AA的標志位,會表示這個磁盤上沒有分區表,表示為一個裸盤,同時也是一個分區表的結束標識位

  4個主分區 或者3個主分區和一個擴展分區+邏輯分區,其中邏輯分 區可以有多個

blob.png

MBR硬盤分區結構圖

blob.png

其中分區表中16字節

第一字節  引導標志80表示活動分區,活動區域表示引導操作系統00表示非活動區域

第二字節  表示磁頭號

第三字節和第四字節  第三字節低6為表示的是扇區號高兩位和第四位表示的是柱面編號分區開始點

第五位  分區類型,0表示未使用分區

第六位  磁頭號

第七字節和第八字節   第七位低6位表示扇區,高2位和第八個字節表示柱面號,

后四個字節表示分區開始LBA,就是把前面的

最后四字節表示分區結束LBA  邏輯尋址方式,是把chs模式轉變成線性一維尋址方式

 

擴展分區

擴展分區0號扇區

擴展分區(446字節)全為零

分區表項同邏輯分區一樣

但是每個邏輯分區前面都有一個零扇區

blob.png

     中間的那個提示表示的是分區一,沒有以一個完整的柱面作為一個整分區

      如果不想看那個信息可以用

      fdisk -lc

blob.png

linux中也支持以扇區為表示的顯示分區信息

fdisk -lcu

blob.png

如何產看磁盤的分區表的二進制呢?

hexdump  -C -n 512 /dev/sda

blob.png

備份分區表,但不是備份硬盤數據,備份的只是分區表

dd  if=/dev/sda  of=/root/mbr bs=1 count=512

blob.png

恢復分區表

dd if=/root/mbr   of=/dev/sdb

blob.png

注意擴展分區里面的邏輯分區備份不回來的,因為擴展分區中邏輯分區是保存在零扇區的,而不是硬盤的零扇區,邏輯分區不在mbr中存儲

blob.png

dd if=/dev/zero  of=/dev/sdb bs=1  count=446

blob.png

如何生效剛加入的硬盤,

1重啟

2.用命令:echo – – –>/sys/class/scsi_host/host2/scan

注意兩個橫線直接是有空格的

blob.png

GRT分區

支持128個分區,使用64位支持8Z512byte/block)和64Z

使用128UUiD表示磁盤和分區GPT

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

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

如果不用GPT做引導,只是存數據,這樣有沒有有硬件支持都無所謂

blob.png

LBA0內是存放偽MBR,及protection MBR

因為很多分區工具只識別MBR分區方式,如果沒有這個分區表會以為這是一個裸磁盤,這時候系統會提示設備為空,其實里面可能是有數據的,這樣可能會造成數據的丟失

保護MBR的作用就是提示,就是提示上面有分區,不要輕易分區

防止老的分區工具破壞gpt分區

前面是分區表,后面是分區,最后面是備份分區表

列出塊設備:lsblk

創建分區使用

fdisk創建MBR分區,也支持GPT,對于一塊硬盤,最多只能管理15個分區

gdisk創建GPT分區

parted 高級分區操作(創建、復制、調整大小等等)他是非交互的因次操作比較危險慎用

partprobe  同步置內存分區表

查看分區的三種方式

第一種:lsblk

blob.png

第二種:ll /dev/sd*

blob.png

第三種:cat /proc/partitions

blob.png

查看正在生效的設備,所謂生效就是加載到內存中

fdisk其實也能管理gpt格式的分區但是不長用,也不推薦用

要管理gpt有一個專門的工具進行管理gdisk

fdisk分區時一定注意是對磁盤進行分區,而不是對分區進行分區

fdisk  /dev/sdb   

而不是 對分區進行進行分區,當然對分區進行在分區也不是是不可以只是不能分,這是會顯示一個p的標識表示里面一個分區

在查看分區表中顯示的塊大小是以1k為大小的

解決添加分區后沒有同步的問題

partx -a /dev/sda

partprobe 只有os6上不會生效

刪除分區同步

partx -d –nr 7-8 /dev/sda   n是分區號

查看正在生效的設備,所謂生效就是加載到內存中

fdisk其實也能管理gpt格式的分區但是不長用,也不推薦用

要管理gpt有一個專門的工具進行管理gdisk

fdisk分區時一定注意是對磁盤進行分區,而不是對分區進行分區

fdisk  /dev/sdb   

而不是 對分區進行進行分區,當然對分區進行在分區也不是是不可以只是不能分,這是會顯示一個p的標識表示里面一個分區

在查看分區表中顯示的塊大小是以1k為大小的

解決添加分區后沒有同步的問題

partx -a /dev/sda

partprobe 只有os6上不會生效

刪除分區同步

partx -d –nr 7-8 /dev/sda   n是分區號

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

v    用法:parted [ 選項]… [備 設備 [令 命令 [ 參數]…]…]

parted /dev/sdb mklabel     gpt|msdos 創建gpt方式或是mbr方式分區

parted /dev/sdb print 打印分區列表

parted /dev/sdb mkpart primary 1 200 創建分區,

parted /dev/sdb rm 1 刪除分區

parted -l

文件系統

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

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

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

簡稱文件系統。

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

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

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

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

加密等

文件系統類型 Linux 文件系統: ext2, ext3, ext4, xfs SGI , btrfsOracle , reiserfs, jfs AIX , swap

swap: 交換分區

光盤:iso9660

Windows fat32, ntfs

Unix: FFS fast , UFS unix , JFS2

網絡文件系統:NFS, CIFSwindows的文件共享)

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

分布式文件系統:ceph, moosefs, mogilefs, glusterfs,紅帽的數據同步

Lustre

RAW :未經處理或者未經格式化產生的文件系統,分完區,沒有進行任何操作,

文件系統分類

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

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

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

文件系統的組成部分

內核中的模塊ext4, xfs, vfat

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

v Linux 的虛擬文件系統:VFS

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

lsmod可以查看系統支持的安裝模塊

blob.png

上圖的數字表示的引用的次數

查看系統所支持的文件系統

blob.png

autofs自動掛載,只有一訪問/misc/cd就會觸發這個命令

創建文件系統

mkfs.ext4  /dev/sdb1 一旦創建就會自動創建一個UUID

UUID來唯一標識一個分區標識

查看文件的大小du 命令

ext4文件系統中最小的單位是1k 2k 4k

用命令tune2fs  -l  /dev/sda |grep size

blob.png

blob.png

在一個分區中,通常會有超塊來記錄組的元信息,包括:里面分了幾個組每個組是從第幾個塊到第幾個組結束,塊大小,在格式話的時候超級開的大自動已經完成了備份,

一個組的大小通常是8192

用命令dumpe2fs   /dev/sdb1

blob.png

查看文件類型

blkid

blob.png

用卷標進行查找blkid -L 卷標名

blkid  -U  uuid=dedjggj

如何生成隨機生成uuidgen

 

如何去掉日志功能和添加日志功能

tune2fs  -O   ^has_journal  /dev/sda5

tune2fs  -O   has_journal   /dev/sda5

blob.png

只有掛載才能查看用df命令查看

mkfs 命令:

(1) # mkfs.FS_TYPE /dev/DEVICE

ext4

xfs

btrfs

vfat

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

-L 'LABEL': 設定卷標

e2label  /dev/sdb1  /mnt/sdb1如果已經格式化了,就用這個進行修改卷標名稱

 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 的大小

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

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

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

-O ^FEATURE

文件系統標簽

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

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

-L 'LABEL' :修改卷標

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

-j: ext2 升級為ext3

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

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

-U UUID: 修改UUID 號;

v dumpe2fs: :

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

mount  -o  acl  /dev/sdb   /mnt/sdb3 mount來加載acl

tune2fs  -o acl


blob.png

然后用fsck命令修復

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

v 掛載為文件系統標記為“dirty” ”

v fsck: File System Check

fsck.FS_TYPE

fsck -t FS_TYPE

-a: 自動修復錯誤

-r: 交互式修復錯誤

v 注意: FS_TYPE 一定要與分區上已經文件類型相同;

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

-y :自動回答為yes

-f :強制修復

掛載mount

掛載: 將額外文件系統與根文件系統某現存的目錄建立起關聯

關系,進而使得此目錄做為其它文件訪問入口的行為

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

v 把設備關聯掛載點:mount Point

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

umount

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

v 掛載點目錄一般為空

 mount 命令掛載文件系統

 掛載方法:mount DEVICE MOUNT_POINT

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

v 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 :指定要掛載的設備上的文件系統類型

v -r: readonly ,只讀掛載

v -w: read and write, 讀寫掛載

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

v -a :自動掛載所有支持自動掛載的設備( 定義在了/etc/fstab

文件中,且掛載選項中有auto 功能)

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

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

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

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

cat /proc/mounts

mount常用命令選項

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

async :異步模式

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

atime/noatime :包含目錄和文件

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

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

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

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

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

remount :重新掛載

ro :只讀

rw: : 讀寫

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

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

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

卸載命令和/etc/fstab

查看掛載情況:

#findmnt MOUNT_POINT

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

#lsof MOUNT_POINT

#fuser -v MOUNT_POINT

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

# fuser -km MOUNT_POINT

v 卸載:

# umount DEVICE

# umount MOUNT_POINT

配置文件系統體系

v 被 被mount 、fsck 和其它程序使用

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

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

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

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

(0)
yywan1314yywan1314
上一篇 2016-08-29
下一篇 2016-08-29

相關推薦

  • 什么是文件系統

    文件系統:層級結構;有索引; /: 原初起點; 倒置樹狀結構; /dev/pts/2: 最左側/: 表示根目錄 其它的/: 表示路徑分隔符 Linux的路徑分隔符是/ Windows的是\ 文件的路徑表示: 絕對路徑:從根開始表示出的路徑  相對路徑:從當前位置開始表示出的路徑 文件名使用法則: 嚴格區分字符大小寫:file1, File1, FI…

    Linux干貨 2016-10-29
  • 第二周博客作業

    一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示 Linux文件管理類命令有cp、mv、rm 1、cp命令:copy files and directories 使用方法: 單源復制cp [OPTION]… [-T] SOURCE DEST1)如果DEST不存在,則事先創建此文件,并復制源文件的數據流至DEST中2)如果…

    Linux干貨 2016-12-13
  • Linux發展歷史與基礎知識

    工具: 億圖 CRT 思維圖工具-Dream VPS-搬瓦工,亞馬遜云,阿里云 網站: 阿里云-help.aliyun.com 企業新聞-36kr.com lnmp.org-如何配置web服務 中關村在線-zol.com:看服務器設備 計算機組成: 硬件,軟件。 CPU類型 ·x86 ·x64 ·ARM ·m68k(moto) ·power ·Ultrasp…

    Linux干貨 2017-03-26
  • 第二十一周作業

    1、回顧并詳細總結MySQL的存儲引擎、索引; 常用存儲引擎的對比: 特點 MyISAM InnoDB MEMORY MERGE NDB 存儲限制 有 64TB 有 沒有 有 事務安全 支持 鎖機制 表鎖 行鎖 表鎖 表鎖 行鎖 B樹索引 支持 支持 支持 支持 支持 哈希索引 支持 全文索引 支持 集群索引 支持 數據緩存 支持 支持 支持 索引緩存 支持…

    2017-07-29
  • N25_第三周

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 who | cut -d' ' -f1 | sort -u [root@server1 ~]# who  | cut -d' ' -f1 …

    Linux干貨 2016-12-17
  • Linux基礎目錄名稱命名法則及功能規定

    Linux中有非常多的目錄文件,那么這些目錄文件的命令規則,和功能都有那些,今天學習了下,下面是我的學習記錄,跟大家分享下。 文件命名規則 (1) 除了/之外,所有字符都合法 (2) 特殊字符如@、#、¥、&、()、-、空格等最好不要使用,當使用空格作為文件名時,執行命令會出錯 (3) 避免使用”.”作為文件名的第一個字符,因為在Linux系統中以”…

    Linux干貨 2016-08-15

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-29 15:36

    文章對磁盤的基礎知識總結的較為全面,內容完整,但是對于純理論的東西,我們要盡量做到清晰化,也就是說明確定義,并通過查找資料來進行描述,而不是簡單的列一些關鍵字,這是不好的,需要作者多加注意。

欧美性久久久久