Linux磁盤管理

                         Linux磁盤管理

磁盤管理:

 本章內容

   磁盤結構

   分區類型

   管理分區

   管理文件系統

   掛在設備

   管理虛擬內存

 硬盤接口類型:

     并行:IDE、 SCSI

     串口:SATA、SASUSB

     rpmrotations per minute

 設備文件:

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

IDE/dev/hdX 其中“X”可以為a、b、cd等字母;

SCSI、SATA、SAS、USB/dev/sdX 其中“X”可以為ab、c、d等字母;

分區:

    表示分區時,以硬盤設備的文件名作為基礎,在后面添加該分區對應的數字序號即可;例如:第一個IDE硬盤中的第一個分區表示為“hda1”第二個表示為“hda2”,第二個SCSI硬盤中的第1個分區表示為“sdb1”第五個表示為“sdb5”。由于硬盤中的主分區數目只有4個,因此主分區和擴展分區的序號就限制在了“1~4”之間,而邏輯分區的序號將始終從5開始。

 硬盤存儲術語:

     head:磁頭;

     track:磁道;

     cylinder:柱面;

     secotr:扇區,512bytes

 使用分區空間:

設備識別

設備分區

重建文件系統

標記文件系統

/etc/fstab文件中創建條目

掛在新的文件系統

 磁盤分區:

為什么要分區?

優化I/O性能

實現磁盤空間配額限制

提高修復速度

隔離系統和程序

安裝多個OS

分區:

兩種分區方式:MBR  GPT

MBR :使用32位表示扇區數,分區不超過2T

MBR扇區,512個字節,其中446個字節為“boot loader64個字節為“分區表”2個字節為“55AA”其中分區表中表示為16個字節為一個分區;

4個主分區:3個主分區+1個擴展分區(N個邏輯分區)

GPT:使用64位表示扇區數,支持128個分區,分區支持8Z512byte/block64Z4096byte/block

 使用128UUID表示磁盤和分區GPT分區表自動備份在頭和尾兩份,并有CRC校驗位;GPT分區必須使用UEFI硬件支持才可以;

 管理分區:

blkid命令:

    列出所有塊設備;使用此命令也可以查看設備的UUID號;

 例:

  [root@centos7 Desktop]# blkid /dev/sda1

  /dev/sda1: UUID="fe32016e-a798-4b03-91a1-55adfd9a4355" TYPE="xfs"

  [root@centos7 Desktop]#  

創建分區使用:

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

  gdisk創建GPT分區,最多可以創建128個主分區;

  parted高級分區工具(創建、復制、調整大小等)

  partprobe命令:重新設置內存中的內核分區表,可以結合lsblk命令;

分區工具:

fdisk  /dev/sdb

gdisk  /dev/sdb

Command action

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   delete a partition

   g   create a new empty GPT partition table

   G   create an IRIX (SGI) partition table

   l   list known partition types

   m   print this menu

   n   add a new partition

   o   create a new empty DOS partition table

   p   print the partition table

   q   quit without saving changes

   s   create a new empty Sun disklabel

   t   change a partition's system id

   u   change display/entry units

   v   verify the partition table

   w   write table to disk and exit

   x   extra functionality (experts only)  

查看當前系統分區表:

 查看內核是否已經識別新的分區:

 查看虛擬文件系統 /proc/partitions

 lsblk命令

 示例:

 [root@centos7 Desktop]# cat /proc/partitions

 [root@centos7 Desktop]# lsblk


同步分區表:

通知內核重新讀取硬盤分區表

contos6版本

新增分區:

partx  -a  -n M:N /dev/device

kpartx  -a  /dev/devcie  -f:force

刪除分區:

partx  -a  -n M:N  /dev/device

centos5、7版本

partprobe

文件系統的類型:

Linux文件系統:ext2、ext3、ext4、xfsbtrfs、jfsswap

swap:交換分區

光盤:iso9660

Windowsfat32、ntfs

網絡文件系統:nfs,cifs

集群文件系統:gfs2ocfs2

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

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

 文件系統分類:

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

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

非日志型文件系統:ext2vfat

文件系統的組成部分:

內核中的模塊ext4、xfs、vfat

用戶空間的管理工具:mkfs

Linux的虛擬文件系統:vfs

查看當前系統支持的文件系統:

cat /proc/filesystems

 創建文件系統:

mkfs命令:

mkfs  -t 文件系統類型  分區設備

示例:

mkfs  -t ext4  /dev/sdb1 = mkfs.ext4  /dev/sdb1

創建ext文件系統

mke2fsext系列文件系統專用管理工具

   -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的大?。?/span>

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

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

   -O:啟用指定特性

   -O:關閉指定特性

 文件系統標簽

blkid命令:塊設備屬性信息查看

