磁盤及文件系統管理

磁盤管理

    MBRmaster boot record 主引導記錄。位于磁盤的0磁道0扇區共512字節,獨立于操作系統之外的。512字節的劃分

                     前446字節:bootloader引導加載器,是一段程序代碼,可以完成引導分區上的操作系統來啟動起來

                     接下來64字節的每16字節,可以標識一個分區,一共可以標識4個分區,所以硬盤上只能劃分4個主分區

                     最后2個字節:magic  number 標記MBR是否有效

     

     主+擴展<=4

CHS:柱面,磁頭,扇區    最大8G

LBA:新的方式,按線性順序尋址

 

     硬鏈接  ln  src  dest

         1,只能對文件創建,不能對目錄創建

         2,不能跨文件系統

         3,創建硬鏈接會增加文件被鏈接的次數

     軟連接  ln -s

         1,可應用于目錄

         2,可以跨文件系統

         3,不會增加被鏈接文件的鏈接次數

         4,其大小為指定的路徑所包含的字符個數

 

du   顯示出目錄及目錄中的子文件,并顯示占據空間的大小  

       -s  顯示目錄包括目錄中的文件的整體大小

df :報告文件系統磁盤使用情況

  -h 顯示空間大小而不是磁盤塊個數

  -i  顯示有多少個inode可用

  -P(大) 不換行顯示   -Pi  -Ph 

設備文件

    b:按塊為單位,隨機訪問的設備

    c:按字符為單位,線性設備

    

 /dev

   主設備號MAJOR

        標識設備類型

   次設備號MINOR

        表示同一種類型中不同設備

 

mknod:創建塊或字符的特殊設備文件

 mknod [OPTION]… NAME TYPE [MAJOR MINOR]   mknod -m 640 mydev c 66 0

     -m MODE    指定mode權限

 

硬盤設備的設備文件名

Ide ,ata  :hd

Sata     :sd

Scsi     :sd

Usb     :sd

     a,b,c…來區分同一種類型下的不同設備

 

Ide:

   第一個ide口,主,從

       /dev/hda,  /dev/hdb

    第二個ide接口,主,從

          /dev/hdc,   /dev/hdd

   

   Sda,sdb,sdc ….

   

   Hda

      Hda1:第一個主分區

      Hda2

      Hda3

      Hda4

      Hda5:第一個邏輯分區

 

     Fdisk -l  查看當前系統識別到了幾塊硬盤

     Fdisk -l /dev/sda2  查看指定設備信息

 

   管理磁盤分區

   Fdisk  /dev/sda

     m :查看幫助

      p:顯示當前硬件的分區,包括沒保存的改動

      n:創建新分區

          e:擴展分區

          p:主分區

      d:刪除一個分區

      w:保存退出

      q:不保存退出

      t:修改分區類型

         L

      l:顯示所支持的所有類型

fdisk最多只能創建15個分區

 

掃描磁盤

echo "-  –  -" > /sys/class/scsi_host/host2/scan

blob.png

blob.png

blob.pngblob.png

Centos 6

增加分區同步

Partx -a /dev/sda

刪除分區同步

Partx -d –nr 7-8 /dev/sda

 

Centos7

Partprobe

 

 

設定完成后w退出,雖然此刻ll /dev/sda*或者cat /proc/partitions 或者lsblk 可查看到,但是此刻只是寫到硬盤上,內存并沒有識別(cat/proc/partitions顯示的還是原有的,剛剛新設定的并沒有顯示出來),此時用partprobe6沒效果,5,7可以用) [/dev/sda]或者portx6中用這個) -a(對增加的有效)  -d –nr 7-8 /dev/sda刪分區重讀磁盤分區表,再看就有了。

同步的話,新硬盤不用使用上述命令同步,自動就同步了,如果是原有的分過區的硬盤就需要使用命令同步。

 

Gdisk   管理GPT分區,是交互式的,

 

parted 命令 管理GPT分區,不是交互式的,敲命令后就直接生效

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

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

parted /dev/sdb mklabel gpt|msdos 創建GPTMBR分區

parted /dev/sdb print  顯示狀態

parted /dev/sdb mkpart  primary 1 200  創建主分區并從第一個起分200

parted /dev/sdb rm 1  刪完后GPT分區表還在

parted -l

 

  Linux支持的文件系統

       格式化就是低級格式化,是硬盤廠商就做好了的

       高級格式化就是把指定分區格式化為某種文件系統  mkfs  -t  ext3

   VFSvirtual file system 虛擬文件系統,彌合了各種文件系統的不同,使得linux支持各種類型的文件系統,也是內核中的模塊

 

