Linux磁盤管理 and 文件系統管理

 磁盤管理

    主要有以下幾部分

       磁盤結構

       分區類型

       管理分區

       管理文件系統

       掛在設備

       管理虛擬內存

設備文件

       I/O Ports: I/O 設備地址

       一切皆文件

         open(), read(), write(), close()等一些系統庫函數

      設備類型

        塊設備:block ,存取單位“塊”,磁盤

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

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

      設備號碼

        主設備號:major number, 標識設備類型

        次設備號:minor number, 標識同一類型下的不同設備

硬盤的借口類型

        并行:

            IDE :133MB/s

            SCSI :640MB/s

        串口:

            SATA :6Gbps   /8=768左右的MB/s

            SAS :6Gbps

            USB :480MB/s

            傳輸速度都是理論值,這里說的是最高值

        rpm: rotations per minute每分鐘的轉速

設備文件

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

                      IDE: /dev/hd

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

       虛擬機里的虛擬磁盤:/dev/vda

     不同設備:a-z

             /dev/sda, /dev/sdb, …

    同一設備上的不同分區:1,2, …

        /dev/sda1, /dev/sda5    傳統分區方式GBR

一張圖來看下硬盤的結構

   傳統機械硬盤:

Linux磁盤管理 and 文件系統管理

硬盤的一些存儲術語

    先來一張硬盤的磁道圖:

blob.png

        head :磁頭   最多256個   n個盤面,n個磁頭

        track :磁道 從外向內:0磁道,1磁道……

        cylinder: 柱面

        secotr: 扇區,512bytes

fdisk命令查看:  -u可以用扇區顯示  圖為柱面單位

blob.png

使用分區空間

    設備識別

    設備分區

    創建文件系統

    標記文件系統

    在/etc/fstab 文件中創建條目

    掛載新的文件系統

磁盤的分區

    為什么劃分分區?

        ? 優化I/O 性能

        ? 實現磁盤空間配額限制

        ? 提高修復速度

        ? 隔離系統和程序

        ? 安裝多個OS

兩種分區方式:MBR(默認的分區方式),GPT

    MBR: Master Boot Record ,1982年,使用32位表示扇區數,分區不超過2T          ——主引導記錄

    如何分區:按柱面

    0磁道0 扇區:512bytes

    446bytes: boot loader  —引導加載器  在安裝操作系統時創建

    64bytes :分區表

    1    6bytes: 標識一個分區

    2bytes: 55AA

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

一張圖認識一下MBR硬盤分區結構:

blob.png

      添加新的硬盤  然后輸入下面的命令

