Linux磁盤管理及文件系統

Linux磁盤管理及文件系統node


一、Linux磁盤管理bash

   識別硬盤設備:/dev/sd網絡

   標記不一樣的硬盤設備:/dev/sd[a-z]異步

   標記同一設備上的不一樣分區:/dev/sd[a-z][1-]async

   1-4: 主或擴展分區標識分佈式

   5+:邏輯分區標識ide


二、設備文件:特殊文件工具

   設備號:佈局

     major, minorflex

     major: 設備類型

     minor: 同一類型下的不一樣設備

     「塊」:block,隨機設備

     「字符」:character,線性設備


三、分區工具:

(1)fdisk, parted, sfdisk  

注:最多支持在一塊硬盤上的15個分區;

   fdisk工具的使用:

   分區管理交互式命令:

     p: 顯示

     n: 建立

     d: 刪除

     t: 修改分區ID

     l: 列出全部支持ID類型

     w: 保存退出

     q: 放棄修改並退出

     m: 獲取幫助


(2)建立完成以後,查看內核是否已經識別新的分區:

     # cat /proc/partitions


例子:

[root@localhost ~]# cat /proc/partitions
major minor  #blocks  name

   8        0  125829120 sda
   8        1     512000 sda1
   8        2   62423040 sda2
   8        3    2097152 sda3
 253        0   41447424 dm-0
 253        1   10485760 dm-1
 253        2   10485760 dm-2



(3)有三個命令可讓內核重讀磁盤分區表:

     CentOS 5: partprobe [DEVICE]

     CentOS 6,7: 

     partx

     kpartx


     partx命令:

       partx DEVICE

       partx -a DEVICE

       partx -a -n M:N DEVICE


     kpartx命令:

       kpartx -af DEVICE


例子:

[root@localhost ~]# partx -a /dev/sda
[root@localhost ~]# cat /proc/partitions
major minor  #blocks  name

   8        0  125829120 sda
   8        1     512000 sda1
   8        2   62423040 sda2
   8        3    2097152 sda3
   8        4         31 sda4
   8        5   10488317 sda5
   8        6   20980858 sda6
 253        0   41447424 dm-0
 253        1   10485760 dm-1
 253        2   10485760 dm-2
[root@localhost ~]# ls /dev/sda
sda   sda1  sda2  sda3  sda4  sda5  sda6


四、Linux文件系統管理

(1)文件系統:

   VFS:Virtual File System

     Linux:ext2, ext3, ext4, reiserfs, xfs, btrfs, swap

     光盤:iso9660

     Windows: fat32(vfat), ntfs

     Unix: ffs, ufs, jfs, jfs2

     網絡文件系統:nfs, cifs

     集羣文件系統:ocfs2, gfs2

     分佈式文件系統:ceph, 

     moosefs, mogilefs, hdfs, gfs, glusterfs


(2)日誌型文件系統

   非日誌型文件系統:ext2

   日誌型文件系統:ext3


(3)swap:交換分區



五、建立文件系統:

   在分區上執行格式化(高級格式化)

   要使用某種文件系統,知足兩個條件:

   內核中:支持此種文件系統

   用戶空間:有文件系統管理工具


(1)建立工具:mkfs (make filesystem)

   mkfs -t type DEVICE

   mkfs.type DEVICE


(2)ext系列文件系統的專用管理工具:

   mke2fs -t {ext2|ext3|ext4} DEVICE

     -b BLOCK: 1024, 2048, 4096

     -L 'LABEL': 設定卷標


(3)blkid命令:

   UUID---Universally Unique Identifiers

   全局惟一標識符:

    blkid DEVICE

     LABEL, UUID, TYPE


例子:

[root@localhost ~]# blkid /dev/sda1
/dev/sda1: UUID="dbde3019-886c-4eb3-8a79-b15825f7f929" TYPE="ext4"

六、Linux文件系統管理:

(1)建立文件系統:

   mkfs, mkfs -t type = mkfs.type

   ext:mke2fs 

   mke2fs [OPTION]... DEVICE

     -t {ext2|ext3|ext4}

     -b {1024|2048|4096}

     -L 'LABEL'

     -j: mke2fs -t ext3

     -i #:

     -N #:

     -m #: 預留磁盤空間佔據多大百分比的空間爲後期管理使用;

     O FEATURE[,...]

     -O ^FEATURE:關閉此特性

     has_journal