一個文件的存儲:寫日志的順序先于寫內存

   

   光盤存儲格式:iso9660

 

   虛擬機磁盤  /dev/vda


內核模式(空間)ring0

用戶模式(空間)ring3

歷史原因ring1,ring2沒有被使用

blob.png

塊:存儲文件的最小單位

 

塊大小:1024字節,2048字節或4096字節,也就是1k,2k,4k

查看塊大小  tune2fs -l /dev/sda1 |grep size

 

設備文件只用inode,不占用磁盤塊大小,所以設備文件沒有大小,管道文件和套接字文件也沒有大小,占據磁盤塊的通常只有普通文件和目錄(存儲的文件名稱和inode的對應關系)

 

位圖分為inode位圖和塊位圖

 

1,35,79組保存了超級快的備份

 

超級塊:super block 保存分區中的全局信息,至關重要。Dupme2fs /dev/sda1 查看超級快和塊組的信息

            1,有多少塊組

            2,每個塊組中包含多少個塊

            3,塊大小

            4,空閑磁盤塊,已用磁盤塊,空閑inode,已用inode

塊組描述符表



文件系統管理

如果重新創建文件系統會損壞原有文件,不要對已有的分區重新創建文件系統

 

Windows里的fat32linux里叫vfat

 

Cat /proc/filesystem查看當前內核所支持的文件系統類型

 

Lsmod :查看支持的文件系統

Df  -T :顯示的同時顯示文件系統

     

創建文件系統:mkfs

   -t fstype 指定的分區     換成特定的文件系統類型   mkfs  -t ext3  /dev/sda5

   Mkfs  -t ext2相當于mkfs.ext2

   Mkfs  -t ext3相當于mkfs.ext3

   Mkfs  -t ext4相當于mkfs.ext4

   Mkfs  -t vfat相當于mkfs.vfat

創建完成后 blkid UUID顯示是否成功

 

自己格式化而不是系統格式化的分區在6不支持ACLuser_xattr,只能自己手工tune2fs -o acl /dev/sdc2,如果是已經掛載過的磁盤,需要重新掛一下就好了,加ACLuser_xattr模塊。7支持ACL

 

專門管理 ext系列文件

Mke2fs

-j :創建ext3類型文件系統  相當于 mkfs -t ext3

-b  BLOCK_SIZE:指定塊大小,默認為4096,可用取值為1024,20484096

-L LABEL :指定分區卷標, mke2fs -L MYDATA  /dev/sda5

    -i #:  為數據空間中每多少個字節創建一個inode ;默認為8192,這里給出的數值應該為塊大小的2^倍,此大小不應該小于block 的大小

    -N # :手動指定要創建多少個inode

-m #:  手動指定預留給超級用戶的塊數百分比,默認5%, mke2fs -m 4 /dev/sda5

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

-O ^FEATURE :關閉指定特性,例如關閉日志功能  tune2fs -O  ^has_journal /dev/sda5

-F:強制創建文件系統

-E:用戶指定額外文件系統屬性

 

blkid :查看或定位塊設備屬性信息blkid [OPTION]… [DEVICE] blkid /

-U UUID:  根據指定的UUID(統一的全局標識符) 來查找對應的設備

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

 

e2label :查看或定義ext 系列文件系統的LABEL(卷標)

   e2label /dev/sda5  顯示卷標

   e2label /dev/sda5 HELLODATA 自定義卷標

 

findfs  :查找分區

findfs [options] LABEL=<label>

findfs [options] UUID=<uuid>

 

tune2fs :重新設定ext 系列文件系統可調整參數的值,并保存在磁盤的超級塊里,重啟不會丟失

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

   -L  LABEL :設定或修改卷標

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

   -j:  不損壞原有數據情況下,將ext2 升級為ext3

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

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

   -r :指定預留塊數

   -U UUID:  修改UUID 號;

   -o #:指定掛載次數達到#次之后進行自檢,0-1表示關閉此功能

   -i :每掛載使用多少天后進行自檢,0-1表示關閉此功能

 

Uuidgen:隨機生成UUID

 

 dumpe2fs:顯示超級快和塊組信息

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

 

fsck: File System Check文件系統檢測和修復

    fsck.FS_TYPE

    -t  FSTYPE  指定文件系統類型

    -a:  自動修復錯誤

    -r:  交互式修復錯誤

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

 

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

    -y :自動回答為yes