[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host2/scan

觸發磁盤的生成

blob.png

Windows的分區方式:MBR

blob.png

GRT分區方式

    GPT:GUID patition table支持128個分區,使用64位,支持8Z(512Byte/block)64Z(4096Byte/block)

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

    UEFI(統一擴展固件接口)硬件支持GPT

下面來看一下GPT分區方式的結構圖:

blob.png

圖形化的分區工具

    圖形化磁盤管理功能工具:點擊“應用程序”-> “系統工具”-> “磁盤”或執行命令gnome-disks

管理分區

    列出塊設備

       lsblk

blob.png

    創建分區使用:

        ? fdisk創建MBR分區,也支持GPT,對于一塊硬盤,最多只能管理15分區 -l顯示分區表

            注意:fdisk /dev/sda對硬盤進行分區,sda后面不加任何字符  

blob.png

            p顯示分區情況;n劃分分區;q不存盤退出;w存盤退出;d刪除分區

            加完分區之后,執行partx -a /dev/sda命令生效 

  ? gdisk創建GPT分區

        ? GNU parted 高級分區操作(創建、復制、調整大小等等)

    partprobe -重新設置內存中的內核分區表版本

分區工具fdisk和gdisk

    fdisk /dev/sdb

    gfisk /dev/sdb

        # fdisk -l [-u] [device…]

    子命令:

        p 分區列表

        t 更改分區類型

        n 創建新分區

        d 刪除分區

        w 保存并退出

        q 不保存并退出

同步分區表

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

                # cat /proc/partations

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

        新增分區用

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

            kpartx -a /dev/DEVICE -f: force

        刪除分區用

            partx -d -n M:N /dev/DEVICE

                centos6: –nr N-M

    CentOS 5 ,7: 使用partprobe

    partprobe [/dev/DEVICE]

parted 命令

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

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

          parted /dev/sdb mklabel gpt|msdos

          parted /dev/sdb print

          parted /dev/sdb mkpart primary 1 200 (默認M)

          parted /dev/sdb rm 1

          parted -l

文件系統 

文件系統的簡介

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

    ·從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲并對存入的文件進行保護和檢索的系統。具體地說,它負責為用戶建立文件,存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日志,壓縮,加密等

文件系統類型

    Linux 文件系統: ext2, ext3, ext4, xfs (SGI), btrfs(Oracle),reiserfs,jfs(AIX), swap    blkid可查看

        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

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

blob.png

創建文件系統

    mkfs 命令:  格式化

        (1) # mkfs.FS_TYPE /dev/DEVICE

                ext4

                xfs

                btrfs

                vfat

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

                -L 'LABEL': 設定卷標

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

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

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

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

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

            -O ^FEATURE:關閉指定的特性

文件系統標簽

    指向設備的另一種方法

    與設備無關

    blkid :塊設備屬性信息查看

blob.png

    blkid [OPTION]… [DEVICE]

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

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

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

            # e2label DEVICE [LABEL]

    findfs :查找分區

        findfs [options] LABEL=<label>

        findfs [options] UUID=<uuid>

tune2fs

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

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

blob.png

blob.png

        -L 'LABEL' :修改卷標

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

        -j: 將ext2升級為ext3

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

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

        -U UUID: 修改UUID號

    dumpe2fs:

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

文件系統檢測和修復

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

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

    fsck: File System Check

        fsck.FS_TYPE

        fsck -t FS_TYPE

             -a: 自動修復錯誤

             -r: 交互式修復錯誤

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

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

        -y:自動回答為yes

        -f:強制修復

掛載mount

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

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

    把設備關聯掛載點:mount Point

                      mount

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

            umount

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

    掛載點目錄一般為空

用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:掛載點

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

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

blob.png

     此命令可以查看此掛載點有哪些使用者

blob.png

      強行終止其他終端的此進程

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 :是否支持在此文件系統上使用設備文件

         suid/nosuid :是否支持suid和sgid權限  系統默認不啟用

         remount :重新掛載

         ro :只讀

         rw:讀寫

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

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

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

卸載命令

    查看掛載情況:

        #findmnt MOUNT_POINT

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

        #lsof MOUNT_POINT

        #fuser -v MOUNT_POINT

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

        # fuser -km MOUNT_POINT

    卸載:

        # umount DEVICE

        # umount MOUNT_POINT

掛載點和/etc/fstab

        配置文件系統體系

        被mount 、fsck 和其它程序使用

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

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

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

    文件掛載的配置文件

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

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

        ·掛載點

        ·文件系統類型

        ·掛載選項

        ·轉儲頻率

        ·自檢次序

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

            設備文件、LABEL(LABEL="") 、UUID(UUID="") 、偽文件系統名稱(proc,sysfs)

        *掛載選項: defaults

        *轉儲頻率: 0:不做備份

                    1:每天轉儲

                    2:每隔一天轉儲

        *自檢次序: 0:不自檢

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

利用文件,實現文件系統    一些相關命令:

[root@localhost ~]# dd if=/dev/zero of=/testdir/partfile bs=1M count=500
[root@localhost ~]# mkfs.ext4 /testdir/partfile 
[root@localhost ~]# mkdir /mnt/partfile
[root@localhost ~]# mount /testdir/partfile /mnt/partfile/ -o loop

然后vim /etc/fstab加一行

/testdir/partfile /mnt/partfile ext4 loop 0 0

處理交換文件和分區

    交換分區是系統RAM 的補充

    基本設置包括:

        ? 創建交換分區或者文件

        ? 使用mkswap 寫入特殊簽名

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

        ? 使用swapon -a 激活交換空間

掛載交換分區

    啟用:swapon

        swapon [OPTION]… [DEVICE]

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

            -p PRIORITY :指定優先級

            /etc/fstab:pri=value

    禁用:swapoff [OPTION]… [DEVICE]

swap的優先級

    ·用戶可以給某個swap 指定一個0 到32767 的優先級

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

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

    ·優化性能:分布存放,高性能磁盤存放



下面我們來創建一個全新的swap分區:

先用free命令查看下swap大小  free后面可跟-k;-m;-G表示大小用k,m,G顯示

blob.png

然后我們在新的硬盤上創建一個swap分區

blob.png

blob.png

blob.png

好的,一條命令查看是否創建成功:

blob.png

OK,創建成功  接下來格式化我們的新分區

blob.png

好的  完成格式化   這里加了卷標(-L)

接下來進行掛載:vim /etc/fstab

blob.png

把要掛載的文件寫入系統設置里進行保存 LABEL那行是我們要加的

在啟用之前  可以用swapon -n查看

blob.png

        新硬盤的swap分區啟用成功

然后   來指定一下swap的優先級  

blob.png

這里呢 defaults是系統默認 是負數   把它換成pri=數字  存盤

blob.png

先禁用一下要改優先級的分區  然后再啟用  優先級修改成功



原創文章,作者:舊城以西,如若轉載,請注明出處:http://www.www58058.com/40874

(0)
舊城以西舊城以西
上一篇 2016-09-01
下一篇 2016-09-01

相關推薦

  • N25第8周作業

    1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;     在線的主機使用綠色顯示;      不在線的主使用紅色顯示; #!/bin/bash ipnet=172.20.51. trap ‘trap_action’ INT trap…

    Linux干貨 2017-02-22
  • Linux初識

    Linux 初識 計算機包含 CPU :運算器 、控制器、寄存器、緩存(加速) 存儲器:內存,RAM(Random Access Memory) Input:下指令,提供數據 Output:輸出數據加工的結果。 馮諾依曼體系 紙帶打孔 磁帶機 批處理 鍵盤、顯示器 多任務Multi task 虛擬機軟件 VMware workstation 12 PRO O…

    2017-07-13
  • path

    path簡單應用

    Linux干貨 2017-10-30
  • N23-第一周 記流水賬

      機器已經設置好了  屏幕左邊是linux控制臺,屏幕中間放置記事本來記筆記,屏幕右邊是教學視頻,如圖 費我老大勁 筆記本的無線網卡驅動不好弄啊   注重操作實踐,全程跟著操作,一定要照著做,動手啊動手…………..前十五天內容以查漏補缺為主,所以筆記是興之所至,遵循以下原則:&n…

    Linux干貨 2016-09-18
  • 系統時間與硬件時間

    1. “系統時間”與“硬件時間”    系統時間: 一般說來就是我們執行 date 命令看到的時間,linux系統下所有的時間調用(除了直接訪問硬件時間的命令)都是使用的這個時間。    硬件時間: 主板上BIOS中的時間,由主板電池供電來維持運行,系統開機時要讀取這個時間,并根…

    Linux干貨 2016-08-05
  • 測試 網絡班23期

    123123123123

    Linux干貨 2016-09-12

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-02 12:04

    總結的很完整,圖文并貌,內容充實。

欧美性久久久久