(2)文件系統屬性查看及調整工具:

   e2label          #不影響分區中的數據

   e2lable DEVICE [LABEL]


(3)顯示ext系列文件系統的屬性,或調整其屬性;

   tune2fs          #不影響分區中的數據

     -l:顯示超級塊中的信息;顯示整個文件的屬性及佈局等相關信息;

     -L 'LABEL':修改卷標;

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

     -j: ext2 --> ext3

     -O:文件系統屬性的啓動或關閉 

     -o:文件系統默認掛載選項的啓用或關閉


(4)dumpe2fs:

     -h: 僅顯示超級塊信息;


例子:

[root@localhost ~]# mke2fs -L lisir -t ext4 /dev/sda5
mke2fs 1.41.12 (17-May-2010)
文件系統標籤=
操做系統:Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655776 inodes, 2622079 blocks
131103 blocks (5.00%) reserved for the super user
........

[root@localhost ~]# tune2fs -o acl /dev/sda5  #開啓acl
tune2fs 1.41.12 (17-May-2010)
[root@localhost ~]# tune2fs -L lisir01 /dev/sda5  #修改卷標
tune2fs 1.41.12 (17-May-2010)
[root@localhost ~]# tune2fs -l /dev/sda5  #查看分區信息
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   lisir01
Last mounted on:          <not available>
Filesystem UUID:          1d305c60-761e-447e-b585-6c2416d13228
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    acl


七、文件系統檢測:

注:因爲硬盤常年讀寫,系統會形成系統文件損壞,致使重啓後沒法登錄到系統,fsck不只能夠對文件系統進行掃描,還能修正文件系統的一些問題。值得注意的是fsck掃描文件系統時必定要在單用戶模式、修復模式或把設備umount後進行。

(1)fsck: Filesystem check

   fsck -t type

   fsck.type

     -a: 自動修復錯誤

     -r: 交互式修復錯誤

     -f: 強制檢測


(2)e2fsck:ext系列文件系統專用的檢測修復工具;

     -y: 自動回答爲「yes」

     f:force


(3)文件系統的掛載和使用:

   kernel --> rootfs(分區)

   rootfs分區:

   bin, sbin, etc, lib, lib64, dev, tmp, proc, sys

   /sbin/init

   將額外文件系統與根文件系統某現存的目錄創建起關聯關係,進而使得此目錄作爲其它文件系統訪問    入口的行爲,稱之爲掛載;

   解除此關聯關係的過程:卸載;

   掛載點:mount point, 設備掛載至目錄;

注意:掛載點在掛載在以後,其內部原有的文件會被暫時隱藏;創建使用空目錄作爲掛載點;


例子:

[root@localhost ~]# fsck.ext4 -a /dev/sda5  #自動修復sda5磁盤錯誤
lisir01: clean, 11/655776 files, 79700/2622079 blocks
[root@localhost ~]# fsck.ext4 -f /dev/sda5  #強制檢測磁盤sda5
e2fsck 1.41.12 (17-May-2010)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄鏈接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
lisir01: 11/655776 files (0.0% non-contiguous), 79700/2622079 blocks