-f :強制修復

-p:  自動修復錯誤

 

 

掛載:將新的文件系統關聯至當前根文件系統  /media掛載移動設備  /mnt臨時掛載設備

卸載:將某文件系統與當前根文件系統的關聯關系移除

 

Mount:顯示當先系統上已掛載的設備

掛載

 Mount 設備 掛載點

     設備:

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

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

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

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

 

      掛載點:其實就是目錄

          此目錄沒有被其他進程使用

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

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

          目錄中的原有的文件將會暫時隱藏

          多個設備不能掛在同一個掛載點

  

  掛載完成后,要通過掛載點訪問對應文件系統上的文件

  剛剛掛載完的文件系統可以顯示lostfound,否則不顯示

 

 卸載:umount

   Umount 設備  或者 umount 掛載點 ,任意一個就可以

 

 卸載注意事項

   掛載的設備沒有進程使用

 

Mount [options] [-o  options]  設備  掛載點

mount 常用命令選項

v -t ftype :指定要掛載的設備上的文件系統類型,不使用此選項時,mount會調用blkid命令獲取對應文件系統的類型

v -r: readonly ,只讀掛載,掛載光盤時常用此選項

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

v -n:  默認情況下,mount命令每掛載一個設備,都會把掛載的設備信息保存至/etc/mtab文件,使用-n選項意味著掛載設備時,不把信息寫入此文件

v -a :有auto 功能,自動掛載/etc/fstab文件中定義中的所有文件系統

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

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

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

 

   ·通過查看/etc/mtab 文件和mount命令可以顯示當前已掛載的所有設備但是不是實時的,用查看內核追蹤到的實時的已掛載的所有設備:cat /proc/mounts

 