blkid  [options]  [device]

        -U:根據指定的uuid來查看對應的設備名

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

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

        e2label  DEVICE [LABEL]

        示例:

        [root@centos7 Desktop]# e2label /dev/sdb1 /dev/sdb1

        [root@centos7 Desktop]# tune2fs -l /dev/sdb1

        tune2fs 1.42.9 (28-Dec-2013)

        Filesystem volume name:   /dev/sdb1

 findfs命令:查找分區

       findfs  [options] LABEL=<label>

       findfs  [options] UUID=<uuid>

       示例:

       [root@centos7 Desktop]# findfs LABEL=/dev/sdb1

       /dev/sdb1

       [root@centos7 Desktop]# findfs UUID=2bb4030e-68e8-4640-a3ac-62b98c029967

       /dev/sda3

       [root@centos7 Desktop]#

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

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

            -L:‘LABEL:修改卷標;

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

            -j:將ext2升級為ext3

            -O:文件屬性啟用或禁用,-O ^has_joural(取消)

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

            -UUUID:修改UUID號;

       dumpe2fs命令:

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

 文件系統檢測和修復:

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

       掛載為文件系統標記為dirty”;

       fsckfile system check 檢測修復文件系統

       fsck.FS_TYPE

       fsck  -t  FS_TYPE

       -a:自動修復錯誤;

       -r:交互式修復錯誤;

       -f:強行檢測修復分區;

       示例:

      [root@centos7 testdir]#fsck.ext4 -f /dev/sdb1

      e2fsck 1.42.9 (28-Dec-2013)

      Pass 1: Checking inodes, blocks, and sizes

      Pass 2: Checking directory structure

      Pass 3: Checking directory connectivity

      Pass 4: Checking reference counts

      Pass 5: Checking group summary information

      /dev/sdb1: 11/655360 files (0.0% non-contiguous), 83134/2621440 blocks

      [root@centos7 testdir]#

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

        -y:自動回答yes

        -f:強制修復

 mount掛載:

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

      卸載:為分區解除與目錄的掛載關系;

      把設備關聯掛載點:

      mount  /DEVICE   /DIR

      卸載時,可以使用設備名或掛載點

      umount  /DEVICE

      umount  /DIR

注意:掛載點下原文件在掛載完成后被臨時隱藏

      掛載點的目錄一般為空

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

 mount常用命令選項:

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

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

              -r:只讀掛載;

              -w:讀寫掛載;

              -n:不更新/etc/mtab

              -a:自動掛載所有支持自動掛載的設備;

              -LLABEL以卷標名掛載設備;

              -U:以uuid指定要掛載的設備;

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

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

               async:異步模式;

                sync:同步模式;

               atime/noatime:包含目錄和文件;

               diratime/nodiratiome:目錄的訪問時間戳;

               auot/noauto:是否支持自定掛載 ,是否支持-a選項;

               exec/noexec:是否支持在此文件系統上使用設備文件;

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

               suid/nosuid:是否支持suidsgid權限;

               remount:重新掛載;

               ro:只讀;

               rw:讀寫;

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

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

 mount的卸載命令:

            查看掛載情況:

             findmnt命令

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

             lsof命令

             fuser命令

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

             fuser  -km MOUNT_POINT

            卸載:

             umount

 文件掛載配置文件:

        /etc/fstab 配置文件中每行定義一個要掛載的文件系統;

          要掛載的設備或偽文件系統

          掛載點

          文件系統類型

          掛載選項

          轉儲頻率

          自檢次序

      掛載選項:defaults

      轉儲頻率:0:不做備份

                1:每天轉儲

                2:每個一天轉儲

      自檢次序:0:不自檢

                1:首先自檢,一般只有rootfs才用1

 swap處理交換文件和分區

       交換分區時系統RAM的補充

       基本設置包括:

           創建交換分區或者文件

           使用mkswap命令在指定的分區上創建交換文件系統;

           /etc/fstab文件中添加適當的條目

           使用swapon -a激活交換空間

       掛載交換分區:

           啟用:swapon

                swapon [option] ……..[DEVICE]

                         -a:激活所有的交換分區

                         -p:指定優先級

                         /etc/fstab:pri=value

           禁用:swapoff  [DEVICE]

swap的優先級:

      用戶可以給某個swap指定一個032767的優先級

      如果用戶沒有指定,那么核心會自動給swap指定一個優先級,這個優先級從-1開始,每加入一個新的沒有用戶指定的優先級的swap,會給這個優先級減一。

     先添加的swap的缺省優先級比較高,除非用戶自己指定一個優先級,而用戶指定的優先級是正整數永遠高于核心缺省指定的優先級。

       示例:

       [root@centos7 testdir]#mkswap /dev/sdb6

       Setting up swapspace version 1, size = 2097148 KiB

       no label, UUID=18794626-9bfd-4af8-8f46-bad8fc3067db

       [root@centos7 testdir]#swapon /dev/sdb6

       [root@centos7 testdir]#cat /proc/swaps

       Filename    Type  Size Used Priority

       /dev/sda3                               partition 1023996 0 -1

       /dev/sdb2                               partition 2097148 0 100

       /dev/sdb6                               partition 2097148 0 -2

       [root@centos7 testdir]#swapoff /dev/sdb6

       [root@centos7 testdir]#swapon -p 200 /dev/sdb6

       [root@centos7 testdir]#cat /proc/swaps

       Filename    Type  Size Used Priority

       /dev/sda3                               partition 1023996 0 -1

       /dev/sdb2                               partition 2097148 0 100

       /dev/sdb6                               partition 2097148 0 200

       [root@centos7 testdir]#vim /etc/fstab

        /dev/sdb6       swap          swap    defaults,pri=200   0 0  

 使用光盤:

       eject命令卸載或彈出光盤;

       創建ISO文件

         cp  /dev/cdrom  /root/centos.iso

         mkisofs   -r  -o  /root/etc.iso   /etc/

        刻錄光盤:

          wodim  -v  -eject  centos.iso

 常見工具:

內存空間使用狀態:

     free [option]

           -m:以MB為單位

           -g:以GB為單位

 文件系統空間占用等信息的查看工具:

      df  [option] ….[FILE]

           -H:以M為單位顯示磁盤空間大?。?/span>

           -T:文件系統的類型;

           -hhuman-readable 人類易讀格式顯示;

  查看某目錄總體空間占用狀態:

        du [option]  [DIR]

             -hhuman-readable 人類易讀格式顯示;

             -a:統計磁盤占用時包括文件,而不僅僅時只統計目錄;

             -s:只統計目錄的總大?。?/span>

         示例:

         [root@centos7 testdir]#du -sh /etc

         31M /etc

         [root@centos7 testdir]#

 dd命令:

      dd命令:comvert  and copy afile

      用法:dd  if=/PATH/FROM/SRC of=/PATH/TO/DEST  bs=# count=#

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

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

      bs=size:指定塊大??;

      count=n:只拷貝n個記錄;

      skip=blocks :從開頭忽略blockibs大小的塊;

      seek=blocks :從開頭忽略blockibs大小的塊;

磁盤拷貝:

     dd if=/dev/sda of=/dev/sdb

備份MBR

     dd if=/dev/sda  of=/tmp/mbr.bak  bs=512 count=1

測試硬盤的讀寫速度:

dd if=/dev/zero  of=/root/file1 bs=1024 count=1000000

通過上述命令輸出的執行時間,可以計算出測試硬盤的讀寫速度;

修復硬盤:

dd if=/dev/sda  of=/dev/sda

當硬盤較長時間(比如12年)放置未使用,磁盤上會產生消磁,當磁頭讀到這些區域時會遇到困難,并可能導致I/O錯誤,當這種情況影響到硬盤的第一個扇區時,可能導致硬盤報廢,上面的命令有可能使這些數據起死回生,且這個過程是安全、高效的。

 

 

 

 

 

 

 

 

    

 

 

 

     

 

 

 

 

 

 

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

(0)
zhengyibozhengyibo
上一篇 2016-09-01
下一篇 2016-09-02

相關推薦

  • 概述Windows2003的卷影副本

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/157940      卷影副本,也就是Volume Shadow Server簡單來講,卷影副本(或稱為VSS)可以簡單…

    Linux干貨 2015-03-25
  • 關于文件查找和解壓縮

                     文件查找和解壓縮在文件系統上查找符合條件的文件,文件查找的工具有兩個,locate 和find文件查找分為:          &nbs…

    系統運維 2016-08-18
  • 加密和解密技術基礎(01) ~ 105分鐘

    加密和解密技術基礎(01) ~ 105分鐘 講課思路: 互聯網通信機制 –> 網絡協議模式(osi,tcp/ip模型) –> 數據通信安全  à 數據加密 –> 加密算法 –> OpenSSL是什么 à SSL通信原理 –> CA –> OpenSSL命令用法 à CA 自簽及簽證演示 1.1 &nbs…

    Linux干貨 2016-09-19
  • ip命令詳解

      Linux中的ip命令功能強大,可以完成接口配置、路由管理等任務。   格式:ip [ OPTIONS ] OBJECT { COMMAND | help }   下面使用ip命令來完成一些常用的操作:     1、查看接口狀態       ip link show [設備名…

    Linux干貨 2016-01-14
  • UML圖中類之間的關系:依賴,泛化,關聯,聚合,組合,實現

    類與類圖 1) 類(Class)封裝了數據和行為,是面向對象的重要組成部分,它是具有相同屬性、操作、關系的對象集合的總稱。 2) 在系統中,每個類具有一定的職責,職責指的是類所擔任的任務,即類要完成什么樣的功能,要承擔什么樣的義務。一個類可以有多種職責,設計得好的類一般只有一種職責,在定義類的時候,將類的職責分解成為類的屬性和操作(即方法)。 3) 類的屬性…

    Linux干貨 2015-04-07
  • SHELL網絡爬蟲實例剖析

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1552472        前天簡單分享了用 shell 寫網絡爬蟲的一些見解,今天特地把代碼發出來與51博…

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