八、掛載方法:

   mount:經過讀取/etc/mtab文件來顯示當前系統全部已經掛載的設備;

   mount -a:掛載/etc/fstab文件中的全部支持自動掛載的文件系統;


   mount [options] [-o options] DEVICE MOUNT_POINT

     [options]:命令選項

     [-o options]:掛載選項


   -o 掛載選項:

     async:異步模式

     sync: 同步模式

     atime/noatime:是否更新訪問時間戳;

     diratime/nodiratime:是否更新目錄的訪問時間戳;

     auto/noauto: 是否容許此設備被自動掛載;

     exec/noexec:是否容許執行此文件系統上應用程序;

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

     suid/nosuid:

     remount:從新掛載

     ro

     rw

     user/nouser: 是否容許普通掛載此設備;

     acl:是否支持此設備上使用facl;

     defaults:rw, suid, dev, exec, auto, nouser, and async


   DEVICE: 要掛載的設備

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

     (2) 卷標:-L 'LABEL'

     (3) UUID:-U 'UUID'

     (4) 僞文件系統名稱


   MOUNT_POINT: 掛載點

     經常使用選項:

     -t type:文件系統類型

     -r: 以「只讀」方式掛載此文件系統

     -w: 以「讀寫」方式掛載此文件系統

     -n:每一個文件系統在掛載時都會自動更新/etc/mtab文件,-n用於禁止此功能;

     此時,若是想查看掛載的全部文件系統:cat /proc/mounts

     -a: 自動掛載全部支持自動掛載的設備;

     -B:綁定目錄至另外一個目錄上;


   umount:卸載命令

     # umount DEVICE

     # umount MOUNT_POINT


   查看正在訪問指定掛載點的進程:

     # fuser -v MOUNT_POINT


   終止全部正在訪問指定的掛載點的進程:

     # fuser -km MOUNT_POINT


例子:

[root@localhost ~]# umount /mydata/
umount: /mydata: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
[root@localhost ~]# fuser -v /mydata/
                     用戶     進程號 權限   命令
/mydata/:            root       3764 ..c.. bash
[root@localhost ~]# fuser -km /mydata/
/mydata/:             3764c
[root@localhost ~]# umount /mydata/


九、交換分區:

(1)free命令:

   查看memory和swap的使用狀態

     -m: 以MB爲單位

     -g: 以GB爲單位 


(2)mkswap:建立交換分區

   mkswap [option] DEVICE

     -L 'LABEL'

(3)swapon:啓用交換分區

   swapon [option] [DEVICE]

     -a: 激活全部交換分區

     -p PRIORITY: 設定其優先級;


(4)swapoff:禁用交換分區

   swapoff [option] [DEVICE]


例子:

[root@localhost ~]# mkswap -L swap01 /dev/sda6
Setting up swapspace version 1, size = 20980852 KiB
LABEL=swap01, UUID=3835c7ba-8b9b-4047-931c-a19eed79d7c4
[root@localhost ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       2097148 0       -1
[root@localhost ~]# swapon -a /dev/sda6
[root@localhost ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       2097148 0       -1
/dev/sda6                               partition       20980852        0       -2
[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           988        728        260          3         18        327
-/+ buffers/cache:        382        606
Swap:        22537          0      22537


十、文件系統等空間佔用信息的查看工個:

(1)df: disk free

       -h: human-readable

       -i: inode數量

       -P: 以Posix兼容的格式輸出


(2)du: disk usage

       -h: human-readable

       -s: summary


十一、文件系統相關掛載配置文件:/etc/fstab

   每行定義一個文件系統;

   要掛載的設備:

     設備文件、LABEL=、UUID=、僞文件系統名稱

   掛載選項:

     defaults、acl

   轉儲頻率:

     0: 不轉儲

     1: 天天轉儲

     2: 每隔一天轉儲

   自檢次序:

     0:不自檢

     1:首先自檢,一般只有/才爲1

     2:

     ...

wKioL1XtPP7CEhj1AAFAlXLh1SI057.jpg


十二、文件系統上的連接文件:

   硬連接:

   兩個路徑指向同一個inode

   不能對目錄進行;

   不能跨分區進行

   指向同一個inode的多個不一樣路徑; 建立文件的硬連接會增長inode的引用計數;刪除硬連接僅是刪除    其一個訪問路徑,只到最後一個路徑被刪除; 


   符號連接:

   連接文件的數據指向另外一個文件路徑;

   能夠對目錄進行;

   能夠跨分區;

   指向的是另外一個文件路徑;而非inode;

   對文件建立符號連接不會增長其引用計數;刪除原文件,符號連接文件也將沒法;

   ln [-s] SRC DEST

     -s:symbolic link 

     -v:verbose


例子:

[root@localhost ~]# ln -s /etc/fstab ./123
[root@localhost ~]# ll
總用量 100
lrwxrwxrwx. 1 root root    10 9月   7 15:28 123 -> /etc/fstab
相關文章
相關標籤/搜索