如果有人在用掛載點,就無法卸載掛載點,用Fuser -v /mnt/sdb3查看掛載點誰在用,緊急情況下用fuser -km /mnt/sdb3殺死進程。

 

 -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目錄

 Cp -r  /etc/*  /backup

調整其預留百分比為3%

Tune2fs  -m 3  -L  DATA  /dev/sda7

以重新掛載的方式掛載此文件系統為不更新訪問時間戳,并驗證其效果

Stat  /backup/inittab

Cat  /backinittab

Stat

 

Mount  -o  remount,noatime  /backup

Cat

Stat

 

對此文件系統強行做一次檢測

E2fsck  -f   /dev/sda7

刪除復制而來的所有文件,并將此文件系統重新掛載為同步,而后再次復制/etc目錄中的所有文件至此掛載點,體驗其性能變化

Rm-rf  /backup/*

Mount  -o  remount,sync  /backup

Cp  -r  /etc/*  /backup

        

swap分區

虛擬內存

 

X86:虛擬地址,線性地址

 

Free:查看當前系統物理內存和交換空間使用情況,默認以字節顯示

   -m  M顯示

 

Fdisk命令中,調整分區類型為82

 

創建交換分區

 Mkswap  /dev/sda8

     -L  LABEL

 

掛載交換分區

Swapon  /dev/sda8

    -a :啟用所有的定義在/etc/fstab文件中的交換設備

Swapoff  /dev/sda8

 

回環設備

 Loopback,使用軟件來模擬實現硬件

 

dd:轉換并復制文件。復制的是底層數據流

   dd  if=/etc/inittab  of=/root/inittab   if 數據來源  of  數據存儲目標

   bs=# block size,  復制單元大小

   count=# :復制多少個bs

     備份MBR  dd if=/dev/sda  of=/mnt/usb/mbr.backup  bs=512  count=1

     還原MBR  dd if=/mnt/usb/mbr.backup  of= /dev/sda  bs=512  count=1

of=file 寫到所命名的文件而不是到標準輸出

if=file 從所命名文件讀取而不是從標準輸入

bs=size 指定塊大小(既是是ibs 也是obs)

ibs=size 一次讀size byte

obs=size 一次寫size byte

cbs=size 一次轉化size byte

skip=# 從開頭忽略blocks ibs 大小的塊

seek=# 從開頭創建數據文件時,跳過的空間大小

count=n 只拷貝n 個記錄

 

Mount命令,可以掛載iso鏡像

   Mount  device  mount_point

      -o  loop:掛載本地回環設備

 

文件系統的配置文件/etc/fstab

   操作系統初始時,會自動掛載此文件中定義的每個文件系統

   /etc/fstab

      第一段:要掛載的設備

      第二段:掛載點

      第三段:文件系統類型

      第四段:掛載選項

      第五段:轉儲頻率(定義多久對文件系統做一次完全備份 1每天 2每隔一天)

      第六段:文件系統檢測次序(只有根可以為1  0表示不檢查)

 

Fuser   驗證進程正在使用的文件或套接字文件

– v /mnt/test 查看誰正用什么命令訪問

-k -m /mnt/test 終止正在訪問此掛載點的所有進程,把這個掛在點上的正在訪問的進程統統干掉

 

練習

1,創建一個5G分區,文件系統為ext3,卷標為MYDATA,塊大小為1024,預留空間為磁盤分區的3%,要求開機后可以自動掛載至/data/目錄,并且自動掛載的設備要使用卷標進行引用

2,創建一個本地回環文件/var/swaptemp/swapfile來用于swap。要求大小為512MB,卷標為SWAP-FILE,且開機自動啟用此交換設備  

     Mkdir  /var/swaptemp

     Dd  if=/dev/zero  of=/var/swaptemp/swapfile  bs=1M  count=512

     Mkswap  LABLE=SWAP-FILE  /var/swaptemp/swapfile

     

/etc/fstab

/var/swaptemp/swapfile  swap  swap  dafaults  0 0

3,上述第一問,如何讓其自動掛載的同時啟用ACL功能

/etc/fstab

LABEL=MYDATA   /data   ext3  default,acl  0 0


備份mbr

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

查看mbr內容

hexdump  -C mbr

顯示分區信息

fdisk -l

恢復分區信息

dd if=mbr of=/dev/sdb

fdisk -l /dev/sda

清零boot loader

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

fdisk -l /dev/sdb

hexdump -C -n 512 /dev/sdb

hexdump -C -v  -n 512 /dev/sdb

清零分區表

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

centos6

增加分區同步

partx  -a /dev/sda

刪除分區同步

partx -d –nr 7-8 /dev/sda

centos7

partprobe

物理磁盤分區,真實

fdisk -l /dev/sdb

生效,內存

cat /proc/partitions

lsblk

ll /dev/sdb*

查看ext文件系統超級塊

tune2fs  -l /dev/sdb6

創建文件系統

mke2fs /dev/sdb3

取消日志功能

tune2fs  -O ^has_journal /dev/sdb5 

增加日志功能

tune2fs  -O has_journal /dev/sdb3

指定塊大小

mkfs.ext4 -b 1024 /dev/sdb1

查看所有文件系統信息

blkid


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

(0)
wutianyouwutianyou
上一篇 2016-08-25
下一篇 2016-08-25

相關推薦

  • 軟件包管理2

    四、程序包編譯     程序包編譯安裝:     Application-VERSION-release.src.rpm –> 安裝后,使用rpmbuild命令制作成二進制格式的rpm包,而后再安裝     源代碼&#82…

    Linux干貨 2016-08-27
  • Linux之磁盤管理

    Linux之磁盤管理       linux系統中, 一切都是文件, 而這些文件都是存儲在磁盤中, 因此對于磁盤的管理是非常重要的, Linux磁盤管理的好壞, 直接關系到整個系統的性能問題, 本文主要介紹了磁盤結構, 分區類型, 管理分區, 管理文件系統, 掛載設備, 管理虛擬內存這幾大項的內容.    &…

    Linux干貨 2016-08-29
  • 程序包管理

    程序包 linux的程序包主要分為兩類;二進制可執行安裝包和源代碼程序文件包     二進制應用程序的組成部分:     二進制文件、庫文件、配置文件、幫助文件   查看二進制程序所依賴的庫文件:     ldd&nbs…

    Linux干貨 2016-05-30
  • wk_02 作業

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

    Linux干貨 2016-12-11
  • GDB中應該知道的幾個調試方法

    七、八年前寫過一篇《用GDB調試程序》,于是,從那以后,很多朋友在MSN上以及給我發郵件詢問我關于GDB的問題,一直到今天,還有人在問GDB的相關問題。這么多年來,有一些問題是大家反復在問的,一方面,我覺得我以前的文章可能沒有說清楚,另一方面,我覺得大家常問的問題正是最有用的,所以,在這里羅列出來。希望大家補充。 一、多線程調試 多線程調試可能是問得最多的。…

    Linux干貨 2016-07-11

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-26 11:24

    文章對磁盤管理基礎知識和管理工具的用法總結的較為全面。同時,如果能加上一些示例,從增加一塊磁盤,分區,格式化,掛載使用能熟練運用這些工具會更好哦

欧美性久久久久